// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: quote/api.proto

#include "quote/api.pb.h"

#include <algorithm>

#include <google/protobuf/io/coded_stream.h>
#include <google/protobuf/extension_set.h>
#include <google/protobuf/wire_format_lite.h>
#include <google/protobuf/descriptor.h>
#include <google/protobuf/generated_message_reflection.h>
#include <google/protobuf/reflection_ops.h>
#include <google/protobuf/wire_format.h>
// @@protoc_insertion_point(includes)
#include <google/protobuf/port_def.inc>

PROTOBUF_PRAGMA_INIT_SEG

namespace _pb = ::PROTOBUF_NAMESPACE_ID;
namespace _pbi = _pb::internal;

namespace longbridge {
namespace quote {
namespace v1 {
PROTOBUF_CONSTEXPR SecurityRequest::SecurityRequest(
    ::_pbi::ConstantInitialized)
  : symbol_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}){}
struct SecurityRequestDefaultTypeInternal {
  PROTOBUF_CONSTEXPR SecurityRequestDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~SecurityRequestDefaultTypeInternal() {}
  union {
    SecurityRequest _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 SecurityRequestDefaultTypeInternal _SecurityRequest_default_instance_;
PROTOBUF_CONSTEXPR MultiSecurityRequest::MultiSecurityRequest(
    ::_pbi::ConstantInitialized)
  : symbol_(){}
struct MultiSecurityRequestDefaultTypeInternal {
  PROTOBUF_CONSTEXPR MultiSecurityRequestDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~MultiSecurityRequestDefaultTypeInternal() {}
  union {
    MultiSecurityRequest _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 MultiSecurityRequestDefaultTypeInternal _MultiSecurityRequest_default_instance_;
PROTOBUF_CONSTEXPR SecurityStaticInfoResponse::SecurityStaticInfoResponse(
    ::_pbi::ConstantInitialized)
  : secu_static_info_(){}
struct SecurityStaticInfoResponseDefaultTypeInternal {
  PROTOBUF_CONSTEXPR SecurityStaticInfoResponseDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~SecurityStaticInfoResponseDefaultTypeInternal() {}
  union {
    SecurityStaticInfoResponse _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 SecurityStaticInfoResponseDefaultTypeInternal _SecurityStaticInfoResponse_default_instance_;
PROTOBUF_CONSTEXPR StaticInfo::StaticInfo(
    ::_pbi::ConstantInitialized)
  : stock_derivatives_()
  , _stock_derivatives_cached_byte_size_(0)
  , symbol_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , name_cn_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , name_en_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , name_hk_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , listing_date_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , exchange_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , currency_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , eps_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , eps_ttm_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , bps_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , dividend_yield_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , board_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , total_shares_(int64_t{0})
  , circulating_shares_(int64_t{0})
  , hk_shares_(int64_t{0})
  , lot_size_(0){}
struct StaticInfoDefaultTypeInternal {
  PROTOBUF_CONSTEXPR StaticInfoDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~StaticInfoDefaultTypeInternal() {}
  union {
    StaticInfo _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 StaticInfoDefaultTypeInternal _StaticInfo_default_instance_;
PROTOBUF_CONSTEXPR SecurityQuoteResponse::SecurityQuoteResponse(
    ::_pbi::ConstantInitialized)
  : secu_quote_(){}
struct SecurityQuoteResponseDefaultTypeInternal {
  PROTOBUF_CONSTEXPR SecurityQuoteResponseDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~SecurityQuoteResponseDefaultTypeInternal() {}
  union {
    SecurityQuoteResponse _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 SecurityQuoteResponseDefaultTypeInternal _SecurityQuoteResponse_default_instance_;
PROTOBUF_CONSTEXPR SecurityQuote::SecurityQuote(
    ::_pbi::ConstantInitialized)
  : symbol_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , last_done_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , prev_close_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , open_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , high_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , low_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , turnover_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , pre_market_quote_(nullptr)
  , post_market_quote_(nullptr)
  , over_night_quote_(nullptr)
  , timestamp_(int64_t{0})
  , volume_(int64_t{0})
  , trade_status_(0)
{}
struct SecurityQuoteDefaultTypeInternal {
  PROTOBUF_CONSTEXPR SecurityQuoteDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~SecurityQuoteDefaultTypeInternal() {}
  union {
    SecurityQuote _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 SecurityQuoteDefaultTypeInternal _SecurityQuote_default_instance_;
PROTOBUF_CONSTEXPR PrePostQuote::PrePostQuote(
    ::_pbi::ConstantInitialized)
  : last_done_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , turnover_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , high_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , low_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , prev_close_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , timestamp_(int64_t{0})
  , volume_(int64_t{0}){}
struct PrePostQuoteDefaultTypeInternal {
  PROTOBUF_CONSTEXPR PrePostQuoteDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~PrePostQuoteDefaultTypeInternal() {}
  union {
    PrePostQuote _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PrePostQuoteDefaultTypeInternal _PrePostQuote_default_instance_;
PROTOBUF_CONSTEXPR OptionQuoteResponse::OptionQuoteResponse(
    ::_pbi::ConstantInitialized)
  : secu_quote_(){}
struct OptionQuoteResponseDefaultTypeInternal {
  PROTOBUF_CONSTEXPR OptionQuoteResponseDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~OptionQuoteResponseDefaultTypeInternal() {}
  union {
    OptionQuoteResponse _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 OptionQuoteResponseDefaultTypeInternal _OptionQuoteResponse_default_instance_;
PROTOBUF_CONSTEXPR OptionQuote::OptionQuote(
    ::_pbi::ConstantInitialized)
  : symbol_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , last_done_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , prev_close_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , open_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , high_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , low_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , turnover_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , option_extend_(nullptr)
  , timestamp_(int64_t{0})
  , volume_(int64_t{0})
  , trade_status_(0)
{}
struct OptionQuoteDefaultTypeInternal {
  PROTOBUF_CONSTEXPR OptionQuoteDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~OptionQuoteDefaultTypeInternal() {}
  union {
    OptionQuote _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 OptionQuoteDefaultTypeInternal _OptionQuote_default_instance_;
PROTOBUF_CONSTEXPR OptionExtend::OptionExtend(
    ::_pbi::ConstantInitialized)
  : implied_volatility_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , expiry_date_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , strike_price_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , contract_multiplier_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , contract_type_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , contract_size_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , direction_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , historical_volatility_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , underlying_symbol_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , open_interest_(int64_t{0}){}
struct OptionExtendDefaultTypeInternal {
  PROTOBUF_CONSTEXPR OptionExtendDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~OptionExtendDefaultTypeInternal() {}
  union {
    OptionExtend _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 OptionExtendDefaultTypeInternal _OptionExtend_default_instance_;
PROTOBUF_CONSTEXPR WarrantQuoteResponse::WarrantQuoteResponse(
    ::_pbi::ConstantInitialized)
  : secu_quote_(){}
struct WarrantQuoteResponseDefaultTypeInternal {
  PROTOBUF_CONSTEXPR WarrantQuoteResponseDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~WarrantQuoteResponseDefaultTypeInternal() {}
  union {
    WarrantQuoteResponse _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 WarrantQuoteResponseDefaultTypeInternal _WarrantQuoteResponse_default_instance_;
PROTOBUF_CONSTEXPR WarrantQuote::WarrantQuote(
    ::_pbi::ConstantInitialized)
  : symbol_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , last_done_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , prev_close_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , open_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , high_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , low_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , turnover_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , warrant_extend_(nullptr)
  , timestamp_(int64_t{0})
  , volume_(int64_t{0})
  , trade_status_(0)
{}
struct WarrantQuoteDefaultTypeInternal {
  PROTOBUF_CONSTEXPR WarrantQuoteDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~WarrantQuoteDefaultTypeInternal() {}
  union {
    WarrantQuote _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 WarrantQuoteDefaultTypeInternal _WarrantQuote_default_instance_;
PROTOBUF_CONSTEXPR WarrantExtend::WarrantExtend(
    ::_pbi::ConstantInitialized)
  : implied_volatility_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , expiry_date_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , last_trade_date_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , outstanding_ratio_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , conversion_ratio_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , category_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , strike_price_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , upper_strike_price_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , lower_strike_price_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , call_price_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , underlying_symbol_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , outstanding_qty_(int64_t{0}){}
struct WarrantExtendDefaultTypeInternal {
  PROTOBUF_CONSTEXPR WarrantExtendDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~WarrantExtendDefaultTypeInternal() {}
  union {
    WarrantExtend _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 WarrantExtendDefaultTypeInternal _WarrantExtend_default_instance_;
PROTOBUF_CONSTEXPR SecurityDepthResponse::SecurityDepthResponse(
    ::_pbi::ConstantInitialized)
  : ask_()
  , bid_()
  , symbol_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}){}
struct SecurityDepthResponseDefaultTypeInternal {
  PROTOBUF_CONSTEXPR SecurityDepthResponseDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~SecurityDepthResponseDefaultTypeInternal() {}
  union {
    SecurityDepthResponse _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 SecurityDepthResponseDefaultTypeInternal _SecurityDepthResponse_default_instance_;
PROTOBUF_CONSTEXPR Depth::Depth(
    ::_pbi::ConstantInitialized)
  : price_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , volume_(int64_t{0})
  , order_num_(int64_t{0})
  , position_(0){}
struct DepthDefaultTypeInternal {
  PROTOBUF_CONSTEXPR DepthDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~DepthDefaultTypeInternal() {}
  union {
    Depth _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 DepthDefaultTypeInternal _Depth_default_instance_;
PROTOBUF_CONSTEXPR SecurityBrokersResponse::SecurityBrokersResponse(
    ::_pbi::ConstantInitialized)
  : ask_brokers_()
  , bid_brokers_()
  , symbol_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}){}
struct SecurityBrokersResponseDefaultTypeInternal {
  PROTOBUF_CONSTEXPR SecurityBrokersResponseDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~SecurityBrokersResponseDefaultTypeInternal() {}
  union {
    SecurityBrokersResponse _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 SecurityBrokersResponseDefaultTypeInternal _SecurityBrokersResponse_default_instance_;
PROTOBUF_CONSTEXPR Brokers::Brokers(
    ::_pbi::ConstantInitialized)
  : broker_ids_()
  , _broker_ids_cached_byte_size_(0)
  , position_(0){}
struct BrokersDefaultTypeInternal {
  PROTOBUF_CONSTEXPR BrokersDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~BrokersDefaultTypeInternal() {}
  union {
    Brokers _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 BrokersDefaultTypeInternal _Brokers_default_instance_;
PROTOBUF_CONSTEXPR ParticipantBrokerIdsResponse::ParticipantBrokerIdsResponse(
    ::_pbi::ConstantInitialized)
  : participant_broker_numbers_(){}
struct ParticipantBrokerIdsResponseDefaultTypeInternal {
  PROTOBUF_CONSTEXPR ParticipantBrokerIdsResponseDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~ParticipantBrokerIdsResponseDefaultTypeInternal() {}
  union {
    ParticipantBrokerIdsResponse _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 ParticipantBrokerIdsResponseDefaultTypeInternal _ParticipantBrokerIdsResponse_default_instance_;
PROTOBUF_CONSTEXPR ParticipantInfo::ParticipantInfo(
    ::_pbi::ConstantInitialized)
  : broker_ids_()
  , _broker_ids_cached_byte_size_(0)
  , participant_name_cn_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , participant_name_en_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , participant_name_hk_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}){}
struct ParticipantInfoDefaultTypeInternal {
  PROTOBUF_CONSTEXPR ParticipantInfoDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~ParticipantInfoDefaultTypeInternal() {}
  union {
    ParticipantInfo _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 ParticipantInfoDefaultTypeInternal _ParticipantInfo_default_instance_;
PROTOBUF_CONSTEXPR SecurityTradeRequest::SecurityTradeRequest(
    ::_pbi::ConstantInitialized)
  : symbol_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , count_(0){}
struct SecurityTradeRequestDefaultTypeInternal {
  PROTOBUF_CONSTEXPR SecurityTradeRequestDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~SecurityTradeRequestDefaultTypeInternal() {}
  union {
    SecurityTradeRequest _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 SecurityTradeRequestDefaultTypeInternal _SecurityTradeRequest_default_instance_;
PROTOBUF_CONSTEXPR SecurityTradeResponse::SecurityTradeResponse(
    ::_pbi::ConstantInitialized)
  : trades_()
  , symbol_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}){}
struct SecurityTradeResponseDefaultTypeInternal {
  PROTOBUF_CONSTEXPR SecurityTradeResponseDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~SecurityTradeResponseDefaultTypeInternal() {}
  union {
    SecurityTradeResponse _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 SecurityTradeResponseDefaultTypeInternal _SecurityTradeResponse_default_instance_;
PROTOBUF_CONSTEXPR Trade::Trade(
    ::_pbi::ConstantInitialized)
  : price_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , trade_type_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , volume_(int64_t{0})
  , timestamp_(int64_t{0})
  , direction_(0)
  , trade_session_(0)
{}
struct TradeDefaultTypeInternal {
  PROTOBUF_CONSTEXPR TradeDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~TradeDefaultTypeInternal() {}
  union {
    Trade _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 TradeDefaultTypeInternal _Trade_default_instance_;
PROTOBUF_CONSTEXPR SecurityIntradayRequest::SecurityIntradayRequest(
    ::_pbi::ConstantInitialized)
  : symbol_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , trade_session_(0){}
struct SecurityIntradayRequestDefaultTypeInternal {
  PROTOBUF_CONSTEXPR SecurityIntradayRequestDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~SecurityIntradayRequestDefaultTypeInternal() {}
  union {
    SecurityIntradayRequest _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 SecurityIntradayRequestDefaultTypeInternal _SecurityIntradayRequest_default_instance_;
PROTOBUF_CONSTEXPR SecurityIntradayResponse::SecurityIntradayResponse(
    ::_pbi::ConstantInitialized)
  : lines_()
  , symbol_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}){}
struct SecurityIntradayResponseDefaultTypeInternal {
  PROTOBUF_CONSTEXPR SecurityIntradayResponseDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~SecurityIntradayResponseDefaultTypeInternal() {}
  union {
    SecurityIntradayResponse _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 SecurityIntradayResponseDefaultTypeInternal _SecurityIntradayResponse_default_instance_;
PROTOBUF_CONSTEXPR Line::Line(
    ::_pbi::ConstantInitialized)
  : price_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , turnover_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , avg_price_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , timestamp_(int64_t{0})
  , volume_(int64_t{0}){}
struct LineDefaultTypeInternal {
  PROTOBUF_CONSTEXPR LineDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~LineDefaultTypeInternal() {}
  union {
    Line _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 LineDefaultTypeInternal _Line_default_instance_;
PROTOBUF_CONSTEXPR SecurityCandlestickRequest::SecurityCandlestickRequest(
    ::_pbi::ConstantInitialized)
  : symbol_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , period_(0)

  , count_(0)
  , adjust_type_(0)

  , trade_session_(0){}
struct SecurityCandlestickRequestDefaultTypeInternal {
  PROTOBUF_CONSTEXPR SecurityCandlestickRequestDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~SecurityCandlestickRequestDefaultTypeInternal() {}
  union {
    SecurityCandlestickRequest _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 SecurityCandlestickRequestDefaultTypeInternal _SecurityCandlestickRequest_default_instance_;
PROTOBUF_CONSTEXPR SecurityCandlestickResponse::SecurityCandlestickResponse(
    ::_pbi::ConstantInitialized)
  : candlesticks_()
  , symbol_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}){}
struct SecurityCandlestickResponseDefaultTypeInternal {
  PROTOBUF_CONSTEXPR SecurityCandlestickResponseDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~SecurityCandlestickResponseDefaultTypeInternal() {}
  union {
    SecurityCandlestickResponse _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 SecurityCandlestickResponseDefaultTypeInternal _SecurityCandlestickResponse_default_instance_;
PROTOBUF_CONSTEXPR Candlestick::Candlestick(
    ::_pbi::ConstantInitialized)
  : close_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , open_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , low_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , high_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , turnover_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , volume_(int64_t{0})
  , timestamp_(int64_t{0})
  , trade_session_(0)
{}
struct CandlestickDefaultTypeInternal {
  PROTOBUF_CONSTEXPR CandlestickDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~CandlestickDefaultTypeInternal() {}
  union {
    Candlestick _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 CandlestickDefaultTypeInternal _Candlestick_default_instance_;
PROTOBUF_CONSTEXPR OptionChainDateListResponse::OptionChainDateListResponse(
    ::_pbi::ConstantInitialized)
  : expiry_date_(){}
struct OptionChainDateListResponseDefaultTypeInternal {
  PROTOBUF_CONSTEXPR OptionChainDateListResponseDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~OptionChainDateListResponseDefaultTypeInternal() {}
  union {
    OptionChainDateListResponse _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 OptionChainDateListResponseDefaultTypeInternal _OptionChainDateListResponse_default_instance_;
PROTOBUF_CONSTEXPR OptionChainDateStrikeInfoRequest::OptionChainDateStrikeInfoRequest(
    ::_pbi::ConstantInitialized)
  : symbol_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , expiry_date_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}){}
struct OptionChainDateStrikeInfoRequestDefaultTypeInternal {
  PROTOBUF_CONSTEXPR OptionChainDateStrikeInfoRequestDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~OptionChainDateStrikeInfoRequestDefaultTypeInternal() {}
  union {
    OptionChainDateStrikeInfoRequest _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 OptionChainDateStrikeInfoRequestDefaultTypeInternal _OptionChainDateStrikeInfoRequest_default_instance_;
PROTOBUF_CONSTEXPR OptionChainDateStrikeInfoResponse::OptionChainDateStrikeInfoResponse(
    ::_pbi::ConstantInitialized)
  : strike_price_info_(){}
struct OptionChainDateStrikeInfoResponseDefaultTypeInternal {
  PROTOBUF_CONSTEXPR OptionChainDateStrikeInfoResponseDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~OptionChainDateStrikeInfoResponseDefaultTypeInternal() {}
  union {
    OptionChainDateStrikeInfoResponse _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 OptionChainDateStrikeInfoResponseDefaultTypeInternal _OptionChainDateStrikeInfoResponse_default_instance_;
PROTOBUF_CONSTEXPR StrikePriceInfo::StrikePriceInfo(
    ::_pbi::ConstantInitialized)
  : price_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , call_symbol_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , put_symbol_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , standard_(false){}
struct StrikePriceInfoDefaultTypeInternal {
  PROTOBUF_CONSTEXPR StrikePriceInfoDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~StrikePriceInfoDefaultTypeInternal() {}
  union {
    StrikePriceInfo _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 StrikePriceInfoDefaultTypeInternal _StrikePriceInfo_default_instance_;
PROTOBUF_CONSTEXPR IssuerInfoResponse::IssuerInfoResponse(
    ::_pbi::ConstantInitialized)
  : issuer_info_(){}
struct IssuerInfoResponseDefaultTypeInternal {
  PROTOBUF_CONSTEXPR IssuerInfoResponseDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~IssuerInfoResponseDefaultTypeInternal() {}
  union {
    IssuerInfoResponse _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 IssuerInfoResponseDefaultTypeInternal _IssuerInfoResponse_default_instance_;
PROTOBUF_CONSTEXPR IssuerInfo::IssuerInfo(
    ::_pbi::ConstantInitialized)
  : name_cn_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , name_en_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , name_hk_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , id_(0){}
struct IssuerInfoDefaultTypeInternal {
  PROTOBUF_CONSTEXPR IssuerInfoDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~IssuerInfoDefaultTypeInternal() {}
  union {
    IssuerInfo _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 IssuerInfoDefaultTypeInternal _IssuerInfo_default_instance_;
PROTOBUF_CONSTEXPR WarrantFilterListRequest::WarrantFilterListRequest(
    ::_pbi::ConstantInitialized)
  : symbol_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , filter_config_(nullptr)
  , language_(0){}
struct WarrantFilterListRequestDefaultTypeInternal {
  PROTOBUF_CONSTEXPR WarrantFilterListRequestDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~WarrantFilterListRequestDefaultTypeInternal() {}
  union {
    WarrantFilterListRequest _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 WarrantFilterListRequestDefaultTypeInternal _WarrantFilterListRequest_default_instance_;
PROTOBUF_CONSTEXPR FilterConfig::FilterConfig(
    ::_pbi::ConstantInitialized)
  : type_()
  , _type_cached_byte_size_(0)
  , issuer_()
  , _issuer_cached_byte_size_(0)
  , expiry_date_()
  , _expiry_date_cached_byte_size_(0)
  , price_type_()
  , _price_type_cached_byte_size_(0)
  , status_()
  , _status_cached_byte_size_(0)
  , sort_by_(0)
  , sort_order_(0)
  , sort_offset_(0)
  , sort_count_(0){}
struct FilterConfigDefaultTypeInternal {
  PROTOBUF_CONSTEXPR FilterConfigDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~FilterConfigDefaultTypeInternal() {}
  union {
    FilterConfig _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 FilterConfigDefaultTypeInternal _FilterConfig_default_instance_;
PROTOBUF_CONSTEXPR WarrantFilterListResponse::WarrantFilterListResponse(
    ::_pbi::ConstantInitialized)
  : warrant_list_()
  , total_count_(0){}
struct WarrantFilterListResponseDefaultTypeInternal {
  PROTOBUF_CONSTEXPR WarrantFilterListResponseDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~WarrantFilterListResponseDefaultTypeInternal() {}
  union {
    WarrantFilterListResponse _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 WarrantFilterListResponseDefaultTypeInternal _WarrantFilterListResponse_default_instance_;
PROTOBUF_CONSTEXPR FilterWarrant::FilterWarrant(
    ::_pbi::ConstantInitialized)
  : symbol_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , name_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , last_done_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , change_rate_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , change_val_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , turnover_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , expiry_date_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , strike_price_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , upper_strike_price_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , lower_strike_price_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , outstanding_qty_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , outstanding_ratio_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , premium_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , itm_otm_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , implied_volatility_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , delta_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , call_price_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , to_call_price_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , effective_leverage_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , leverage_ratio_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , conversion_ratio_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , balance_point_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , volume_(int64_t{0})
  , status_(0)
  , type_(0){}
struct FilterWarrantDefaultTypeInternal {
  PROTOBUF_CONSTEXPR FilterWarrantDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~FilterWarrantDefaultTypeInternal() {}
  union {
    FilterWarrant _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 FilterWarrantDefaultTypeInternal _FilterWarrant_default_instance_;
PROTOBUF_CONSTEXPR MarketTradePeriodResponse::MarketTradePeriodResponse(
    ::_pbi::ConstantInitialized)
  : market_trade_session_(){}
struct MarketTradePeriodResponseDefaultTypeInternal {
  PROTOBUF_CONSTEXPR MarketTradePeriodResponseDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~MarketTradePeriodResponseDefaultTypeInternal() {}
  union {
    MarketTradePeriodResponse _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 MarketTradePeriodResponseDefaultTypeInternal _MarketTradePeriodResponse_default_instance_;
PROTOBUF_CONSTEXPR MarketTradePeriod::MarketTradePeriod(
    ::_pbi::ConstantInitialized)
  : trade_session_()
  , market_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}){}
struct MarketTradePeriodDefaultTypeInternal {
  PROTOBUF_CONSTEXPR MarketTradePeriodDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~MarketTradePeriodDefaultTypeInternal() {}
  union {
    MarketTradePeriod _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 MarketTradePeriodDefaultTypeInternal _MarketTradePeriod_default_instance_;
PROTOBUF_CONSTEXPR TradePeriod::TradePeriod(
    ::_pbi::ConstantInitialized)
  : beg_time_(0)
  , end_time_(0)
  , trade_session_(0)
{}
struct TradePeriodDefaultTypeInternal {
  PROTOBUF_CONSTEXPR TradePeriodDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~TradePeriodDefaultTypeInternal() {}
  union {
    TradePeriod _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 TradePeriodDefaultTypeInternal _TradePeriod_default_instance_;
PROTOBUF_CONSTEXPR SubscriptionRequest::SubscriptionRequest(
    ::_pbi::ConstantInitialized){}
struct SubscriptionRequestDefaultTypeInternal {
  PROTOBUF_CONSTEXPR SubscriptionRequestDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~SubscriptionRequestDefaultTypeInternal() {}
  union {
    SubscriptionRequest _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 SubscriptionRequestDefaultTypeInternal _SubscriptionRequest_default_instance_;
PROTOBUF_CONSTEXPR SubscriptionResponse::SubscriptionResponse(
    ::_pbi::ConstantInitialized)
  : sub_list_(){}
struct SubscriptionResponseDefaultTypeInternal {
  PROTOBUF_CONSTEXPR SubscriptionResponseDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~SubscriptionResponseDefaultTypeInternal() {}
  union {
    SubscriptionResponse _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 SubscriptionResponseDefaultTypeInternal _SubscriptionResponse_default_instance_;
PROTOBUF_CONSTEXPR SubTypeList::SubTypeList(
    ::_pbi::ConstantInitialized)
  : sub_type_()
  , _sub_type_cached_byte_size_(0)
  , symbol_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}){}
struct SubTypeListDefaultTypeInternal {
  PROTOBUF_CONSTEXPR SubTypeListDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~SubTypeListDefaultTypeInternal() {}
  union {
    SubTypeList _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 SubTypeListDefaultTypeInternal _SubTypeList_default_instance_;
PROTOBUF_CONSTEXPR SubscribeRequest::SubscribeRequest(
    ::_pbi::ConstantInitialized)
  : symbol_()
  , sub_type_()
  , _sub_type_cached_byte_size_(0)
  , is_first_push_(false){}
struct SubscribeRequestDefaultTypeInternal {
  PROTOBUF_CONSTEXPR SubscribeRequestDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~SubscribeRequestDefaultTypeInternal() {}
  union {
    SubscribeRequest _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 SubscribeRequestDefaultTypeInternal _SubscribeRequest_default_instance_;
PROTOBUF_CONSTEXPR UnsubscribeRequest::UnsubscribeRequest(
    ::_pbi::ConstantInitialized)
  : symbol_()
  , sub_type_()
  , _sub_type_cached_byte_size_(0)
  , unsub_all_(false){}
struct UnsubscribeRequestDefaultTypeInternal {
  PROTOBUF_CONSTEXPR UnsubscribeRequestDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~UnsubscribeRequestDefaultTypeInternal() {}
  union {
    UnsubscribeRequest _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 UnsubscribeRequestDefaultTypeInternal _UnsubscribeRequest_default_instance_;
PROTOBUF_CONSTEXPR UnsubscribeResponse::UnsubscribeResponse(
    ::_pbi::ConstantInitialized){}
struct UnsubscribeResponseDefaultTypeInternal {
  PROTOBUF_CONSTEXPR UnsubscribeResponseDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~UnsubscribeResponseDefaultTypeInternal() {}
  union {
    UnsubscribeResponse _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 UnsubscribeResponseDefaultTypeInternal _UnsubscribeResponse_default_instance_;
PROTOBUF_CONSTEXPR PushQuote::PushQuote(
    ::_pbi::ConstantInitialized)
  : symbol_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , last_done_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , open_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , high_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , low_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , turnover_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , current_turnover_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , sequence_(int64_t{0})
  , timestamp_(int64_t{0})
  , volume_(int64_t{0})
  , trade_status_(0)

  , trade_session_(0)

  , current_volume_(int64_t{0})
  , tag_(0)
{}
struct PushQuoteDefaultTypeInternal {
  PROTOBUF_CONSTEXPR PushQuoteDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~PushQuoteDefaultTypeInternal() {}
  union {
    PushQuote _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PushQuoteDefaultTypeInternal _PushQuote_default_instance_;
PROTOBUF_CONSTEXPR PushDepth::PushDepth(
    ::_pbi::ConstantInitialized)
  : ask_()
  , bid_()
  , symbol_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , sequence_(int64_t{0}){}
struct PushDepthDefaultTypeInternal {
  PROTOBUF_CONSTEXPR PushDepthDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~PushDepthDefaultTypeInternal() {}
  union {
    PushDepth _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PushDepthDefaultTypeInternal _PushDepth_default_instance_;
PROTOBUF_CONSTEXPR PushBrokers::PushBrokers(
    ::_pbi::ConstantInitialized)
  : ask_brokers_()
  , bid_brokers_()
  , symbol_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , sequence_(int64_t{0}){}
struct PushBrokersDefaultTypeInternal {
  PROTOBUF_CONSTEXPR PushBrokersDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~PushBrokersDefaultTypeInternal() {}
  union {
    PushBrokers _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PushBrokersDefaultTypeInternal _PushBrokers_default_instance_;
PROTOBUF_CONSTEXPR PushTrade::PushTrade(
    ::_pbi::ConstantInitialized)
  : trade_()
  , symbol_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , sequence_(int64_t{0}){}
struct PushTradeDefaultTypeInternal {
  PROTOBUF_CONSTEXPR PushTradeDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~PushTradeDefaultTypeInternal() {}
  union {
    PushTrade _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PushTradeDefaultTypeInternal _PushTrade_default_instance_;
PROTOBUF_CONSTEXPR MarketTradeDayRequest::MarketTradeDayRequest(
    ::_pbi::ConstantInitialized)
  : market_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , beg_day_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , end_day_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}){}
struct MarketTradeDayRequestDefaultTypeInternal {
  PROTOBUF_CONSTEXPR MarketTradeDayRequestDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~MarketTradeDayRequestDefaultTypeInternal() {}
  union {
    MarketTradeDayRequest _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 MarketTradeDayRequestDefaultTypeInternal _MarketTradeDayRequest_default_instance_;
PROTOBUF_CONSTEXPR MarketTradeDayResponse::MarketTradeDayResponse(
    ::_pbi::ConstantInitialized)
  : trade_day_()
  , half_trade_day_(){}
struct MarketTradeDayResponseDefaultTypeInternal {
  PROTOBUF_CONSTEXPR MarketTradeDayResponseDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~MarketTradeDayResponseDefaultTypeInternal() {}
  union {
    MarketTradeDayResponse _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 MarketTradeDayResponseDefaultTypeInternal _MarketTradeDayResponse_default_instance_;
PROTOBUF_CONSTEXPR CapitalFlowIntradayRequest::CapitalFlowIntradayRequest(
    ::_pbi::ConstantInitialized)
  : symbol_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}){}
struct CapitalFlowIntradayRequestDefaultTypeInternal {
  PROTOBUF_CONSTEXPR CapitalFlowIntradayRequestDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~CapitalFlowIntradayRequestDefaultTypeInternal() {}
  union {
    CapitalFlowIntradayRequest _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 CapitalFlowIntradayRequestDefaultTypeInternal _CapitalFlowIntradayRequest_default_instance_;
PROTOBUF_CONSTEXPR CapitalFlowIntradayResponse_CapitalFlowLine::CapitalFlowIntradayResponse_CapitalFlowLine(
    ::_pbi::ConstantInitialized)
  : inflow_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , timestamp_(int64_t{0}){}
struct CapitalFlowIntradayResponse_CapitalFlowLineDefaultTypeInternal {
  PROTOBUF_CONSTEXPR CapitalFlowIntradayResponse_CapitalFlowLineDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~CapitalFlowIntradayResponse_CapitalFlowLineDefaultTypeInternal() {}
  union {
    CapitalFlowIntradayResponse_CapitalFlowLine _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 CapitalFlowIntradayResponse_CapitalFlowLineDefaultTypeInternal _CapitalFlowIntradayResponse_CapitalFlowLine_default_instance_;
PROTOBUF_CONSTEXPR CapitalFlowIntradayResponse::CapitalFlowIntradayResponse(
    ::_pbi::ConstantInitialized)
  : capital_flow_lines_()
  , symbol_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}){}
struct CapitalFlowIntradayResponseDefaultTypeInternal {
  PROTOBUF_CONSTEXPR CapitalFlowIntradayResponseDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~CapitalFlowIntradayResponseDefaultTypeInternal() {}
  union {
    CapitalFlowIntradayResponse _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 CapitalFlowIntradayResponseDefaultTypeInternal _CapitalFlowIntradayResponse_default_instance_;
PROTOBUF_CONSTEXPR CapitalDistributionResponse_CapitalDistribution::CapitalDistributionResponse_CapitalDistribution(
    ::_pbi::ConstantInitialized)
  : large_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , medium_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , small_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}){}
struct CapitalDistributionResponse_CapitalDistributionDefaultTypeInternal {
  PROTOBUF_CONSTEXPR CapitalDistributionResponse_CapitalDistributionDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~CapitalDistributionResponse_CapitalDistributionDefaultTypeInternal() {}
  union {
    CapitalDistributionResponse_CapitalDistribution _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 CapitalDistributionResponse_CapitalDistributionDefaultTypeInternal _CapitalDistributionResponse_CapitalDistribution_default_instance_;
PROTOBUF_CONSTEXPR CapitalDistributionResponse::CapitalDistributionResponse(
    ::_pbi::ConstantInitialized)
  : symbol_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , capital_in_(nullptr)
  , capital_out_(nullptr)
  , timestamp_(int64_t{0}){}
struct CapitalDistributionResponseDefaultTypeInternal {
  PROTOBUF_CONSTEXPR CapitalDistributionResponseDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~CapitalDistributionResponseDefaultTypeInternal() {}
  union {
    CapitalDistributionResponse _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 CapitalDistributionResponseDefaultTypeInternal _CapitalDistributionResponse_default_instance_;
PROTOBUF_CONSTEXPR SecurityCalcQuoteRequest::SecurityCalcQuoteRequest(
    ::_pbi::ConstantInitialized)
  : symbols_()
  , calc_index_()
  , _calc_index_cached_byte_size_(0){}
struct SecurityCalcQuoteRequestDefaultTypeInternal {
  PROTOBUF_CONSTEXPR SecurityCalcQuoteRequestDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~SecurityCalcQuoteRequestDefaultTypeInternal() {}
  union {
    SecurityCalcQuoteRequest _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 SecurityCalcQuoteRequestDefaultTypeInternal _SecurityCalcQuoteRequest_default_instance_;
PROTOBUF_CONSTEXPR SecurityCalcIndex::SecurityCalcIndex(
    ::_pbi::ConstantInitialized)
  : symbol_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , last_done_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , change_val_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , change_rate_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , turnover_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , ytd_change_rate_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , turnover_rate_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , total_market_value_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , capital_flow_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , amplitude_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , volume_ratio_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , pe_ttm_ratio_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , pb_ratio_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , dividend_ratio_ttm_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , five_day_change_rate_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , ten_day_change_rate_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , half_year_change_rate_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , five_minutes_change_rate_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , expiry_date_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , strike_price_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , upper_strike_price_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , lower_strike_price_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , outstanding_ratio_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , premium_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , itm_otm_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , implied_volatility_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , warrant_delta_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , call_price_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , to_call_price_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , effective_leverage_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , leverage_ratio_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , conversion_ratio_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , balance_point_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , delta_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , gamma_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , theta_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , vega_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , rho_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , volume_(int64_t{0})
  , outstanding_qty_(int64_t{0})
  , open_interest_(int64_t{0}){}
struct SecurityCalcIndexDefaultTypeInternal {
  PROTOBUF_CONSTEXPR SecurityCalcIndexDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~SecurityCalcIndexDefaultTypeInternal() {}
  union {
    SecurityCalcIndex _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 SecurityCalcIndexDefaultTypeInternal _SecurityCalcIndex_default_instance_;
PROTOBUF_CONSTEXPR SecurityCalcQuoteResponse::SecurityCalcQuoteResponse(
    ::_pbi::ConstantInitialized)
  : security_calc_index_(){}
struct SecurityCalcQuoteResponseDefaultTypeInternal {
  PROTOBUF_CONSTEXPR SecurityCalcQuoteResponseDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~SecurityCalcQuoteResponseDefaultTypeInternal() {}
  union {
    SecurityCalcQuoteResponse _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 SecurityCalcQuoteResponseDefaultTypeInternal _SecurityCalcQuoteResponse_default_instance_;
PROTOBUF_CONSTEXPR SecurityHistoryCandlestickRequest_OffsetQuery::SecurityHistoryCandlestickRequest_OffsetQuery(
    ::_pbi::ConstantInitialized)
  : date_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , minute_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , direction_(0)

  , count_(0){}
struct SecurityHistoryCandlestickRequest_OffsetQueryDefaultTypeInternal {
  PROTOBUF_CONSTEXPR SecurityHistoryCandlestickRequest_OffsetQueryDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~SecurityHistoryCandlestickRequest_OffsetQueryDefaultTypeInternal() {}
  union {
    SecurityHistoryCandlestickRequest_OffsetQuery _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 SecurityHistoryCandlestickRequest_OffsetQueryDefaultTypeInternal _SecurityHistoryCandlestickRequest_OffsetQuery_default_instance_;
PROTOBUF_CONSTEXPR SecurityHistoryCandlestickRequest_DateQuery::SecurityHistoryCandlestickRequest_DateQuery(
    ::_pbi::ConstantInitialized)
  : start_date_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , end_date_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}){}
struct SecurityHistoryCandlestickRequest_DateQueryDefaultTypeInternal {
  PROTOBUF_CONSTEXPR SecurityHistoryCandlestickRequest_DateQueryDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~SecurityHistoryCandlestickRequest_DateQueryDefaultTypeInternal() {}
  union {
    SecurityHistoryCandlestickRequest_DateQuery _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 SecurityHistoryCandlestickRequest_DateQueryDefaultTypeInternal _SecurityHistoryCandlestickRequest_DateQuery_default_instance_;
PROTOBUF_CONSTEXPR SecurityHistoryCandlestickRequest::SecurityHistoryCandlestickRequest(
    ::_pbi::ConstantInitialized)
  : symbol_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , offset_request_(nullptr)
  , date_request_(nullptr)
  , period_(0)

  , adjust_type_(0)

  , query_type_(0)

  , trade_session_(0){}
struct SecurityHistoryCandlestickRequestDefaultTypeInternal {
  PROTOBUF_CONSTEXPR SecurityHistoryCandlestickRequestDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~SecurityHistoryCandlestickRequestDefaultTypeInternal() {}
  union {
    SecurityHistoryCandlestickRequest _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 SecurityHistoryCandlestickRequestDefaultTypeInternal _SecurityHistoryCandlestickRequest_default_instance_;
PROTOBUF_CONSTEXPR UserQuoteProfileRequest::UserQuoteProfileRequest(
    ::_pbi::ConstantInitialized)
  : language_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}){}
struct UserQuoteProfileRequestDefaultTypeInternal {
  PROTOBUF_CONSTEXPR UserQuoteProfileRequestDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~UserQuoteProfileRequestDefaultTypeInternal() {}
  union {
    UserQuoteProfileRequest _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 UserQuoteProfileRequestDefaultTypeInternal _UserQuoteProfileRequest_default_instance_;
PROTOBUF_CONSTEXPR RateLimit::RateLimit(
    ::_pbi::ConstantInitialized)
  : command_(0)

  , limit_(0)
  , burst_(0){}
struct RateLimitDefaultTypeInternal {
  PROTOBUF_CONSTEXPR RateLimitDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~RateLimitDefaultTypeInternal() {}
  union {
    RateLimit _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 RateLimitDefaultTypeInternal _RateLimit_default_instance_;
PROTOBUF_CONSTEXPR UserQuoteLevelDetail_PackageDetail::UserQuoteLevelDetail_PackageDetail(
    ::_pbi::ConstantInitialized)
  : key_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , name_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , description_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , start_(int64_t{0})
  , end_(int64_t{0}){}
struct UserQuoteLevelDetail_PackageDetailDefaultTypeInternal {
  PROTOBUF_CONSTEXPR UserQuoteLevelDetail_PackageDetailDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~UserQuoteLevelDetail_PackageDetailDefaultTypeInternal() {}
  union {
    UserQuoteLevelDetail_PackageDetail _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 UserQuoteLevelDetail_PackageDetailDefaultTypeInternal _UserQuoteLevelDetail_PackageDetail_default_instance_;
PROTOBUF_CONSTEXPR UserQuoteLevelDetail_MarketPackageDetail::UserQuoteLevelDetail_MarketPackageDetail(
    ::_pbi::ConstantInitialized)
  : packages_()
  , warning_msg_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}){}
struct UserQuoteLevelDetail_MarketPackageDetailDefaultTypeInternal {
  PROTOBUF_CONSTEXPR UserQuoteLevelDetail_MarketPackageDetailDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~UserQuoteLevelDetail_MarketPackageDetailDefaultTypeInternal() {}
  union {
    UserQuoteLevelDetail_MarketPackageDetail _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 UserQuoteLevelDetail_MarketPackageDetailDefaultTypeInternal _UserQuoteLevelDetail_MarketPackageDetail_default_instance_;
PROTOBUF_CONSTEXPR UserQuoteLevelDetail_ByPackageKeyEntry_DoNotUse::UserQuoteLevelDetail_ByPackageKeyEntry_DoNotUse(
    ::_pbi::ConstantInitialized){}
struct UserQuoteLevelDetail_ByPackageKeyEntry_DoNotUseDefaultTypeInternal {
  PROTOBUF_CONSTEXPR UserQuoteLevelDetail_ByPackageKeyEntry_DoNotUseDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~UserQuoteLevelDetail_ByPackageKeyEntry_DoNotUseDefaultTypeInternal() {}
  union {
    UserQuoteLevelDetail_ByPackageKeyEntry_DoNotUse _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 UserQuoteLevelDetail_ByPackageKeyEntry_DoNotUseDefaultTypeInternal _UserQuoteLevelDetail_ByPackageKeyEntry_DoNotUse_default_instance_;
PROTOBUF_CONSTEXPR UserQuoteLevelDetail_ByMarketCodeEntry_DoNotUse::UserQuoteLevelDetail_ByMarketCodeEntry_DoNotUse(
    ::_pbi::ConstantInitialized){}
struct UserQuoteLevelDetail_ByMarketCodeEntry_DoNotUseDefaultTypeInternal {
  PROTOBUF_CONSTEXPR UserQuoteLevelDetail_ByMarketCodeEntry_DoNotUseDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~UserQuoteLevelDetail_ByMarketCodeEntry_DoNotUseDefaultTypeInternal() {}
  union {
    UserQuoteLevelDetail_ByMarketCodeEntry_DoNotUse _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 UserQuoteLevelDetail_ByMarketCodeEntry_DoNotUseDefaultTypeInternal _UserQuoteLevelDetail_ByMarketCodeEntry_DoNotUse_default_instance_;
PROTOBUF_CONSTEXPR UserQuoteLevelDetail::UserQuoteLevelDetail(
    ::_pbi::ConstantInitialized)
  : by_package_key_(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{})
  , by_market_code_(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}){}
struct UserQuoteLevelDetailDefaultTypeInternal {
  PROTOBUF_CONSTEXPR UserQuoteLevelDetailDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~UserQuoteLevelDetailDefaultTypeInternal() {}
  union {
    UserQuoteLevelDetail _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 UserQuoteLevelDetailDefaultTypeInternal _UserQuoteLevelDetail_default_instance_;
PROTOBUF_CONSTEXPR UserQuoteProfileResponse::UserQuoteProfileResponse(
    ::_pbi::ConstantInitialized)
  : rate_limit_()
  , quote_level_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , quote_level_detail_(nullptr)
  , member_id_(int64_t{0})
  , subscribe_limit_(0)
  , history_candlestick_limit_(0){}
struct UserQuoteProfileResponseDefaultTypeInternal {
  PROTOBUF_CONSTEXPR UserQuoteProfileResponseDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~UserQuoteProfileResponseDefaultTypeInternal() {}
  union {
    UserQuoteProfileResponse _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 UserQuoteProfileResponseDefaultTypeInternal _UserQuoteProfileResponse_default_instance_;
}  // namespace v1
}  // namespace quote
}  // namespace longbridge
static ::_pb::Metadata file_level_metadata_quote_2fapi_2eproto[72];
static const ::_pb::EnumDescriptor* file_level_enum_descriptors_quote_2fapi_2eproto[10];
static constexpr ::_pb::ServiceDescriptor const** file_level_service_descriptors_quote_2fapi_2eproto = nullptr;

const uint32_t TableStruct_quote_2fapi_2eproto::offsets[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::SecurityRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::SecurityRequest, symbol_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::MultiSecurityRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::MultiSecurityRequest, symbol_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::SecurityStaticInfoResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::SecurityStaticInfoResponse, secu_static_info_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::StaticInfo, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::StaticInfo, symbol_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::StaticInfo, name_cn_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::StaticInfo, name_en_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::StaticInfo, name_hk_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::StaticInfo, listing_date_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::StaticInfo, exchange_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::StaticInfo, currency_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::StaticInfo, lot_size_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::StaticInfo, total_shares_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::StaticInfo, circulating_shares_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::StaticInfo, hk_shares_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::StaticInfo, eps_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::StaticInfo, eps_ttm_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::StaticInfo, bps_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::StaticInfo, dividend_yield_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::StaticInfo, stock_derivatives_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::StaticInfo, board_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::SecurityQuoteResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::SecurityQuoteResponse, secu_quote_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::SecurityQuote, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::SecurityQuote, symbol_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::SecurityQuote, last_done_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::SecurityQuote, prev_close_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::SecurityQuote, open_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::SecurityQuote, high_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::SecurityQuote, low_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::SecurityQuote, timestamp_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::SecurityQuote, volume_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::SecurityQuote, turnover_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::SecurityQuote, trade_status_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::SecurityQuote, pre_market_quote_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::SecurityQuote, post_market_quote_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::SecurityQuote, over_night_quote_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::PrePostQuote, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::PrePostQuote, last_done_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::PrePostQuote, timestamp_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::PrePostQuote, volume_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::PrePostQuote, turnover_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::PrePostQuote, high_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::PrePostQuote, low_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::PrePostQuote, prev_close_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::OptionQuoteResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::OptionQuoteResponse, secu_quote_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::OptionQuote, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::OptionQuote, symbol_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::OptionQuote, last_done_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::OptionQuote, prev_close_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::OptionQuote, open_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::OptionQuote, high_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::OptionQuote, low_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::OptionQuote, timestamp_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::OptionQuote, volume_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::OptionQuote, turnover_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::OptionQuote, trade_status_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::OptionQuote, option_extend_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::OptionExtend, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::OptionExtend, implied_volatility_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::OptionExtend, open_interest_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::OptionExtend, expiry_date_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::OptionExtend, strike_price_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::OptionExtend, contract_multiplier_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::OptionExtend, contract_type_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::OptionExtend, contract_size_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::OptionExtend, direction_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::OptionExtend, historical_volatility_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::OptionExtend, underlying_symbol_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::WarrantQuoteResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::WarrantQuoteResponse, secu_quote_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::WarrantQuote, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::WarrantQuote, symbol_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::WarrantQuote, last_done_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::WarrantQuote, prev_close_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::WarrantQuote, open_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::WarrantQuote, high_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::WarrantQuote, low_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::WarrantQuote, timestamp_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::WarrantQuote, volume_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::WarrantQuote, turnover_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::WarrantQuote, trade_status_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::WarrantQuote, warrant_extend_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::WarrantExtend, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::WarrantExtend, implied_volatility_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::WarrantExtend, expiry_date_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::WarrantExtend, last_trade_date_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::WarrantExtend, outstanding_ratio_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::WarrantExtend, outstanding_qty_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::WarrantExtend, conversion_ratio_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::WarrantExtend, category_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::WarrantExtend, strike_price_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::WarrantExtend, upper_strike_price_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::WarrantExtend, lower_strike_price_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::WarrantExtend, call_price_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::WarrantExtend, underlying_symbol_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::SecurityDepthResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::SecurityDepthResponse, symbol_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::SecurityDepthResponse, ask_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::SecurityDepthResponse, bid_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::Depth, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::Depth, position_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::Depth, price_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::Depth, volume_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::Depth, order_num_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::SecurityBrokersResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::SecurityBrokersResponse, symbol_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::SecurityBrokersResponse, ask_brokers_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::SecurityBrokersResponse, bid_brokers_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::Brokers, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::Brokers, position_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::Brokers, broker_ids_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::ParticipantBrokerIdsResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::ParticipantBrokerIdsResponse, participant_broker_numbers_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::ParticipantInfo, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::ParticipantInfo, broker_ids_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::ParticipantInfo, participant_name_cn_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::ParticipantInfo, participant_name_en_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::ParticipantInfo, participant_name_hk_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::SecurityTradeRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::SecurityTradeRequest, symbol_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::SecurityTradeRequest, count_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::SecurityTradeResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::SecurityTradeResponse, symbol_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::SecurityTradeResponse, trades_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::Trade, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::Trade, price_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::Trade, volume_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::Trade, timestamp_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::Trade, trade_type_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::Trade, direction_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::Trade, trade_session_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::SecurityIntradayRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::SecurityIntradayRequest, symbol_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::SecurityIntradayRequest, trade_session_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::SecurityIntradayResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::SecurityIntradayResponse, symbol_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::SecurityIntradayResponse, lines_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::Line, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::Line, price_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::Line, timestamp_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::Line, volume_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::Line, turnover_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::Line, avg_price_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::SecurityCandlestickRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::SecurityCandlestickRequest, symbol_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::SecurityCandlestickRequest, period_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::SecurityCandlestickRequest, count_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::SecurityCandlestickRequest, adjust_type_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::SecurityCandlestickRequest, trade_session_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::SecurityCandlestickResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::SecurityCandlestickResponse, symbol_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::SecurityCandlestickResponse, candlesticks_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::Candlestick, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::Candlestick, close_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::Candlestick, open_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::Candlestick, low_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::Candlestick, high_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::Candlestick, volume_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::Candlestick, turnover_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::Candlestick, timestamp_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::Candlestick, trade_session_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::OptionChainDateListResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::OptionChainDateListResponse, expiry_date_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::OptionChainDateStrikeInfoRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::OptionChainDateStrikeInfoRequest, symbol_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::OptionChainDateStrikeInfoRequest, expiry_date_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::OptionChainDateStrikeInfoResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::OptionChainDateStrikeInfoResponse, strike_price_info_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::StrikePriceInfo, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::StrikePriceInfo, price_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::StrikePriceInfo, call_symbol_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::StrikePriceInfo, put_symbol_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::StrikePriceInfo, standard_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::IssuerInfoResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::IssuerInfoResponse, issuer_info_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::IssuerInfo, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::IssuerInfo, id_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::IssuerInfo, name_cn_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::IssuerInfo, name_en_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::IssuerInfo, name_hk_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::WarrantFilterListRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::WarrantFilterListRequest, symbol_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::WarrantFilterListRequest, filter_config_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::WarrantFilterListRequest, language_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::FilterConfig, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::FilterConfig, sort_by_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::FilterConfig, sort_order_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::FilterConfig, sort_offset_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::FilterConfig, sort_count_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::FilterConfig, type_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::FilterConfig, issuer_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::FilterConfig, expiry_date_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::FilterConfig, price_type_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::FilterConfig, status_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::WarrantFilterListResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::WarrantFilterListResponse, warrant_list_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::WarrantFilterListResponse, total_count_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::FilterWarrant, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::FilterWarrant, symbol_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::FilterWarrant, name_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::FilterWarrant, last_done_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::FilterWarrant, change_rate_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::FilterWarrant, change_val_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::FilterWarrant, volume_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::FilterWarrant, turnover_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::FilterWarrant, expiry_date_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::FilterWarrant, strike_price_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::FilterWarrant, upper_strike_price_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::FilterWarrant, lower_strike_price_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::FilterWarrant, outstanding_qty_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::FilterWarrant, outstanding_ratio_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::FilterWarrant, premium_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::FilterWarrant, itm_otm_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::FilterWarrant, implied_volatility_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::FilterWarrant, delta_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::FilterWarrant, call_price_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::FilterWarrant, to_call_price_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::FilterWarrant, effective_leverage_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::FilterWarrant, leverage_ratio_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::FilterWarrant, conversion_ratio_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::FilterWarrant, balance_point_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::FilterWarrant, status_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::FilterWarrant, type_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::MarketTradePeriodResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::MarketTradePeriodResponse, market_trade_session_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::MarketTradePeriod, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::MarketTradePeriod, market_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::MarketTradePeriod, trade_session_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::TradePeriod, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::TradePeriod, beg_time_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::TradePeriod, end_time_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::TradePeriod, trade_session_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::SubscriptionRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::SubscriptionResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::SubscriptionResponse, sub_list_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::SubTypeList, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::SubTypeList, symbol_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::SubTypeList, sub_type_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::SubscribeRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::SubscribeRequest, symbol_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::SubscribeRequest, sub_type_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::SubscribeRequest, is_first_push_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::UnsubscribeRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::UnsubscribeRequest, symbol_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::UnsubscribeRequest, sub_type_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::UnsubscribeRequest, unsub_all_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::UnsubscribeResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::PushQuote, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::PushQuote, symbol_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::PushQuote, sequence_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::PushQuote, last_done_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::PushQuote, open_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::PushQuote, high_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::PushQuote, low_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::PushQuote, timestamp_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::PushQuote, volume_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::PushQuote, turnover_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::PushQuote, trade_status_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::PushQuote, trade_session_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::PushQuote, current_volume_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::PushQuote, current_turnover_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::PushQuote, tag_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::PushDepth, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::PushDepth, symbol_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::PushDepth, sequence_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::PushDepth, ask_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::PushDepth, bid_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::PushBrokers, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::PushBrokers, symbol_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::PushBrokers, sequence_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::PushBrokers, ask_brokers_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::PushBrokers, bid_brokers_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::PushTrade, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::PushTrade, symbol_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::PushTrade, sequence_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::PushTrade, trade_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::MarketTradeDayRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::MarketTradeDayRequest, market_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::MarketTradeDayRequest, beg_day_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::MarketTradeDayRequest, end_day_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::MarketTradeDayResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::MarketTradeDayResponse, trade_day_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::MarketTradeDayResponse, half_trade_day_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::CapitalFlowIntradayRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::CapitalFlowIntradayRequest, symbol_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::CapitalFlowIntradayResponse_CapitalFlowLine, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::CapitalFlowIntradayResponse_CapitalFlowLine, inflow_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::CapitalFlowIntradayResponse_CapitalFlowLine, timestamp_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::CapitalFlowIntradayResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::CapitalFlowIntradayResponse, symbol_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::CapitalFlowIntradayResponse, capital_flow_lines_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::CapitalDistributionResponse_CapitalDistribution, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::CapitalDistributionResponse_CapitalDistribution, large_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::CapitalDistributionResponse_CapitalDistribution, medium_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::CapitalDistributionResponse_CapitalDistribution, small_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::CapitalDistributionResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::CapitalDistributionResponse, symbol_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::CapitalDistributionResponse, timestamp_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::CapitalDistributionResponse, capital_in_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::CapitalDistributionResponse, capital_out_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::SecurityCalcQuoteRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::SecurityCalcQuoteRequest, symbols_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::SecurityCalcQuoteRequest, calc_index_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::SecurityCalcIndex, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::SecurityCalcIndex, symbol_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::SecurityCalcIndex, last_done_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::SecurityCalcIndex, change_val_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::SecurityCalcIndex, change_rate_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::SecurityCalcIndex, volume_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::SecurityCalcIndex, turnover_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::SecurityCalcIndex, ytd_change_rate_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::SecurityCalcIndex, turnover_rate_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::SecurityCalcIndex, total_market_value_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::SecurityCalcIndex, capital_flow_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::SecurityCalcIndex, amplitude_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::SecurityCalcIndex, volume_ratio_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::SecurityCalcIndex, pe_ttm_ratio_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::SecurityCalcIndex, pb_ratio_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::SecurityCalcIndex, dividend_ratio_ttm_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::SecurityCalcIndex, five_day_change_rate_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::SecurityCalcIndex, ten_day_change_rate_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::SecurityCalcIndex, half_year_change_rate_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::SecurityCalcIndex, five_minutes_change_rate_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::SecurityCalcIndex, expiry_date_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::SecurityCalcIndex, strike_price_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::SecurityCalcIndex, upper_strike_price_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::SecurityCalcIndex, lower_strike_price_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::SecurityCalcIndex, outstanding_qty_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::SecurityCalcIndex, outstanding_ratio_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::SecurityCalcIndex, premium_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::SecurityCalcIndex, itm_otm_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::SecurityCalcIndex, implied_volatility_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::SecurityCalcIndex, warrant_delta_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::SecurityCalcIndex, call_price_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::SecurityCalcIndex, to_call_price_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::SecurityCalcIndex, effective_leverage_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::SecurityCalcIndex, leverage_ratio_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::SecurityCalcIndex, conversion_ratio_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::SecurityCalcIndex, balance_point_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::SecurityCalcIndex, open_interest_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::SecurityCalcIndex, delta_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::SecurityCalcIndex, gamma_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::SecurityCalcIndex, theta_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::SecurityCalcIndex, vega_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::SecurityCalcIndex, rho_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::SecurityCalcQuoteResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::SecurityCalcQuoteResponse, security_calc_index_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::SecurityHistoryCandlestickRequest_OffsetQuery, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::SecurityHistoryCandlestickRequest_OffsetQuery, direction_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::SecurityHistoryCandlestickRequest_OffsetQuery, date_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::SecurityHistoryCandlestickRequest_OffsetQuery, minute_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::SecurityHistoryCandlestickRequest_OffsetQuery, count_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::SecurityHistoryCandlestickRequest_DateQuery, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::SecurityHistoryCandlestickRequest_DateQuery, start_date_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::SecurityHistoryCandlestickRequest_DateQuery, end_date_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::SecurityHistoryCandlestickRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::SecurityHistoryCandlestickRequest, symbol_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::SecurityHistoryCandlestickRequest, period_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::SecurityHistoryCandlestickRequest, adjust_type_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::SecurityHistoryCandlestickRequest, query_type_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::SecurityHistoryCandlestickRequest, offset_request_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::SecurityHistoryCandlestickRequest, date_request_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::SecurityHistoryCandlestickRequest, trade_session_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::UserQuoteProfileRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::UserQuoteProfileRequest, language_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::RateLimit, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::RateLimit, command_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::RateLimit, limit_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::RateLimit, burst_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::UserQuoteLevelDetail_PackageDetail, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::UserQuoteLevelDetail_PackageDetail, key_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::UserQuoteLevelDetail_PackageDetail, name_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::UserQuoteLevelDetail_PackageDetail, description_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::UserQuoteLevelDetail_PackageDetail, start_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::UserQuoteLevelDetail_PackageDetail, end_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::UserQuoteLevelDetail_MarketPackageDetail, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::UserQuoteLevelDetail_MarketPackageDetail, packages_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::UserQuoteLevelDetail_MarketPackageDetail, warning_msg_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::UserQuoteLevelDetail_ByPackageKeyEntry_DoNotUse, _has_bits_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::UserQuoteLevelDetail_ByPackageKeyEntry_DoNotUse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::UserQuoteLevelDetail_ByPackageKeyEntry_DoNotUse, key_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::UserQuoteLevelDetail_ByPackageKeyEntry_DoNotUse, value_),
  0,
  1,
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::UserQuoteLevelDetail_ByMarketCodeEntry_DoNotUse, _has_bits_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::UserQuoteLevelDetail_ByMarketCodeEntry_DoNotUse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::UserQuoteLevelDetail_ByMarketCodeEntry_DoNotUse, key_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::UserQuoteLevelDetail_ByMarketCodeEntry_DoNotUse, value_),
  0,
  1,
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::UserQuoteLevelDetail, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::UserQuoteLevelDetail, by_package_key_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::UserQuoteLevelDetail, by_market_code_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::UserQuoteProfileResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::UserQuoteProfileResponse, member_id_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::UserQuoteProfileResponse, quote_level_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::UserQuoteProfileResponse, subscribe_limit_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::UserQuoteProfileResponse, history_candlestick_limit_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::UserQuoteProfileResponse, rate_limit_),
  PROTOBUF_FIELD_OFFSET(::longbridge::quote::v1::UserQuoteProfileResponse, quote_level_detail_),
};
static const ::_pbi::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
  { 0, -1, -1, sizeof(::longbridge::quote::v1::SecurityRequest)},
  { 7, -1, -1, sizeof(::longbridge::quote::v1::MultiSecurityRequest)},
  { 14, -1, -1, sizeof(::longbridge::quote::v1::SecurityStaticInfoResponse)},
  { 21, -1, -1, sizeof(::longbridge::quote::v1::StaticInfo)},
  { 44, -1, -1, sizeof(::longbridge::quote::v1::SecurityQuoteResponse)},
  { 51, -1, -1, sizeof(::longbridge::quote::v1::SecurityQuote)},
  { 70, -1, -1, sizeof(::longbridge::quote::v1::PrePostQuote)},
  { 83, -1, -1, sizeof(::longbridge::quote::v1::OptionQuoteResponse)},
  { 90, -1, -1, sizeof(::longbridge::quote::v1::OptionQuote)},
  { 107, -1, -1, sizeof(::longbridge::quote::v1::OptionExtend)},
  { 123, -1, -1, sizeof(::longbridge::quote::v1::WarrantQuoteResponse)},
  { 130, -1, -1, sizeof(::longbridge::quote::v1::WarrantQuote)},
  { 147, -1, -1, sizeof(::longbridge::quote::v1::WarrantExtend)},
  { 165, -1, -1, sizeof(::longbridge::quote::v1::SecurityDepthResponse)},
  { 174, -1, -1, sizeof(::longbridge::quote::v1::Depth)},
  { 184, -1, -1, sizeof(::longbridge::quote::v1::SecurityBrokersResponse)},
  { 193, -1, -1, sizeof(::longbridge::quote::v1::Brokers)},
  { 201, -1, -1, sizeof(::longbridge::quote::v1::ParticipantBrokerIdsResponse)},
  { 208, -1, -1, sizeof(::longbridge::quote::v1::ParticipantInfo)},
  { 218, -1, -1, sizeof(::longbridge::quote::v1::SecurityTradeRequest)},
  { 226, -1, -1, sizeof(::longbridge::quote::v1::SecurityTradeResponse)},
  { 234, -1, -1, sizeof(::longbridge::quote::v1::Trade)},
  { 246, -1, -1, sizeof(::longbridge::quote::v1::SecurityIntradayRequest)},
  { 254, -1, -1, sizeof(::longbridge::quote::v1::SecurityIntradayResponse)},
  { 262, -1, -1, sizeof(::longbridge::quote::v1::Line)},
  { 273, -1, -1, sizeof(::longbridge::quote::v1::SecurityCandlestickRequest)},
  { 284, -1, -1, sizeof(::longbridge::quote::v1::SecurityCandlestickResponse)},
  { 292, -1, -1, sizeof(::longbridge::quote::v1::Candlestick)},
  { 306, -1, -1, sizeof(::longbridge::quote::v1::OptionChainDateListResponse)},
  { 313, -1, -1, sizeof(::longbridge::quote::v1::OptionChainDateStrikeInfoRequest)},
  { 321, -1, -1, sizeof(::longbridge::quote::v1::OptionChainDateStrikeInfoResponse)},
  { 328, -1, -1, sizeof(::longbridge::quote::v1::StrikePriceInfo)},
  { 338, -1, -1, sizeof(::longbridge::quote::v1::IssuerInfoResponse)},
  { 345, -1, -1, sizeof(::longbridge::quote::v1::IssuerInfo)},
  { 355, -1, -1, sizeof(::longbridge::quote::v1::WarrantFilterListRequest)},
  { 364, -1, -1, sizeof(::longbridge::quote::v1::FilterConfig)},
  { 379, -1, -1, sizeof(::longbridge::quote::v1::WarrantFilterListResponse)},
  { 387, -1, -1, sizeof(::longbridge::quote::v1::FilterWarrant)},
  { 418, -1, -1, sizeof(::longbridge::quote::v1::MarketTradePeriodResponse)},
  { 425, -1, -1, sizeof(::longbridge::quote::v1::MarketTradePeriod)},
  { 433, -1, -1, sizeof(::longbridge::quote::v1::TradePeriod)},
  { 442, -1, -1, sizeof(::longbridge::quote::v1::SubscriptionRequest)},
  { 448, -1, -1, sizeof(::longbridge::quote::v1::SubscriptionResponse)},
  { 455, -1, -1, sizeof(::longbridge::quote::v1::SubTypeList)},
  { 463, -1, -1, sizeof(::longbridge::quote::v1::SubscribeRequest)},
  { 472, -1, -1, sizeof(::longbridge::quote::v1::UnsubscribeRequest)},
  { 481, -1, -1, sizeof(::longbridge::quote::v1::UnsubscribeResponse)},
  { 487, -1, -1, sizeof(::longbridge::quote::v1::PushQuote)},
  { 507, -1, -1, sizeof(::longbridge::quote::v1::PushDepth)},
  { 517, -1, -1, sizeof(::longbridge::quote::v1::PushBrokers)},
  { 527, -1, -1, sizeof(::longbridge::quote::v1::PushTrade)},
  { 536, -1, -1, sizeof(::longbridge::quote::v1::MarketTradeDayRequest)},
  { 545, -1, -1, sizeof(::longbridge::quote::v1::MarketTradeDayResponse)},
  { 553, -1, -1, sizeof(::longbridge::quote::v1::CapitalFlowIntradayRequest)},
  { 560, -1, -1, sizeof(::longbridge::quote::v1::CapitalFlowIntradayResponse_CapitalFlowLine)},
  { 568, -1, -1, sizeof(::longbridge::quote::v1::CapitalFlowIntradayResponse)},
  { 576, -1, -1, sizeof(::longbridge::quote::v1::CapitalDistributionResponse_CapitalDistribution)},
  { 585, -1, -1, sizeof(::longbridge::quote::v1::CapitalDistributionResponse)},
  { 595, -1, -1, sizeof(::longbridge::quote::v1::SecurityCalcQuoteRequest)},
  { 603, -1, -1, sizeof(::longbridge::quote::v1::SecurityCalcIndex)},
  { 650, -1, -1, sizeof(::longbridge::quote::v1::SecurityCalcQuoteResponse)},
  { 657, -1, -1, sizeof(::longbridge::quote::v1::SecurityHistoryCandlestickRequest_OffsetQuery)},
  { 667, -1, -1, sizeof(::longbridge::quote::v1::SecurityHistoryCandlestickRequest_DateQuery)},
  { 675, -1, -1, sizeof(::longbridge::quote::v1::SecurityHistoryCandlestickRequest)},
  { 688, -1, -1, sizeof(::longbridge::quote::v1::UserQuoteProfileRequest)},
  { 695, -1, -1, sizeof(::longbridge::quote::v1::RateLimit)},
  { 704, -1, -1, sizeof(::longbridge::quote::v1::UserQuoteLevelDetail_PackageDetail)},
  { 715, -1, -1, sizeof(::longbridge::quote::v1::UserQuoteLevelDetail_MarketPackageDetail)},
  { 723, 731, -1, sizeof(::longbridge::quote::v1::UserQuoteLevelDetail_ByPackageKeyEntry_DoNotUse)},
  { 733, 741, -1, sizeof(::longbridge::quote::v1::UserQuoteLevelDetail_ByMarketCodeEntry_DoNotUse)},
  { 743, -1, -1, sizeof(::longbridge::quote::v1::UserQuoteLevelDetail)},
  { 751, -1, -1, sizeof(::longbridge::quote::v1::UserQuoteProfileResponse)},
};

static const ::_pb::Message* const file_default_instances[] = {
  &::longbridge::quote::v1::_SecurityRequest_default_instance_._instance,
  &::longbridge::quote::v1::_MultiSecurityRequest_default_instance_._instance,
  &::longbridge::quote::v1::_SecurityStaticInfoResponse_default_instance_._instance,
  &::longbridge::quote::v1::_StaticInfo_default_instance_._instance,
  &::longbridge::quote::v1::_SecurityQuoteResponse_default_instance_._instance,
  &::longbridge::quote::v1::_SecurityQuote_default_instance_._instance,
  &::longbridge::quote::v1::_PrePostQuote_default_instance_._instance,
  &::longbridge::quote::v1::_OptionQuoteResponse_default_instance_._instance,
  &::longbridge::quote::v1::_OptionQuote_default_instance_._instance,
  &::longbridge::quote::v1::_OptionExtend_default_instance_._instance,
  &::longbridge::quote::v1::_WarrantQuoteResponse_default_instance_._instance,
  &::longbridge::quote::v1::_WarrantQuote_default_instance_._instance,
  &::longbridge::quote::v1::_WarrantExtend_default_instance_._instance,
  &::longbridge::quote::v1::_SecurityDepthResponse_default_instance_._instance,
  &::longbridge::quote::v1::_Depth_default_instance_._instance,
  &::longbridge::quote::v1::_SecurityBrokersResponse_default_instance_._instance,
  &::longbridge::quote::v1::_Brokers_default_instance_._instance,
  &::longbridge::quote::v1::_ParticipantBrokerIdsResponse_default_instance_._instance,
  &::longbridge::quote::v1::_ParticipantInfo_default_instance_._instance,
  &::longbridge::quote::v1::_SecurityTradeRequest_default_instance_._instance,
  &::longbridge::quote::v1::_SecurityTradeResponse_default_instance_._instance,
  &::longbridge::quote::v1::_Trade_default_instance_._instance,
  &::longbridge::quote::v1::_SecurityIntradayRequest_default_instance_._instance,
  &::longbridge::quote::v1::_SecurityIntradayResponse_default_instance_._instance,
  &::longbridge::quote::v1::_Line_default_instance_._instance,
  &::longbridge::quote::v1::_SecurityCandlestickRequest_default_instance_._instance,
  &::longbridge::quote::v1::_SecurityCandlestickResponse_default_instance_._instance,
  &::longbridge::quote::v1::_Candlestick_default_instance_._instance,
  &::longbridge::quote::v1::_OptionChainDateListResponse_default_instance_._instance,
  &::longbridge::quote::v1::_OptionChainDateStrikeInfoRequest_default_instance_._instance,
  &::longbridge::quote::v1::_OptionChainDateStrikeInfoResponse_default_instance_._instance,
  &::longbridge::quote::v1::_StrikePriceInfo_default_instance_._instance,
  &::longbridge::quote::v1::_IssuerInfoResponse_default_instance_._instance,
  &::longbridge::quote::v1::_IssuerInfo_default_instance_._instance,
  &::longbridge::quote::v1::_WarrantFilterListRequest_default_instance_._instance,
  &::longbridge::quote::v1::_FilterConfig_default_instance_._instance,
  &::longbridge::quote::v1::_WarrantFilterListResponse_default_instance_._instance,
  &::longbridge::quote::v1::_FilterWarrant_default_instance_._instance,
  &::longbridge::quote::v1::_MarketTradePeriodResponse_default_instance_._instance,
  &::longbridge::quote::v1::_MarketTradePeriod_default_instance_._instance,
  &::longbridge::quote::v1::_TradePeriod_default_instance_._instance,
  &::longbridge::quote::v1::_SubscriptionRequest_default_instance_._instance,
  &::longbridge::quote::v1::_SubscriptionResponse_default_instance_._instance,
  &::longbridge::quote::v1::_SubTypeList_default_instance_._instance,
  &::longbridge::quote::v1::_SubscribeRequest_default_instance_._instance,
  &::longbridge::quote::v1::_UnsubscribeRequest_default_instance_._instance,
  &::longbridge::quote::v1::_UnsubscribeResponse_default_instance_._instance,
  &::longbridge::quote::v1::_PushQuote_default_instance_._instance,
  &::longbridge::quote::v1::_PushDepth_default_instance_._instance,
  &::longbridge::quote::v1::_PushBrokers_default_instance_._instance,
  &::longbridge::quote::v1::_PushTrade_default_instance_._instance,
  &::longbridge::quote::v1::_MarketTradeDayRequest_default_instance_._instance,
  &::longbridge::quote::v1::_MarketTradeDayResponse_default_instance_._instance,
  &::longbridge::quote::v1::_CapitalFlowIntradayRequest_default_instance_._instance,
  &::longbridge::quote::v1::_CapitalFlowIntradayResponse_CapitalFlowLine_default_instance_._instance,
  &::longbridge::quote::v1::_CapitalFlowIntradayResponse_default_instance_._instance,
  &::longbridge::quote::v1::_CapitalDistributionResponse_CapitalDistribution_default_instance_._instance,
  &::longbridge::quote::v1::_CapitalDistributionResponse_default_instance_._instance,
  &::longbridge::quote::v1::_SecurityCalcQuoteRequest_default_instance_._instance,
  &::longbridge::quote::v1::_SecurityCalcIndex_default_instance_._instance,
  &::longbridge::quote::v1::_SecurityCalcQuoteResponse_default_instance_._instance,
  &::longbridge::quote::v1::_SecurityHistoryCandlestickRequest_OffsetQuery_default_instance_._instance,
  &::longbridge::quote::v1::_SecurityHistoryCandlestickRequest_DateQuery_default_instance_._instance,
  &::longbridge::quote::v1::_SecurityHistoryCandlestickRequest_default_instance_._instance,
  &::longbridge::quote::v1::_UserQuoteProfileRequest_default_instance_._instance,
  &::longbridge::quote::v1::_RateLimit_default_instance_._instance,
  &::longbridge::quote::v1::_UserQuoteLevelDetail_PackageDetail_default_instance_._instance,
  &::longbridge::quote::v1::_UserQuoteLevelDetail_MarketPackageDetail_default_instance_._instance,
  &::longbridge::quote::v1::_UserQuoteLevelDetail_ByPackageKeyEntry_DoNotUse_default_instance_._instance,
  &::longbridge::quote::v1::_UserQuoteLevelDetail_ByMarketCodeEntry_DoNotUse_default_instance_._instance,
  &::longbridge::quote::v1::_UserQuoteLevelDetail_default_instance_._instance,
  &::longbridge::quote::v1::_UserQuoteProfileResponse_default_instance_._instance,
};

const char descriptor_table_protodef_quote_2fapi_2eproto[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) =
  "\n\017quote/api.proto\022\023longbridge.quote.v1\")"
  "\n\017SecurityRequest\022\026\n\006symbol\030\001 \001(\tR\006symbo"
  "l\".\n\024MultiSecurityRequest\022\026\n\006symbol\030\001 \003("
  "\tR\006symbol\"g\n\032SecurityStaticInfoResponse\022"
  "I\n\020secu_static_info\030\001 \003(\0132\037.longbridge.q"
  "uote.v1.StaticInfoR\016secuStaticInfo\"\373\003\n\nS"
  "taticInfo\022\026\n\006symbol\030\001 \001(\tR\006symbol\022\027\n\007nam"
  "e_cn\030\002 \001(\tR\006nameCn\022\027\n\007name_en\030\003 \001(\tR\006nam"
  "eEn\022\027\n\007name_hk\030\004 \001(\tR\006nameHk\022!\n\014listing_"
  "date\030\005 \001(\tR\013listingDate\022\032\n\010exchange\030\006 \001("
  "\tR\010exchange\022\032\n\010currency\030\007 \001(\tR\010currency\022"
  "\031\n\010lot_size\030\010 \001(\005R\007lotSize\022!\n\014total_shar"
  "es\030\t \001(\003R\013totalShares\022-\n\022circulating_sha"
  "res\030\n \001(\003R\021circulatingShares\022\033\n\thk_share"
  "s\030\013 \001(\003R\010hkShares\022\020\n\003eps\030\014 \001(\tR\003eps\022\027\n\007e"
  "ps_ttm\030\r \001(\tR\006epsTtm\022\020\n\003bps\030\016 \001(\tR\003bps\022%"
  "\n\016dividend_yield\030\017 \001(\tR\rdividendYield\022+\n"
  "\021stock_derivatives\030\020 \003(\005R\020stockDerivativ"
  "es\022\024\n\005board\030\021 \001(\tR\005board\"Z\n\025SecurityQuot"
  "eResponse\022A\n\nsecu_quote\030\001 \003(\0132\".longbrid"
  "ge.quote.v1.SecurityQuoteR\tsecuQuote\"\235\004\n"
  "\rSecurityQuote\022\026\n\006symbol\030\001 \001(\tR\006symbol\022\033"
  "\n\tlast_done\030\002 \001(\tR\010lastDone\022\035\n\nprev_clos"
  "e\030\003 \001(\tR\tprevClose\022\022\n\004open\030\004 \001(\tR\004open\022\022"
  "\n\004high\030\005 \001(\tR\004high\022\020\n\003low\030\006 \001(\tR\003low\022\034\n\t"
  "timestamp\030\007 \001(\003R\ttimestamp\022\026\n\006volume\030\010 \001"
  "(\003R\006volume\022\032\n\010turnover\030\t \001(\tR\010turnover\022C"
  "\n\014trade_status\030\n \001(\0162 .longbridge.quote."
  "v1.TradeStatusR\013tradeStatus\022K\n\020pre_marke"
  "t_quote\030\013 \001(\0132!.longbridge.quote.v1.PreP"
  "ostQuoteR\016preMarketQuote\022M\n\021post_market_"
  "quote\030\014 \001(\0132!.longbridge.quote.v1.PrePos"
  "tQuoteR\017postMarketQuote\022K\n\020over_night_qu"
  "ote\030\r \001(\0132!.longbridge.quote.v1.PrePostQ"
  "uoteR\016overNightQuote\"\302\001\n\014PrePostQuote\022\033\n"
  "\tlast_done\030\001 \001(\tR\010lastDone\022\034\n\ttimestamp\030"
  "\002 \001(\003R\ttimestamp\022\026\n\006volume\030\003 \001(\003R\006volume"
  "\022\032\n\010turnover\030\004 \001(\tR\010turnover\022\022\n\004high\030\005 \001"
  "(\tR\004high\022\020\n\003low\030\006 \001(\tR\003low\022\035\n\nprev_close"
  "\030\007 \001(\tR\tprevClose\"V\n\023OptionQuoteResponse"
  "\022\?\n\nsecu_quote\030\001 \003(\0132 .longbridge.quote."
  "v1.OptionQuoteR\tsecuQuote\"\372\002\n\013OptionQuot"
  "e\022\026\n\006symbol\030\001 \001(\tR\006symbol\022\033\n\tlast_done\030\002"
  " \001(\tR\010lastDone\022\035\n\nprev_close\030\003 \001(\tR\tprev"
  "Close\022\022\n\004open\030\004 \001(\tR\004open\022\022\n\004high\030\005 \001(\tR"
  "\004high\022\020\n\003low\030\006 \001(\tR\003low\022\034\n\ttimestamp\030\007 \001"
  "(\003R\ttimestamp\022\026\n\006volume\030\010 \001(\003R\006volume\022\032\n"
  "\010turnover\030\t \001(\tR\010turnover\022C\n\014trade_statu"
  "s\030\n \001(\0162 .longbridge.quote.v1.TradeStatu"
  "sR\013tradeStatus\022F\n\roption_extend\030\013 \001(\0132!."
  "longbridge.quote.v1.OptionExtendR\014option"
  "Extend\"\241\003\n\014OptionExtend\022-\n\022implied_volat"
  "ility\030\001 \001(\tR\021impliedVolatility\022#\n\ropen_i"
  "nterest\030\002 \001(\003R\014openInterest\022\037\n\013expiry_da"
  "te\030\003 \001(\tR\nexpiryDate\022!\n\014strike_price\030\004 \001"
  "(\tR\013strikePrice\022/\n\023contract_multiplier\030\005"
  " \001(\tR\022contractMultiplier\022#\n\rcontract_typ"
  "e\030\006 \001(\tR\014contractType\022#\n\rcontract_size\030\007"
  " \001(\tR\014contractSize\022\034\n\tdirection\030\010 \001(\tR\td"
  "irection\0223\n\025historical_volatility\030\t \001(\tR"
  "\024historicalVolatility\022+\n\021underlying_symb"
  "ol\030\n \001(\tR\020underlyingSymbol\"X\n\024WarrantQuo"
  "teResponse\022@\n\nsecu_quote\030\002 \003(\0132!.longbri"
  "dge.quote.v1.WarrantQuoteR\tsecuQuote\"\376\002\n"
  "\014WarrantQuote\022\026\n\006symbol\030\001 \001(\tR\006symbol\022\033\n"
  "\tlast_done\030\002 \001(\tR\010lastDone\022\035\n\nprev_close"
  "\030\003 \001(\tR\tprevClose\022\022\n\004open\030\004 \001(\tR\004open\022\022\n"
  "\004high\030\005 \001(\tR\004high\022\020\n\003low\030\006 \001(\tR\003low\022\034\n\tt"
  "imestamp\030\007 \001(\003R\ttimestamp\022\026\n\006volume\030\010 \001("
  "\003R\006volume\022\032\n\010turnover\030\t \001(\tR\010turnover\022C\n"
  "\014trade_status\030\n \001(\0162 .longbridge.quote.v"
  "1.TradeStatusR\013tradeStatus\022I\n\016warrant_ex"
  "tend\030\013 \001(\0132\".longbridge.quote.v1.Warrant"
  "ExtendR\rwarrantExtend\"\357\003\n\rWarrantExtend\022"
  "-\n\022implied_volatility\030\001 \001(\tR\021impliedVola"
  "tility\022\037\n\013expiry_date\030\002 \001(\tR\nexpiryDate\022"
  "&\n\017last_trade_date\030\003 \001(\tR\rlastTradeDate\022"
  "+\n\021outstanding_ratio\030\004 \001(\tR\020outstandingR"
  "atio\022\'\n\017outstanding_qty\030\005 \001(\003R\016outstandi"
  "ngQty\022)\n\020conversion_ratio\030\006 \001(\tR\017convers"
  "ionRatio\022\032\n\010category\030\007 \001(\tR\010category\022!\n\014"
  "strike_price\030\010 \001(\tR\013strikePrice\022,\n\022upper"
  "_strike_price\030\t \001(\tR\020upperStrikePrice\022,\n"
  "\022lower_strike_price\030\n \001(\tR\020lowerStrikePr"
  "ice\022\035\n\ncall_price\030\013 \001(\tR\tcallPrice\022+\n\021un"
  "derlying_symbol\030\014 \001(\tR\020underlyingSymbol\""
  "\213\001\n\025SecurityDepthResponse\022\026\n\006symbol\030\001 \001("
  "\tR\006symbol\022,\n\003ask\030\002 \003(\0132\032.longbridge.quot"
  "e.v1.DepthR\003ask\022,\n\003bid\030\003 \003(\0132\032.longbridg"
  "e.quote.v1.DepthR\003bid\"n\n\005Depth\022\032\n\010positi"
  "on\030\001 \001(\005R\010position\022\024\n\005price\030\002 \001(\tR\005price"
  "\022\026\n\006volume\030\003 \001(\003R\006volume\022\033\n\torder_num\030\004 "
  "\001(\003R\010orderNum\"\257\001\n\027SecurityBrokersRespons"
  "e\022\026\n\006symbol\030\001 \001(\tR\006symbol\022=\n\013ask_brokers"
  "\030\002 \003(\0132\034.longbridge.quote.v1.BrokersR\nas"
  "kBrokers\022=\n\013bid_brokers\030\003 \003(\0132\034.longbrid"
  "ge.quote.v1.BrokersR\nbidBrokers\"D\n\007Broke"
  "rs\022\032\n\010position\030\001 \001(\005R\010position\022\035\n\nbroker"
  "_ids\030\002 \003(\005R\tbrokerIds\"\202\001\n\034ParticipantBro"
  "kerIdsResponse\022b\n\032participant_broker_num"
  "bers\030\001 \003(\0132$.longbridge.quote.v1.Partici"
  "pantInfoR\030participantBrokerNumbers\"\300\001\n\017P"
  "articipantInfo\022\035\n\nbroker_ids\030\001 \003(\005R\tbrok"
  "erIds\022.\n\023participant_name_cn\030\002 \001(\tR\021part"
  "icipantNameCn\022.\n\023participant_name_en\030\003 \001"
  "(\tR\021participantNameEn\022.\n\023participant_nam"
  "e_hk\030\004 \001(\tR\021participantNameHk\"D\n\024Securit"
  "yTradeRequest\022\026\n\006symbol\030\001 \001(\tR\006symbol\022\024\n"
  "\005count\030\002 \001(\005R\005count\"c\n\025SecurityTradeResp"
  "onse\022\026\n\006symbol\030\001 \001(\tR\006symbol\0222\n\006trades\030\002"
  " \003(\0132\032.longbridge.quote.v1.TradeR\006trades"
  "\"\330\001\n\005Trade\022\024\n\005price\030\001 \001(\tR\005price\022\026\n\006volu"
  "me\030\002 \001(\003R\006volume\022\034\n\ttimestamp\030\003 \001(\003R\ttim"
  "estamp\022\035\n\ntrade_type\030\004 \001(\tR\ttradeType\022\034\n"
  "\tdirection\030\005 \001(\005R\tdirection\022F\n\rtrade_ses"
  "sion\030\006 \001(\0162!.longbridge.quote.v1.TradeSe"
  "ssionR\014tradeSession\"V\n\027SecurityIntradayR"
  "equest\022\026\n\006symbol\030\001 \001(\tR\006symbol\022#\n\rtrade_"
  "session\030\002 \001(\005R\014tradeSession\"c\n\030SecurityI"
  "ntradayResponse\022\026\n\006symbol\030\001 \001(\tR\006symbol\022"
  "/\n\005lines\030\002 \003(\0132\031.longbridge.quote.v1.Lin"
  "eR\005lines\"\213\001\n\004Line\022\024\n\005price\030\001 \001(\tR\005price\022"
  "\034\n\ttimestamp\030\002 \001(\003R\ttimestamp\022\026\n\006volume\030"
  "\003 \001(\003R\006volume\022\032\n\010turnover\030\004 \001(\tR\010turnove"
  "r\022\033\n\tavg_price\030\005 \001(\tR\010avgPrice\"\346\001\n\032Secur"
  "ityCandlestickRequest\022\026\n\006symbol\030\001 \001(\tR\006s"
  "ymbol\0223\n\006period\030\002 \001(\0162\033.longbridge.quote"
  ".v1.PeriodR\006period\022\024\n\005count\030\003 \001(\005R\005count"
  "\022@\n\013adjust_type\030\004 \001(\0162\037.longbridge.quote"
  ".v1.AdjustTypeR\nadjustType\022#\n\rtrade_sess"
  "ion\030\005 \001(\005R\014tradeSession\"{\n\033SecurityCandl"
  "estickResponse\022\026\n\006symbol\030\001 \001(\tR\006symbol\022D"
  "\n\014candlesticks\030\002 \003(\0132 .longbridge.quote."
  "v1.CandlestickR\014candlesticks\"\367\001\n\013Candles"
  "tick\022\024\n\005close\030\001 \001(\tR\005close\022\022\n\004open\030\002 \001(\t"
  "R\004open\022\020\n\003low\030\003 \001(\tR\003low\022\022\n\004high\030\004 \001(\tR\004"
  "high\022\026\n\006volume\030\005 \001(\003R\006volume\022\032\n\010turnover"
  "\030\006 \001(\tR\010turnover\022\034\n\ttimestamp\030\007 \001(\003R\ttim"
  "estamp\022F\n\rtrade_session\030\010 \001(\0162!.longbrid"
  "ge.quote.v1.TradeSessionR\014tradeSession\">"
  "\n\033OptionChainDateListResponse\022\037\n\013expiry_"
  "date\030\001 \003(\tR\nexpiryDate\"[\n OptionChainDat"
  "eStrikeInfoRequest\022\026\n\006symbol\030\001 \001(\tR\006symb"
  "ol\022\037\n\013expiry_date\030\002 \001(\tR\nexpiryDate\"u\n!O"
  "ptionChainDateStrikeInfoResponse\022P\n\021stri"
  "ke_price_info\030\001 \003(\0132$.longbridge.quote.v"
  "1.StrikePriceInfoR\017strikePriceInfo\"\203\001\n\017S"
  "trikePriceInfo\022\024\n\005price\030\001 \001(\tR\005price\022\037\n\013"
  "call_symbol\030\002 \001(\tR\ncallSymbol\022\035\n\nput_sym"
  "bol\030\003 \001(\tR\tputSymbol\022\032\n\010standard\030\004 \001(\010R\010"
  "standard\"V\n\022IssuerInfoResponse\022@\n\013issuer"
  "_info\030\001 \003(\0132\037.longbridge.quote.v1.Issuer"
  "InfoR\nissuerInfo\"g\n\nIssuerInfo\022\016\n\002id\030\001 \001"
  "(\005R\002id\022\027\n\007name_cn\030\002 \001(\tR\006nameCn\022\027\n\007name_"
  "en\030\003 \001(\tR\006nameEn\022\027\n\007name_hk\030\004 \001(\tR\006nameH"
  "k\"\226\001\n\030WarrantFilterListRequest\022\026\n\006symbol"
  "\030\001 \001(\tR\006symbol\022F\n\rfilter_config\030\002 \001(\0132!."
  "longbridge.quote.v1.FilterConfigR\014filter"
  "Config\022\032\n\010language\030\003 \001(\005R\010language\"\212\002\n\014F"
  "ilterConfig\022\027\n\007sort_by\030\001 \001(\005R\006sortBy\022\035\n\n"
  "sort_order\030\002 \001(\005R\tsortOrder\022\037\n\013sort_offs"
  "et\030\003 \001(\005R\nsortOffset\022\035\n\nsort_count\030\004 \001(\005"
  "R\tsortCount\022\022\n\004type\030\005 \003(\005R\004type\022\026\n\006issue"
  "r\030\006 \003(\005R\006issuer\022\037\n\013expiry_date\030\007 \003(\005R\nex"
  "piryDate\022\035\n\nprice_type\030\010 \003(\005R\tpriceType\022"
  "\026\n\006status\030\t \003(\005R\006status\"\203\001\n\031WarrantFilte"
  "rListResponse\022E\n\014warrant_list\030\001 \003(\0132\".lo"
  "ngbridge.quote.v1.FilterWarrantR\013warrant"
  "List\022\037\n\013total_count\030\002 \001(\005R\ntotalCount\"\317\006"
  "\n\rFilterWarrant\022\026\n\006symbol\030\001 \001(\tR\006symbol\022"
  "\022\n\004name\030\002 \001(\tR\004name\022\033\n\tlast_done\030\003 \001(\tR\010"
  "lastDone\022\037\n\013change_rate\030\004 \001(\tR\nchangeRat"
  "e\022\035\n\nchange_val\030\005 \001(\tR\tchangeVal\022\026\n\006volu"
  "me\030\006 \001(\003R\006volume\022\032\n\010turnover\030\007 \001(\tR\010turn"
  "over\022\037\n\013expiry_date\030\010 \001(\tR\nexpiryDate\022!\n"
  "\014strike_price\030\t \001(\tR\013strikePrice\022,\n\022uppe"
  "r_strike_price\030\n \001(\tR\020upperStrikePrice\022,"
  "\n\022lower_strike_price\030\013 \001(\tR\020lowerStrikeP"
  "rice\022\'\n\017outstanding_qty\030\014 \001(\tR\016outstandi"
  "ngQty\022+\n\021outstanding_ratio\030\r \001(\tR\020outsta"
  "ndingRatio\022\030\n\007premium\030\016 \001(\tR\007premium\022\027\n\007"
  "itm_otm\030\017 \001(\tR\006itmOtm\022-\n\022implied_volatil"
  "ity\030\020 \001(\tR\021impliedVolatility\022\024\n\005delta\030\021 "
  "\001(\tR\005delta\022\035\n\ncall_price\030\022 \001(\tR\tcallPric"
  "e\022\"\n\rto_call_price\030\023 \001(\tR\013toCallPrice\022-\n"
  "\022effective_leverage\030\024 \001(\tR\021effectiveLeve"
  "rage\022%\n\016leverage_ratio\030\025 \001(\tR\rleverageRa"
  "tio\022)\n\020conversion_ratio\030\026 \001(\tR\017conversio"
  "nRatio\022#\n\rbalance_point\030\027 \001(\tR\014balancePo"
  "int\022\026\n\006status\030\030 \001(\005R\006status\022\022\n\004type\030\031 \001("
  "\005R\004type\"u\n\031MarketTradePeriodResponse\022X\n\024"
  "market_trade_session\030\001 \003(\0132&.longbridge."
  "quote.v1.MarketTradePeriodR\022marketTradeS"
  "ession\"r\n\021MarketTradePeriod\022\026\n\006market\030\001 "
  "\001(\tR\006market\022E\n\rtrade_session\030\002 \003(\0132 .lon"
  "gbridge.quote.v1.TradePeriodR\014tradeSessi"
  "on\"\213\001\n\013TradePeriod\022\031\n\010beg_time\030\001 \001(\005R\007be"
  "gTime\022\031\n\010end_time\030\002 \001(\005R\007endTime\022F\n\rtrad"
  "e_session\030\003 \001(\0162!.longbridge.quote.v1.Tr"
  "adeSessionR\014tradeSession\"\025\n\023Subscription"
  "Request\"S\n\024SubscriptionResponse\022;\n\010sub_l"
  "ist\030\001 \003(\0132 .longbridge.quote.v1.SubTypeL"
  "istR\007subList\"^\n\013SubTypeList\022\026\n\006symbol\030\001 "
  "\001(\tR\006symbol\0227\n\010sub_type\030\002 \003(\0162\034.longbrid"
  "ge.quote.v1.SubTypeR\007subType\"\207\001\n\020Subscri"
  "beRequest\022\026\n\006symbol\030\001 \003(\tR\006symbol\0227\n\010sub"
  "_type\030\002 \003(\0162\034.longbridge.quote.v1.SubTyp"
  "eR\007subType\022\"\n\ris_first_push\030\003 \001(\010R\013isFir"
  "stPush\"\202\001\n\022UnsubscribeRequest\022\026\n\006symbol\030"
  "\001 \003(\tR\006symbol\0227\n\010sub_type\030\002 \003(\0162\034.longbr"
  "idge.quote.v1.SubTypeR\007subType\022\033\n\tunsub_"
  "all\030\003 \001(\010R\010unsubAll\"\025\n\023UnsubscribeRespon"
  "se\"\374\003\n\tPushQuote\022\026\n\006symbol\030\001 \001(\tR\006symbol"
  "\022\032\n\010sequence\030\002 \001(\003R\010sequence\022\033\n\tlast_don"
  "e\030\003 \001(\tR\010lastDone\022\022\n\004open\030\004 \001(\tR\004open\022\022\n"
  "\004high\030\005 \001(\tR\004high\022\020\n\003low\030\006 \001(\tR\003low\022\034\n\tt"
  "imestamp\030\007 \001(\003R\ttimestamp\022\026\n\006volume\030\010 \001("
  "\003R\006volume\022\032\n\010turnover\030\t \001(\tR\010turnover\022C\n"
  "\014trade_status\030\n \001(\0162 .longbridge.quote.v"
  "1.TradeStatusR\013tradeStatus\022F\n\rtrade_sess"
  "ion\030\013 \001(\0162!.longbridge.quote.v1.TradeSes"
  "sionR\014tradeSession\022%\n\016current_volume\030\014 \001"
  "(\003R\rcurrentVolume\022)\n\020current_turnover\030\r "
  "\001(\tR\017currentTurnover\0223\n\003tag\030\016 \001(\0162!.long"
  "bridge.quote.v1.PushQuoteTagR\003tag\"\233\001\n\tPu"
  "shDepth\022\026\n\006symbol\030\001 \001(\tR\006symbol\022\032\n\010seque"
  "nce\030\002 \001(\003R\010sequence\022,\n\003ask\030\003 \003(\0132\032.longb"
  "ridge.quote.v1.DepthR\003ask\022,\n\003bid\030\004 \003(\0132\032"
  ".longbridge.quote.v1.DepthR\003bid\"\277\001\n\013Push"
  "Brokers\022\026\n\006symbol\030\001 \001(\tR\006symbol\022\032\n\010seque"
  "nce\030\002 \001(\003R\010sequence\022=\n\013ask_brokers\030\003 \003(\013"
  "2\034.longbridge.quote.v1.BrokersR\naskBroke"
  "rs\022=\n\013bid_brokers\030\004 \003(\0132\034.longbridge.quo"
  "te.v1.BrokersR\nbidBrokers\"q\n\tPushTrade\022\026"
  "\n\006symbol\030\001 \001(\tR\006symbol\022\032\n\010sequence\030\002 \001(\003"
  "R\010sequence\0220\n\005trade\030\003 \003(\0132\032.longbridge.q"
  "uote.v1.TradeR\005trade\"a\n\025MarketTradeDayRe"
  "quest\022\026\n\006market\030\001 \001(\tR\006market\022\027\n\007beg_day"
  "\030\002 \001(\tR\006begDay\022\027\n\007end_day\030\003 \001(\tR\006endDay\""
  "[\n\026MarketTradeDayResponse\022\033\n\ttrade_day\030\001"
  " \003(\tR\010tradeDay\022$\n\016half_trade_day\030\002 \003(\tR\014"
  "halfTradeDay\"4\n\032CapitalFlowIntradayReque"
  "st\022\026\n\006symbol\030\001 \001(\tR\006symbol\"\356\001\n\033CapitalFl"
  "owIntradayResponse\022\026\n\006symbol\030\001 \001(\tR\006symb"
  "ol\022n\n\022capital_flow_lines\030\002 \003(\0132@.longbri"
  "dge.quote.v1.CapitalFlowIntradayResponse"
  ".CapitalFlowLineR\020capitalFlowLines\032G\n\017Ca"
  "pitalFlowLine\022\026\n\006inflow\030\001 \001(\tR\006inflow\022\034\n"
  "\ttimestamp\030\002 \001(\003R\ttimestamp\"\372\002\n\033CapitalD"
  "istributionResponse\022\026\n\006symbol\030\001 \001(\tR\006sym"
  "bol\022\034\n\ttimestamp\030\002 \001(\003R\ttimestamp\022c\n\ncap"
  "ital_in\030\003 \001(\0132D.longbridge.quote.v1.Capi"
  "talDistributionResponse.CapitalDistribut"
  "ionR\tcapitalIn\022e\n\013capital_out\030\004 \001(\0132D.lo"
  "ngbridge.quote.v1.CapitalDistributionRes"
  "ponse.CapitalDistributionR\ncapitalOut\032Y\n"
  "\023CapitalDistribution\022\024\n\005large\030\001 \001(\tR\005lar"
  "ge\022\026\n\006medium\030\002 \001(\tR\006medium\022\024\n\005small\030\003 \001("
  "\tR\005small\"s\n\030SecurityCalcQuoteRequest\022\030\n\007"
  "symbols\030\001 \003(\tR\007symbols\022=\n\ncalc_index\030\002 \003"
  "(\0162\036.longbridge.quote.v1.CalcIndexR\tcalc"
  "Index\"\305\013\n\021SecurityCalcIndex\022\026\n\006symbol\030\001 "
  "\001(\tR\006symbol\022\033\n\tlast_done\030\002 \001(\tR\010lastDone"
  "\022\035\n\nchange_val\030\003 \001(\tR\tchangeVal\022\037\n\013chang"
  "e_rate\030\004 \001(\tR\nchangeRate\022\026\n\006volume\030\005 \001(\003"
  "R\006volume\022\032\n\010turnover\030\006 \001(\tR\010turnover\022&\n\017"
  "ytd_change_rate\030\007 \001(\tR\rytdChangeRate\022#\n\r"
  "turnover_rate\030\010 \001(\tR\014turnoverRate\022,\n\022tot"
  "al_market_value\030\t \001(\tR\020totalMarketValue\022"
  "!\n\014capital_flow\030\n \001(\tR\013capitalFlow\022\034\n\tam"
  "plitude\030\013 \001(\tR\tamplitude\022!\n\014volume_ratio"
  "\030\014 \001(\tR\013volumeRatio\022 \n\014pe_ttm_ratio\030\r \001("
  "\tR\npeTtmRatio\022\031\n\010pb_ratio\030\016 \001(\tR\007pbRatio"
  "\022,\n\022dividend_ratio_ttm\030\017 \001(\tR\020dividendRa"
  "tioTtm\022/\n\024five_day_change_rate\030\020 \001(\tR\021fi"
  "veDayChangeRate\022-\n\023ten_day_change_rate\030\021"
  " \001(\tR\020tenDayChangeRate\0221\n\025half_year_chan"
  "ge_rate\030\022 \001(\tR\022halfYearChangeRate\0227\n\030fiv"
  "e_minutes_change_rate\030\023 \001(\tR\025fiveMinutes"
  "ChangeRate\022\037\n\013expiry_date\030\024 \001(\tR\nexpiryD"
  "ate\022!\n\014strike_price\030\025 \001(\tR\013strikePrice\022,"
  "\n\022upper_strike_price\030\026 \001(\tR\020upperStrikeP"
  "rice\022,\n\022lower_strike_price\030\027 \001(\tR\020lowerS"
  "trikePrice\022\'\n\017outstanding_qty\030\030 \001(\003R\016out"
  "standingQty\022+\n\021outstanding_ratio\030\031 \001(\tR\020"
  "outstandingRatio\022\030\n\007premium\030\032 \001(\tR\007premi"
  "um\022\027\n\007itm_otm\030\033 \001(\tR\006itmOtm\022-\n\022implied_v"
  "olatility\030\034 \001(\tR\021impliedVolatility\022#\n\rwa"
  "rrant_delta\030\035 \001(\tR\014warrantDelta\022\035\n\ncall_"
  "price\030\036 \001(\tR\tcallPrice\022\"\n\rto_call_price\030"
  "\037 \001(\tR\013toCallPrice\022-\n\022effective_leverage"
  "\030  \001(\tR\021effectiveLeverage\022%\n\016leverage_ra"
  "tio\030! \001(\tR\rleverageRatio\022)\n\020conversion_r"
  "atio\030\" \001(\tR\017conversionRatio\022#\n\rbalance_p"
  "oint\030# \001(\tR\014balancePoint\022#\n\ropen_interes"
  "t\030$ \001(\003R\014openInterest\022\024\n\005delta\030% \001(\tR\005de"
  "lta\022\024\n\005gamma\030& \001(\tR\005gamma\022\024\n\005theta\030\' \001(\t"
  "R\005theta\022\022\n\004vega\030( \001(\tR\004vega\022\020\n\003rho\030) \001(\t"
  "R\003rho\"s\n\031SecurityCalcQuoteResponse\022V\n\023se"
  "curity_calc_index\030\001 \003(\0132&.longbridge.quo"
  "te.v1.SecurityCalcIndexR\021securityCalcInd"
  "ex\"\317\005\n!SecurityHistoryCandlestickRequest"
  "\022\026\n\006symbol\030\001 \001(\tR\006symbol\0223\n\006period\030\002 \001(\016"
  "2\033.longbridge.quote.v1.PeriodR\006period\022@\n"
  "\013adjust_type\030\003 \001(\0162\037.longbridge.quote.v1"
  ".AdjustTypeR\nadjustType\022O\n\nquery_type\030\004 "
  "\001(\01620.longbridge.quote.v1.HistoryCandles"
  "tickQueryTypeR\tqueryType\022i\n\016offset_reque"
  "st\030\005 \001(\0132B.longbridge.quote.v1.SecurityH"
  "istoryCandlestickRequest.OffsetQueryR\rof"
  "fsetRequest\022c\n\014date_request\030\006 \001(\0132@.long"
  "bridge.quote.v1.SecurityHistoryCandlesti"
  "ckRequest.DateQueryR\013dateRequest\022#\n\rtrad"
  "e_session\030\007 \001(\005R\014tradeSession\032\215\001\n\013Offset"
  "Query\022<\n\tdirection\030\001 \001(\0162\036.longbridge.qu"
  "ote.v1.DirectionR\tdirection\022\022\n\004date\030\002 \001("
  "\tR\004date\022\026\n\006minute\030\003 \001(\tR\006minute\022\024\n\005count"
  "\030\004 \001(\005R\005count\032E\n\tDateQuery\022\035\n\nstart_date"
  "\030\001 \001(\tR\tstartDate\022\031\n\010end_date\030\002 \001(\tR\007end"
  "Date\"5\n\027UserQuoteProfileRequest\022\032\n\010langu"
  "age\030\001 \001(\tR\010language\"o\n\tRateLimit\0226\n\007comm"
  "and\030\001 \001(\0162\034.longbridge.quote.v1.CommandR"
  "\007command\022\024\n\005limit\030\002 \001(\005R\005limit\022\024\n\005burst\030"
  "\003 \001(\005R\005burst\"\345\005\n\024UserQuoteLevelDetail\022a\n"
  "\016by_package_key\030\001 \003(\0132;.longbridge.quote"
  ".v1.UserQuoteLevelDetail.ByPackageKeyEnt"
  "ryR\014byPackageKey\022a\n\016by_market_code\030\002 \003(\013"
  "2;.longbridge.quote.v1.UserQuoteLevelDet"
  "ail.ByMarketCodeEntryR\014byMarketCode\032\177\n\rP"
  "ackageDetail\022\020\n\003key\030\001 \001(\tR\003key\022\022\n\004name\030\002"
  " \001(\tR\004name\022 \n\013description\030\004 \001(\tR\013descrip"
  "tion\022\024\n\005start\030\005 \001(\003R\005start\022\020\n\003end\030\006 \001(\003R"
  "\003end\032\213\001\n\023MarketPackageDetail\022S\n\010packages"
  "\030\001 \003(\01327.longbridge.quote.v1.UserQuoteLe"
  "velDetail.PackageDetailR\010packages\022\037\n\013war"
  "ning_msg\030\004 \001(\tR\nwarningMsg\032x\n\021ByPackageK"
  "eyEntry\022\020\n\003key\030\001 \001(\tR\003key\022M\n\005value\030\002 \001(\013"
  "27.longbridge.quote.v1.UserQuoteLevelDet"
  "ail.PackageDetailR\005value:\0028\001\032~\n\021ByMarket"
  "CodeEntry\022\020\n\003key\030\001 \001(\tR\003key\022S\n\005value\030\002 \001"
  "(\0132=.longbridge.quote.v1.UserQuoteLevelD"
  "etail.MarketPackageDetailR\005value:\0028\001\"\325\002\n"
  "\030UserQuoteProfileResponse\022\033\n\tmember_id\030\001"
  " \001(\003R\010memberId\022\037\n\013quote_level\030\002 \001(\tR\nquo"
  "teLevel\022\'\n\017subscribe_limit\030\003 \001(\005R\016subscr"
  "ibeLimit\022:\n\031history_candlestick_limit\030\004 "
  "\001(\005R\027historyCandlestickLimit\022=\n\nrate_lim"
  "it\030\005 \003(\0132\036.longbridge.quote.v1.RateLimit"
  "R\trateLimit\022W\n\022quote_level_detail\030\006 \001(\0132"
  ").longbridge.quote.v1.UserQuoteLevelDeta"
  "ilR\020quoteLevelDetail*\342\005\n\007Command\022\023\n\017UNKN"
  "OWN_COMMAND\020\000\022\016\n\nHEART_BEAT\020\001\022\010\n\004AUTH\020\002\022"
  "\r\n\tRECONNECT\020\003\022\031\n\025QueryUserQuoteProfile\020"
  "\004\022\020\n\014Subscription\020\005\022\r\n\tSubscribe\020\006\022\017\n\013Un"
  "subscribe\020\007\022\032\n\026QueryMarketTradePeriod\020\010\022"
  "\027\n\023QueryMarketTradeDay\020\t\022\033\n\027QuerySecurit"
  "yStaticInfo\020\n\022\026\n\022QuerySecurityQuote\020\013\022\024\n"
  "\020QueryOptionQuote\020\014\022\025\n\021QueryWarrantQuote"
  "\020\r\022\016\n\nQueryDepth\020\016\022\020\n\014QueryBrokers\020\017\022\035\n\031"
  "QueryParticipantBrokerIds\020\020\022\016\n\nQueryTrad"
  "e\020\021\022\021\n\rQueryIntraday\020\022\022\024\n\020QueryCandlesti"
  "ck\020\023\022\030\n\024QueryOptionChainDate\020\024\022\"\n\036QueryO"
  "ptionChainDateStrikeInfo\020\025\022\032\n\026QueryWarra"
  "ntIssuerInfo\020\026\022\032\n\026QueryWarrantFilterList"
  "\020\027\022\034\n\030QueryCapitalFlowIntraday\020\030\022 \n\034Quer"
  "yCapitalFlowDistribution\020\031\022\032\n\026QuerySecur"
  "ityCalcIndex\020\032\022\033\n\027QueryHistoryCandlestic"
  "k\020\033\022\021\n\rPushQuoteData\020e\022\021\n\rPushDepthData\020"
  "f\022\023\n\017PushBrokersData\020g\022\021\n\rPushTradeData\020"
  "h*\302\001\n\013TradeStatus\022\n\n\006NORMAL\020\000\022\n\n\006HALTED\020"
  "\001\022\014\n\010DELISTED\020\002\022\010\n\004FUSE\020\003\022\020\n\014PREPARE_LIS"
  "T\020\004\022\016\n\nCODE_MOVED\020\005\022\020\n\014TO_BE_OPENED\020\006\022\025\n"
  "\021SPLIT_STOCK_HALTS\020\007\022\013\n\007EXPIRED\020\010\022\030\n\024WAR"
  "RANT_PREPARE_LIST\020\t\022\021\n\rSUSPEND_TRADE\020\n*T"
  "\n\014TradeSession\022\020\n\014NORMAL_TRADE\020\000\022\r\n\tPRE_"
  "TRADE\020\001\022\016\n\nPOST_TRADE\020\002\022\023\n\017OVERNIGHT_TRA"
  "DE\020\003*/\n\nAdjustType\022\r\n\tNO_ADJUST\020\000\022\022\n\016FOR"
  "WARD_ADJUST\020\001*\273\002\n\006Period\022\022\n\016UNKNOWN_PERI"
  "OD\020\000\022\016\n\nONE_MINUTE\020\001\022\016\n\nTWO_MINUTE\020\002\022\020\n\014"
  "THREE_MINUTE\020\003\022\017\n\013FIVE_MINUTE\020\005\022\016\n\nTEN_M"
  "INUTE\020\n\022\022\n\016FIFTEEN_MINUTE\020\017\022\021\n\rTWENTY_MI"
  "NUTE\020\024\022\021\n\rTHIRTY_MINUTE\020\036\022\025\n\021FORTY_FIVE_"
  "MINUTE\020-\022\020\n\014SIXTY_MINUTE\020<\022\014\n\010TWO_HOUR\020x"
  "\022\017\n\nTHREE_HOUR\020\264\001\022\016\n\tFOUR_HOUR\020\360\001\022\010\n\003DAY"
  "\020\350\007\022\t\n\004WEEK\020\320\017\022\n\n\005MONTH\020\270\027\022\014\n\007QUARTER\020\254\033"
  "\022\t\n\004YEAR\020\240\037*I\n\007SubType\022\020\n\014UNKNOWN_TYPE\020\000"
  "\022\t\n\005QUOTE\020\001\022\t\n\005DEPTH\020\002\022\013\n\007BROKERS\020\003\022\t\n\005T"
  "RADE\020\004*#\n\014PushQuoteTag\022\n\n\006Normal\020\000\022\007\n\003Eo"
  "d\020\001*\226\t\n\tCalcIndex\022\025\n\021CALCINDEX_UNKNOWN\020\000"
  "\022\027\n\023CALCINDEX_LAST_DONE\020\001\022\030\n\024CALCINDEX_C"
  "HANGE_VAL\020\002\022\031\n\025CALCINDEX_CHANGE_RATE\020\003\022\024"
  "\n\020CALCINDEX_VOLUME\020\004\022\026\n\022CALCINDEX_TURNOV"
  "ER\020\005\022\035\n\031CALCINDEX_YTD_CHANGE_RATE\020\006\022\033\n\027C"
  "ALCINDEX_TURNOVER_RATE\020\007\022 \n\034CALCINDEX_TO"
  "TAL_MARKET_VALUE\020\010\022\032\n\026CALCINDEX_CAPITAL_"
  "FLOW\020\t\022\027\n\023CALCINDEX_AMPLITUDE\020\n\022\032\n\026CALCI"
  "NDEX_VOLUME_RATIO\020\013\022\032\n\026CALCINDEX_PE_TTM_"
  "RATIO\020\014\022\026\n\022CALCINDEX_PB_RATIO\020\r\022 \n\034CALCI"
  "NDEX_DIVIDEND_RATIO_TTM\020\016\022\"\n\036CALCINDEX_F"
  "IVE_DAY_CHANGE_RATE\020\017\022!\n\035CALCINDEX_TEN_D"
  "AY_CHANGE_RATE\020\020\022#\n\037CALCINDEX_HALF_YEAR_"
  "CHANGE_RATE\020\021\022&\n\"CALCINDEX_FIVE_MINUTES_"
  "CHANGE_RATE\020\022\022\031\n\025CALCINDEX_EXPIRY_DATE\020\023"
  "\022\032\n\026CALCINDEX_STRIKE_PRICE\020\024\022 \n\034CALCINDE"
  "X_UPPER_STRIKE_PRICE\020\025\022 \n\034CALCINDEX_LOWE"
  "R_STRIKE_PRICE\020\026\022\035\n\031CALCINDEX_OUTSTANDIN"
  "G_QTY\020\027\022\037\n\033CALCINDEX_OUTSTANDING_RATIO\020\030"
  "\022\025\n\021CALCINDEX_PREMIUM\020\031\022\025\n\021CALCINDEX_ITM"
  "_OTM\020\032\022 \n\034CALCINDEX_IMPLIED_VOLATILITY\020\033"
  "\022\033\n\027CALCINDEX_WARRANT_DELTA\020\034\022\030\n\024CALCIND"
  "EX_CALL_PRICE\020\035\022\033\n\027CALCINDEX_TO_CALL_PRI"
  "CE\020\036\022 \n\034CALCINDEX_EFFECTIVE_LEVERAGE\020\037\022\034"
  "\n\030CALCINDEX_LEVERAGE_RATIO\020 \022\036\n\032CALCINDE"
  "X_CONVERSION_RATIO\020!\022\033\n\027CALCINDEX_BALANC"
  "E_POINT\020\"\022\033\n\027CALCINDEX_OPEN_INTEREST\020#\022\023"
  "\n\017CALCINDEX_DELTA\020$\022\023\n\017CALCINDEX_GAMMA\020%"
  "\022\023\n\017CALCINDEX_THETA\020&\022\022\n\016CALCINDEX_VEGA\020"
  "\'\022\021\n\rCALCINDEX_RHO\020(*]\n\033HistoryCandlesti"
  "ckQueryType\022\026\n\022UNKNOWN_QUERY_TYPE\020\000\022\023\n\017Q"
  "UERY_BY_OFFSET\020\001\022\021\n\rQUERY_BY_DATE\020\002*&\n\tD"
  "irection\022\014\n\010BACKWARD\020\000\022\013\n\007FORWARD\020\001B\317\001\n\027"
  "com.longbridge.quote.v1B\010ApiProtoP\001Z<git"
  "hub.com/longbridge/openapi-protobufs/gen"
  "/go/quote;quotev1\242\002\003LQX\252\002\023Longbridge.Quo"
  "te.V1\312\002\023Longbridge\\Quote\\V1\342\002\037Longbridge"
  "\\Quote\\V1\\GPBMetadata\352\002\025Longbridge::Quot"
  "e::V1b\006proto3"
  ;
static ::_pbi::once_flag descriptor_table_quote_2fapi_2eproto_once;
const ::_pbi::DescriptorTable descriptor_table_quote_2fapi_2eproto = {
    false, false, 17053, descriptor_table_protodef_quote_2fapi_2eproto,
    "quote/api.proto",
    &descriptor_table_quote_2fapi_2eproto_once, nullptr, 0, 72,
    schemas, file_default_instances, TableStruct_quote_2fapi_2eproto::offsets,
    file_level_metadata_quote_2fapi_2eproto, file_level_enum_descriptors_quote_2fapi_2eproto,
    file_level_service_descriptors_quote_2fapi_2eproto,
};
PROTOBUF_ATTRIBUTE_WEAK const ::_pbi::DescriptorTable* descriptor_table_quote_2fapi_2eproto_getter() {
  return &descriptor_table_quote_2fapi_2eproto;
}

// Force running AddDescriptors() at dynamic initialization time.
PROTOBUF_ATTRIBUTE_INIT_PRIORITY2 static ::_pbi::AddDescriptorsRunner dynamic_init_dummy_quote_2fapi_2eproto(&descriptor_table_quote_2fapi_2eproto);
namespace longbridge {
namespace quote {
namespace v1 {
const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* Command_descriptor() {
  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_quote_2fapi_2eproto);
  return file_level_enum_descriptors_quote_2fapi_2eproto[0];
}
bool Command_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
    case 2:
    case 3:
    case 4:
    case 5:
    case 6:
    case 7:
    case 8:
    case 9:
    case 10:
    case 11:
    case 12:
    case 13:
    case 14:
    case 15:
    case 16:
    case 17:
    case 18:
    case 19:
    case 20:
    case 21:
    case 22:
    case 23:
    case 24:
    case 25:
    case 26:
    case 27:
    case 101:
    case 102:
    case 103:
    case 104:
      return true;
    default:
      return false;
  }
}

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* TradeStatus_descriptor() {
  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_quote_2fapi_2eproto);
  return file_level_enum_descriptors_quote_2fapi_2eproto[1];
}
bool TradeStatus_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
    case 2:
    case 3:
    case 4:
    case 5:
    case 6:
    case 7:
    case 8:
    case 9:
    case 10:
      return true;
    default:
      return false;
  }
}

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* TradeSession_descriptor() {
  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_quote_2fapi_2eproto);
  return file_level_enum_descriptors_quote_2fapi_2eproto[2];
}
bool TradeSession_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
    case 2:
    case 3:
      return true;
    default:
      return false;
  }
}

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* AdjustType_descriptor() {
  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_quote_2fapi_2eproto);
  return file_level_enum_descriptors_quote_2fapi_2eproto[3];
}
bool AdjustType_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
      return true;
    default:
      return false;
  }
}

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* Period_descriptor() {
  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_quote_2fapi_2eproto);
  return file_level_enum_descriptors_quote_2fapi_2eproto[4];
}
bool Period_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
    case 2:
    case 3:
    case 5:
    case 10:
    case 15:
    case 20:
    case 30:
    case 45:
    case 60:
    case 120:
    case 180:
    case 240:
    case 1000:
    case 2000:
    case 3000:
    case 3500:
    case 4000:
      return true;
    default:
      return false;
  }
}

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* SubType_descriptor() {
  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_quote_2fapi_2eproto);
  return file_level_enum_descriptors_quote_2fapi_2eproto[5];
}
bool SubType_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
    case 2:
    case 3:
    case 4:
      return true;
    default:
      return false;
  }
}

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* PushQuoteTag_descriptor() {
  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_quote_2fapi_2eproto);
  return file_level_enum_descriptors_quote_2fapi_2eproto[6];
}
bool PushQuoteTag_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
      return true;
    default:
      return false;
  }
}

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* CalcIndex_descriptor() {
  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_quote_2fapi_2eproto);
  return file_level_enum_descriptors_quote_2fapi_2eproto[7];
}
bool CalcIndex_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
    case 2:
    case 3:
    case 4:
    case 5:
    case 6:
    case 7:
    case 8:
    case 9:
    case 10:
    case 11:
    case 12:
    case 13:
    case 14:
    case 15:
    case 16:
    case 17:
    case 18:
    case 19:
    case 20:
    case 21:
    case 22:
    case 23:
    case 24:
    case 25:
    case 26:
    case 27:
    case 28:
    case 29:
    case 30:
    case 31:
    case 32:
    case 33:
    case 34:
    case 35:
    case 36:
    case 37:
    case 38:
    case 39:
    case 40:
      return true;
    default:
      return false;
  }
}

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* HistoryCandlestickQueryType_descriptor() {
  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_quote_2fapi_2eproto);
  return file_level_enum_descriptors_quote_2fapi_2eproto[8];
}
bool HistoryCandlestickQueryType_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
    case 2:
      return true;
    default:
      return false;
  }
}

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* Direction_descriptor() {
  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_quote_2fapi_2eproto);
  return file_level_enum_descriptors_quote_2fapi_2eproto[9];
}
bool Direction_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
      return true;
    default:
      return false;
  }
}


// ===================================================================

class SecurityRequest::_Internal {
 public:
};

SecurityRequest::SecurityRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor();
  // @@protoc_insertion_point(arena_constructor:longbridge.quote.v1.SecurityRequest)
}
SecurityRequest::SecurityRequest(const SecurityRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  symbol_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    symbol_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_symbol().empty()) {
    symbol_.Set(from._internal_symbol(), 
      GetArenaForAllocation());
  }
  // @@protoc_insertion_point(copy_constructor:longbridge.quote.v1.SecurityRequest)
}

inline void SecurityRequest::SharedCtor() {
symbol_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  symbol_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
}

SecurityRequest::~SecurityRequest() {
  // @@protoc_insertion_point(destructor:longbridge.quote.v1.SecurityRequest)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void SecurityRequest::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  symbol_.Destroy();
}

void SecurityRequest::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void SecurityRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridge.quote.v1.SecurityRequest)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  symbol_.ClearToEmpty();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* SecurityRequest::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string symbol = 1 [json_name = "symbol"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_symbol();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.SecurityRequest.symbol"));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* SecurityRequest::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridge.quote.v1.SecurityRequest)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_symbol().data(), static_cast<int>(this->_internal_symbol().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.SecurityRequest.symbol");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_symbol(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridge.quote.v1.SecurityRequest)
  return target;
}

size_t SecurityRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridge.quote.v1.SecurityRequest)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_symbol());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData SecurityRequest::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    SecurityRequest::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*SecurityRequest::GetClassData() const { return &_class_data_; }

void SecurityRequest::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<SecurityRequest *>(to)->MergeFrom(
      static_cast<const SecurityRequest &>(from));
}


void SecurityRequest::MergeFrom(const SecurityRequest& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:longbridge.quote.v1.SecurityRequest)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (!from._internal_symbol().empty()) {
    _internal_set_symbol(from._internal_symbol());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void SecurityRequest::CopyFrom(const SecurityRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridge.quote.v1.SecurityRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool SecurityRequest::IsInitialized() const {
  return true;
}

void SecurityRequest::InternalSwap(SecurityRequest* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &symbol_, lhs_arena,
      &other->symbol_, rhs_arena
  );
}

::PROTOBUF_NAMESPACE_ID::Metadata SecurityRequest::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[0]);
}

// ===================================================================

class MultiSecurityRequest::_Internal {
 public:
};

MultiSecurityRequest::MultiSecurityRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
  symbol_(arena) {
  SharedCtor();
  // @@protoc_insertion_point(arena_constructor:longbridge.quote.v1.MultiSecurityRequest)
}
MultiSecurityRequest::MultiSecurityRequest(const MultiSecurityRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      symbol_(from.symbol_) {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:longbridge.quote.v1.MultiSecurityRequest)
}

inline void MultiSecurityRequest::SharedCtor() {
}

MultiSecurityRequest::~MultiSecurityRequest() {
  // @@protoc_insertion_point(destructor:longbridge.quote.v1.MultiSecurityRequest)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void MultiSecurityRequest::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
}

void MultiSecurityRequest::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void MultiSecurityRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridge.quote.v1.MultiSecurityRequest)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  symbol_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* MultiSecurityRequest::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // repeated string symbol = 1 [json_name = "symbol"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          ptr -= 1;
          do {
            ptr += 1;
            auto str = _internal_add_symbol();
            ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
            CHK_(ptr);
            CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.MultiSecurityRequest.symbol"));
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* MultiSecurityRequest::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridge.quote.v1.MultiSecurityRequest)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated string symbol = 1 [json_name = "symbol"];
  for (int i = 0, n = this->_internal_symbol_size(); i < n; i++) {
    const auto& s = this->_internal_symbol(i);
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      s.data(), static_cast<int>(s.length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.MultiSecurityRequest.symbol");
    target = stream->WriteString(1, s, target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridge.quote.v1.MultiSecurityRequest)
  return target;
}

size_t MultiSecurityRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridge.quote.v1.MultiSecurityRequest)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated string symbol = 1 [json_name = "symbol"];
  total_size += 1 *
      ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(symbol_.size());
  for (int i = 0, n = symbol_.size(); i < n; i++) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
      symbol_.Get(i));
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData MultiSecurityRequest::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    MultiSecurityRequest::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*MultiSecurityRequest::GetClassData() const { return &_class_data_; }

void MultiSecurityRequest::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<MultiSecurityRequest *>(to)->MergeFrom(
      static_cast<const MultiSecurityRequest &>(from));
}


void MultiSecurityRequest::MergeFrom(const MultiSecurityRequest& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:longbridge.quote.v1.MultiSecurityRequest)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  symbol_.MergeFrom(from.symbol_);
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void MultiSecurityRequest::CopyFrom(const MultiSecurityRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridge.quote.v1.MultiSecurityRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool MultiSecurityRequest::IsInitialized() const {
  return true;
}

void MultiSecurityRequest::InternalSwap(MultiSecurityRequest* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  symbol_.InternalSwap(&other->symbol_);
}

::PROTOBUF_NAMESPACE_ID::Metadata MultiSecurityRequest::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[1]);
}

// ===================================================================

class SecurityStaticInfoResponse::_Internal {
 public:
};

SecurityStaticInfoResponse::SecurityStaticInfoResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
  secu_static_info_(arena) {
  SharedCtor();
  // @@protoc_insertion_point(arena_constructor:longbridge.quote.v1.SecurityStaticInfoResponse)
}
SecurityStaticInfoResponse::SecurityStaticInfoResponse(const SecurityStaticInfoResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      secu_static_info_(from.secu_static_info_) {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:longbridge.quote.v1.SecurityStaticInfoResponse)
}

inline void SecurityStaticInfoResponse::SharedCtor() {
}

SecurityStaticInfoResponse::~SecurityStaticInfoResponse() {
  // @@protoc_insertion_point(destructor:longbridge.quote.v1.SecurityStaticInfoResponse)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void SecurityStaticInfoResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
}

void SecurityStaticInfoResponse::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void SecurityStaticInfoResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridge.quote.v1.SecurityStaticInfoResponse)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  secu_static_info_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* SecurityStaticInfoResponse::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // repeated .longbridge.quote.v1.StaticInfo secu_static_info = 1 [json_name = "secuStaticInfo"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_secu_static_info(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* SecurityStaticInfoResponse::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridge.quote.v1.SecurityStaticInfoResponse)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated .longbridge.quote.v1.StaticInfo secu_static_info = 1 [json_name = "secuStaticInfo"];
  for (unsigned i = 0,
      n = static_cast<unsigned>(this->_internal_secu_static_info_size()); i < n; i++) {
    const auto& repfield = this->_internal_secu_static_info(i);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(1, repfield, repfield.GetCachedSize(), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridge.quote.v1.SecurityStaticInfoResponse)
  return target;
}

size_t SecurityStaticInfoResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridge.quote.v1.SecurityStaticInfoResponse)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated .longbridge.quote.v1.StaticInfo secu_static_info = 1 [json_name = "secuStaticInfo"];
  total_size += 1UL * this->_internal_secu_static_info_size();
  for (const auto& msg : this->secu_static_info_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData SecurityStaticInfoResponse::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    SecurityStaticInfoResponse::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*SecurityStaticInfoResponse::GetClassData() const { return &_class_data_; }

void SecurityStaticInfoResponse::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<SecurityStaticInfoResponse *>(to)->MergeFrom(
      static_cast<const SecurityStaticInfoResponse &>(from));
}


void SecurityStaticInfoResponse::MergeFrom(const SecurityStaticInfoResponse& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:longbridge.quote.v1.SecurityStaticInfoResponse)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  secu_static_info_.MergeFrom(from.secu_static_info_);
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void SecurityStaticInfoResponse::CopyFrom(const SecurityStaticInfoResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridge.quote.v1.SecurityStaticInfoResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool SecurityStaticInfoResponse::IsInitialized() const {
  return true;
}

void SecurityStaticInfoResponse::InternalSwap(SecurityStaticInfoResponse* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  secu_static_info_.InternalSwap(&other->secu_static_info_);
}

::PROTOBUF_NAMESPACE_ID::Metadata SecurityStaticInfoResponse::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[2]);
}

// ===================================================================

class StaticInfo::_Internal {
 public:
};

StaticInfo::StaticInfo(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
  stock_derivatives_(arena) {
  SharedCtor();
  // @@protoc_insertion_point(arena_constructor:longbridge.quote.v1.StaticInfo)
}
StaticInfo::StaticInfo(const StaticInfo& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      stock_derivatives_(from.stock_derivatives_) {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  symbol_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    symbol_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_symbol().empty()) {
    symbol_.Set(from._internal_symbol(), 
      GetArenaForAllocation());
  }
  name_cn_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    name_cn_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_name_cn().empty()) {
    name_cn_.Set(from._internal_name_cn(), 
      GetArenaForAllocation());
  }
  name_en_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    name_en_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_name_en().empty()) {
    name_en_.Set(from._internal_name_en(), 
      GetArenaForAllocation());
  }
  name_hk_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    name_hk_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_name_hk().empty()) {
    name_hk_.Set(from._internal_name_hk(), 
      GetArenaForAllocation());
  }
  listing_date_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    listing_date_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_listing_date().empty()) {
    listing_date_.Set(from._internal_listing_date(), 
      GetArenaForAllocation());
  }
  exchange_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    exchange_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_exchange().empty()) {
    exchange_.Set(from._internal_exchange(), 
      GetArenaForAllocation());
  }
  currency_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    currency_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_currency().empty()) {
    currency_.Set(from._internal_currency(), 
      GetArenaForAllocation());
  }
  eps_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    eps_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_eps().empty()) {
    eps_.Set(from._internal_eps(), 
      GetArenaForAllocation());
  }
  eps_ttm_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    eps_ttm_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_eps_ttm().empty()) {
    eps_ttm_.Set(from._internal_eps_ttm(), 
      GetArenaForAllocation());
  }
  bps_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    bps_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_bps().empty()) {
    bps_.Set(from._internal_bps(), 
      GetArenaForAllocation());
  }
  dividend_yield_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    dividend_yield_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_dividend_yield().empty()) {
    dividend_yield_.Set(from._internal_dividend_yield(), 
      GetArenaForAllocation());
  }
  board_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    board_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_board().empty()) {
    board_.Set(from._internal_board(), 
      GetArenaForAllocation());
  }
  ::memcpy(&total_shares_, &from.total_shares_,
    static_cast<size_t>(reinterpret_cast<char*>(&lot_size_) -
    reinterpret_cast<char*>(&total_shares_)) + sizeof(lot_size_));
  // @@protoc_insertion_point(copy_constructor:longbridge.quote.v1.StaticInfo)
}

inline void StaticInfo::SharedCtor() {
symbol_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  symbol_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
name_cn_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  name_cn_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
name_en_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  name_en_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
name_hk_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  name_hk_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
listing_date_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  listing_date_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
exchange_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  exchange_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
currency_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  currency_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
eps_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  eps_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
eps_ttm_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  eps_ttm_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
bps_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  bps_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
dividend_yield_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  dividend_yield_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
board_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  board_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
    reinterpret_cast<char*>(&total_shares_) - reinterpret_cast<char*>(this)),
    0, static_cast<size_t>(reinterpret_cast<char*>(&lot_size_) -
    reinterpret_cast<char*>(&total_shares_)) + sizeof(lot_size_));
}

StaticInfo::~StaticInfo() {
  // @@protoc_insertion_point(destructor:longbridge.quote.v1.StaticInfo)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void StaticInfo::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  symbol_.Destroy();
  name_cn_.Destroy();
  name_en_.Destroy();
  name_hk_.Destroy();
  listing_date_.Destroy();
  exchange_.Destroy();
  currency_.Destroy();
  eps_.Destroy();
  eps_ttm_.Destroy();
  bps_.Destroy();
  dividend_yield_.Destroy();
  board_.Destroy();
}

void StaticInfo::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void StaticInfo::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridge.quote.v1.StaticInfo)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  stock_derivatives_.Clear();
  symbol_.ClearToEmpty();
  name_cn_.ClearToEmpty();
  name_en_.ClearToEmpty();
  name_hk_.ClearToEmpty();
  listing_date_.ClearToEmpty();
  exchange_.ClearToEmpty();
  currency_.ClearToEmpty();
  eps_.ClearToEmpty();
  eps_ttm_.ClearToEmpty();
  bps_.ClearToEmpty();
  dividend_yield_.ClearToEmpty();
  board_.ClearToEmpty();
  ::memset(&total_shares_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&lot_size_) -
      reinterpret_cast<char*>(&total_shares_)) + sizeof(lot_size_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* StaticInfo::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string symbol = 1 [json_name = "symbol"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_symbol();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.StaticInfo.symbol"));
        } else
          goto handle_unusual;
        continue;
      // string name_cn = 2 [json_name = "nameCn"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
          auto str = _internal_mutable_name_cn();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.StaticInfo.name_cn"));
        } else
          goto handle_unusual;
        continue;
      // string name_en = 3 [json_name = "nameEn"];
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 26)) {
          auto str = _internal_mutable_name_en();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.StaticInfo.name_en"));
        } else
          goto handle_unusual;
        continue;
      // string name_hk = 4 [json_name = "nameHk"];
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 34)) {
          auto str = _internal_mutable_name_hk();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.StaticInfo.name_hk"));
        } else
          goto handle_unusual;
        continue;
      // string listing_date = 5 [json_name = "listingDate"];
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 42)) {
          auto str = _internal_mutable_listing_date();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.StaticInfo.listing_date"));
        } else
          goto handle_unusual;
        continue;
      // string exchange = 6 [json_name = "exchange"];
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 50)) {
          auto str = _internal_mutable_exchange();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.StaticInfo.exchange"));
        } else
          goto handle_unusual;
        continue;
      // string currency = 7 [json_name = "currency"];
      case 7:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 58)) {
          auto str = _internal_mutable_currency();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.StaticInfo.currency"));
        } else
          goto handle_unusual;
        continue;
      // int32 lot_size = 8 [json_name = "lotSize"];
      case 8:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 64)) {
          lot_size_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int64 total_shares = 9 [json_name = "totalShares"];
      case 9:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 72)) {
          total_shares_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int64 circulating_shares = 10 [json_name = "circulatingShares"];
      case 10:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 80)) {
          circulating_shares_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int64 hk_shares = 11 [json_name = "hkShares"];
      case 11:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 88)) {
          hk_shares_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string eps = 12 [json_name = "eps"];
      case 12:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 98)) {
          auto str = _internal_mutable_eps();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.StaticInfo.eps"));
        } else
          goto handle_unusual;
        continue;
      // string eps_ttm = 13 [json_name = "epsTtm"];
      case 13:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 106)) {
          auto str = _internal_mutable_eps_ttm();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.StaticInfo.eps_ttm"));
        } else
          goto handle_unusual;
        continue;
      // string bps = 14 [json_name = "bps"];
      case 14:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 114)) {
          auto str = _internal_mutable_bps();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.StaticInfo.bps"));
        } else
          goto handle_unusual;
        continue;
      // string dividend_yield = 15 [json_name = "dividendYield"];
      case 15:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 122)) {
          auto str = _internal_mutable_dividend_yield();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.StaticInfo.dividend_yield"));
        } else
          goto handle_unusual;
        continue;
      // repeated int32 stock_derivatives = 16 [json_name = "stockDerivatives"];
      case 16:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 130)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_stock_derivatives(), ptr, ctx);
          CHK_(ptr);
        } else if (static_cast<uint8_t>(tag) == 128) {
          _internal_add_stock_derivatives(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string board = 17 [json_name = "board"];
      case 17:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 138)) {
          auto str = _internal_mutable_board();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.StaticInfo.board"));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* StaticInfo::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridge.quote.v1.StaticInfo)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_symbol().data(), static_cast<int>(this->_internal_symbol().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.StaticInfo.symbol");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_symbol(), target);
  }

  // string name_cn = 2 [json_name = "nameCn"];
  if (!this->_internal_name_cn().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_name_cn().data(), static_cast<int>(this->_internal_name_cn().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.StaticInfo.name_cn");
    target = stream->WriteStringMaybeAliased(
        2, this->_internal_name_cn(), target);
  }

  // string name_en = 3 [json_name = "nameEn"];
  if (!this->_internal_name_en().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_name_en().data(), static_cast<int>(this->_internal_name_en().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.StaticInfo.name_en");
    target = stream->WriteStringMaybeAliased(
        3, this->_internal_name_en(), target);
  }

  // string name_hk = 4 [json_name = "nameHk"];
  if (!this->_internal_name_hk().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_name_hk().data(), static_cast<int>(this->_internal_name_hk().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.StaticInfo.name_hk");
    target = stream->WriteStringMaybeAliased(
        4, this->_internal_name_hk(), target);
  }

  // string listing_date = 5 [json_name = "listingDate"];
  if (!this->_internal_listing_date().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_listing_date().data(), static_cast<int>(this->_internal_listing_date().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.StaticInfo.listing_date");
    target = stream->WriteStringMaybeAliased(
        5, this->_internal_listing_date(), target);
  }

  // string exchange = 6 [json_name = "exchange"];
  if (!this->_internal_exchange().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_exchange().data(), static_cast<int>(this->_internal_exchange().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.StaticInfo.exchange");
    target = stream->WriteStringMaybeAliased(
        6, this->_internal_exchange(), target);
  }

  // string currency = 7 [json_name = "currency"];
  if (!this->_internal_currency().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_currency().data(), static_cast<int>(this->_internal_currency().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.StaticInfo.currency");
    target = stream->WriteStringMaybeAliased(
        7, this->_internal_currency(), target);
  }

  // int32 lot_size = 8 [json_name = "lotSize"];
  if (this->_internal_lot_size() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt32ToArray(8, this->_internal_lot_size(), target);
  }

  // int64 total_shares = 9 [json_name = "totalShares"];
  if (this->_internal_total_shares() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt64ToArray(9, this->_internal_total_shares(), target);
  }

  // int64 circulating_shares = 10 [json_name = "circulatingShares"];
  if (this->_internal_circulating_shares() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt64ToArray(10, this->_internal_circulating_shares(), target);
  }

  // int64 hk_shares = 11 [json_name = "hkShares"];
  if (this->_internal_hk_shares() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt64ToArray(11, this->_internal_hk_shares(), target);
  }

  // string eps = 12 [json_name = "eps"];
  if (!this->_internal_eps().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_eps().data(), static_cast<int>(this->_internal_eps().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.StaticInfo.eps");
    target = stream->WriteStringMaybeAliased(
        12, this->_internal_eps(), target);
  }

  // string eps_ttm = 13 [json_name = "epsTtm"];
  if (!this->_internal_eps_ttm().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_eps_ttm().data(), static_cast<int>(this->_internal_eps_ttm().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.StaticInfo.eps_ttm");
    target = stream->WriteStringMaybeAliased(
        13, this->_internal_eps_ttm(), target);
  }

  // string bps = 14 [json_name = "bps"];
  if (!this->_internal_bps().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_bps().data(), static_cast<int>(this->_internal_bps().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.StaticInfo.bps");
    target = stream->WriteStringMaybeAliased(
        14, this->_internal_bps(), target);
  }

  // string dividend_yield = 15 [json_name = "dividendYield"];
  if (!this->_internal_dividend_yield().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_dividend_yield().data(), static_cast<int>(this->_internal_dividend_yield().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.StaticInfo.dividend_yield");
    target = stream->WriteStringMaybeAliased(
        15, this->_internal_dividend_yield(), target);
  }

  // repeated int32 stock_derivatives = 16 [json_name = "stockDerivatives"];
  {
    int byte_size = _stock_derivatives_cached_byte_size_.load(std::memory_order_relaxed);
    if (byte_size > 0) {
      target = stream->WriteInt32Packed(
          16, _internal_stock_derivatives(), byte_size, target);
    }
  }

  // string board = 17 [json_name = "board"];
  if (!this->_internal_board().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_board().data(), static_cast<int>(this->_internal_board().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.StaticInfo.board");
    target = stream->WriteStringMaybeAliased(
        17, this->_internal_board(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridge.quote.v1.StaticInfo)
  return target;
}

size_t StaticInfo::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridge.quote.v1.StaticInfo)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated int32 stock_derivatives = 16 [json_name = "stockDerivatives"];
  {
    size_t data_size = ::_pbi::WireFormatLite::
      Int32Size(this->stock_derivatives_);
    if (data_size > 0) {
      total_size += 2 +
        ::_pbi::WireFormatLite::Int32Size(static_cast<int32_t>(data_size));
    }
    int cached_size = ::_pbi::ToCachedSize(data_size);
    _stock_derivatives_cached_byte_size_.store(cached_size,
                                    std::memory_order_relaxed);
    total_size += data_size;
  }

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_symbol());
  }

  // string name_cn = 2 [json_name = "nameCn"];
  if (!this->_internal_name_cn().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_name_cn());
  }

  // string name_en = 3 [json_name = "nameEn"];
  if (!this->_internal_name_en().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_name_en());
  }

  // string name_hk = 4 [json_name = "nameHk"];
  if (!this->_internal_name_hk().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_name_hk());
  }

  // string listing_date = 5 [json_name = "listingDate"];
  if (!this->_internal_listing_date().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_listing_date());
  }

  // string exchange = 6 [json_name = "exchange"];
  if (!this->_internal_exchange().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_exchange());
  }

  // string currency = 7 [json_name = "currency"];
  if (!this->_internal_currency().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_currency());
  }

  // string eps = 12 [json_name = "eps"];
  if (!this->_internal_eps().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_eps());
  }

  // string eps_ttm = 13 [json_name = "epsTtm"];
  if (!this->_internal_eps_ttm().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_eps_ttm());
  }

  // string bps = 14 [json_name = "bps"];
  if (!this->_internal_bps().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_bps());
  }

  // string dividend_yield = 15 [json_name = "dividendYield"];
  if (!this->_internal_dividend_yield().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_dividend_yield());
  }

  // string board = 17 [json_name = "board"];
  if (!this->_internal_board().empty()) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_board());
  }

  // int64 total_shares = 9 [json_name = "totalShares"];
  if (this->_internal_total_shares() != 0) {
    total_size += ::_pbi::WireFormatLite::Int64SizePlusOne(this->_internal_total_shares());
  }

  // int64 circulating_shares = 10 [json_name = "circulatingShares"];
  if (this->_internal_circulating_shares() != 0) {
    total_size += ::_pbi::WireFormatLite::Int64SizePlusOne(this->_internal_circulating_shares());
  }

  // int64 hk_shares = 11 [json_name = "hkShares"];
  if (this->_internal_hk_shares() != 0) {
    total_size += ::_pbi::WireFormatLite::Int64SizePlusOne(this->_internal_hk_shares());
  }

  // int32 lot_size = 8 [json_name = "lotSize"];
  if (this->_internal_lot_size() != 0) {
    total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(this->_internal_lot_size());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData StaticInfo::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    StaticInfo::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*StaticInfo::GetClassData() const { return &_class_data_; }

void StaticInfo::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<StaticInfo *>(to)->MergeFrom(
      static_cast<const StaticInfo &>(from));
}


void StaticInfo::MergeFrom(const StaticInfo& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:longbridge.quote.v1.StaticInfo)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  stock_derivatives_.MergeFrom(from.stock_derivatives_);
  if (!from._internal_symbol().empty()) {
    _internal_set_symbol(from._internal_symbol());
  }
  if (!from._internal_name_cn().empty()) {
    _internal_set_name_cn(from._internal_name_cn());
  }
  if (!from._internal_name_en().empty()) {
    _internal_set_name_en(from._internal_name_en());
  }
  if (!from._internal_name_hk().empty()) {
    _internal_set_name_hk(from._internal_name_hk());
  }
  if (!from._internal_listing_date().empty()) {
    _internal_set_listing_date(from._internal_listing_date());
  }
  if (!from._internal_exchange().empty()) {
    _internal_set_exchange(from._internal_exchange());
  }
  if (!from._internal_currency().empty()) {
    _internal_set_currency(from._internal_currency());
  }
  if (!from._internal_eps().empty()) {
    _internal_set_eps(from._internal_eps());
  }
  if (!from._internal_eps_ttm().empty()) {
    _internal_set_eps_ttm(from._internal_eps_ttm());
  }
  if (!from._internal_bps().empty()) {
    _internal_set_bps(from._internal_bps());
  }
  if (!from._internal_dividend_yield().empty()) {
    _internal_set_dividend_yield(from._internal_dividend_yield());
  }
  if (!from._internal_board().empty()) {
    _internal_set_board(from._internal_board());
  }
  if (from._internal_total_shares() != 0) {
    _internal_set_total_shares(from._internal_total_shares());
  }
  if (from._internal_circulating_shares() != 0) {
    _internal_set_circulating_shares(from._internal_circulating_shares());
  }
  if (from._internal_hk_shares() != 0) {
    _internal_set_hk_shares(from._internal_hk_shares());
  }
  if (from._internal_lot_size() != 0) {
    _internal_set_lot_size(from._internal_lot_size());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void StaticInfo::CopyFrom(const StaticInfo& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridge.quote.v1.StaticInfo)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool StaticInfo::IsInitialized() const {
  return true;
}

void StaticInfo::InternalSwap(StaticInfo* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  stock_derivatives_.InternalSwap(&other->stock_derivatives_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &symbol_, lhs_arena,
      &other->symbol_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &name_cn_, lhs_arena,
      &other->name_cn_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &name_en_, lhs_arena,
      &other->name_en_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &name_hk_, lhs_arena,
      &other->name_hk_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &listing_date_, lhs_arena,
      &other->listing_date_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &exchange_, lhs_arena,
      &other->exchange_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &currency_, lhs_arena,
      &other->currency_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &eps_, lhs_arena,
      &other->eps_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &eps_ttm_, lhs_arena,
      &other->eps_ttm_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &bps_, lhs_arena,
      &other->bps_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &dividend_yield_, lhs_arena,
      &other->dividend_yield_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &board_, lhs_arena,
      &other->board_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(StaticInfo, lot_size_)
      + sizeof(StaticInfo::lot_size_)
      - PROTOBUF_FIELD_OFFSET(StaticInfo, total_shares_)>(
          reinterpret_cast<char*>(&total_shares_),
          reinterpret_cast<char*>(&other->total_shares_));
}

::PROTOBUF_NAMESPACE_ID::Metadata StaticInfo::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[3]);
}

// ===================================================================

class SecurityQuoteResponse::_Internal {
 public:
};

SecurityQuoteResponse::SecurityQuoteResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
  secu_quote_(arena) {
  SharedCtor();
  // @@protoc_insertion_point(arena_constructor:longbridge.quote.v1.SecurityQuoteResponse)
}
SecurityQuoteResponse::SecurityQuoteResponse(const SecurityQuoteResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      secu_quote_(from.secu_quote_) {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:longbridge.quote.v1.SecurityQuoteResponse)
}

inline void SecurityQuoteResponse::SharedCtor() {
}

SecurityQuoteResponse::~SecurityQuoteResponse() {
  // @@protoc_insertion_point(destructor:longbridge.quote.v1.SecurityQuoteResponse)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void SecurityQuoteResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
}

void SecurityQuoteResponse::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void SecurityQuoteResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridge.quote.v1.SecurityQuoteResponse)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  secu_quote_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* SecurityQuoteResponse::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // repeated .longbridge.quote.v1.SecurityQuote secu_quote = 1 [json_name = "secuQuote"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_secu_quote(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* SecurityQuoteResponse::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridge.quote.v1.SecurityQuoteResponse)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated .longbridge.quote.v1.SecurityQuote secu_quote = 1 [json_name = "secuQuote"];
  for (unsigned i = 0,
      n = static_cast<unsigned>(this->_internal_secu_quote_size()); i < n; i++) {
    const auto& repfield = this->_internal_secu_quote(i);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(1, repfield, repfield.GetCachedSize(), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridge.quote.v1.SecurityQuoteResponse)
  return target;
}

size_t SecurityQuoteResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridge.quote.v1.SecurityQuoteResponse)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated .longbridge.quote.v1.SecurityQuote secu_quote = 1 [json_name = "secuQuote"];
  total_size += 1UL * this->_internal_secu_quote_size();
  for (const auto& msg : this->secu_quote_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData SecurityQuoteResponse::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    SecurityQuoteResponse::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*SecurityQuoteResponse::GetClassData() const { return &_class_data_; }

void SecurityQuoteResponse::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<SecurityQuoteResponse *>(to)->MergeFrom(
      static_cast<const SecurityQuoteResponse &>(from));
}


void SecurityQuoteResponse::MergeFrom(const SecurityQuoteResponse& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:longbridge.quote.v1.SecurityQuoteResponse)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  secu_quote_.MergeFrom(from.secu_quote_);
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void SecurityQuoteResponse::CopyFrom(const SecurityQuoteResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridge.quote.v1.SecurityQuoteResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool SecurityQuoteResponse::IsInitialized() const {
  return true;
}

void SecurityQuoteResponse::InternalSwap(SecurityQuoteResponse* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  secu_quote_.InternalSwap(&other->secu_quote_);
}

::PROTOBUF_NAMESPACE_ID::Metadata SecurityQuoteResponse::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[4]);
}

// ===================================================================

class SecurityQuote::_Internal {
 public:
  static const ::longbridge::quote::v1::PrePostQuote& pre_market_quote(const SecurityQuote* msg);
  static const ::longbridge::quote::v1::PrePostQuote& post_market_quote(const SecurityQuote* msg);
  static const ::longbridge::quote::v1::PrePostQuote& over_night_quote(const SecurityQuote* msg);
};

const ::longbridge::quote::v1::PrePostQuote&
SecurityQuote::_Internal::pre_market_quote(const SecurityQuote* msg) {
  return *msg->pre_market_quote_;
}
const ::longbridge::quote::v1::PrePostQuote&
SecurityQuote::_Internal::post_market_quote(const SecurityQuote* msg) {
  return *msg->post_market_quote_;
}
const ::longbridge::quote::v1::PrePostQuote&
SecurityQuote::_Internal::over_night_quote(const SecurityQuote* msg) {
  return *msg->over_night_quote_;
}
SecurityQuote::SecurityQuote(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor();
  // @@protoc_insertion_point(arena_constructor:longbridge.quote.v1.SecurityQuote)
}
SecurityQuote::SecurityQuote(const SecurityQuote& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  symbol_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    symbol_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_symbol().empty()) {
    symbol_.Set(from._internal_symbol(), 
      GetArenaForAllocation());
  }
  last_done_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    last_done_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_last_done().empty()) {
    last_done_.Set(from._internal_last_done(), 
      GetArenaForAllocation());
  }
  prev_close_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    prev_close_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_prev_close().empty()) {
    prev_close_.Set(from._internal_prev_close(), 
      GetArenaForAllocation());
  }
  open_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    open_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_open().empty()) {
    open_.Set(from._internal_open(), 
      GetArenaForAllocation());
  }
  high_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    high_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_high().empty()) {
    high_.Set(from._internal_high(), 
      GetArenaForAllocation());
  }
  low_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    low_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_low().empty()) {
    low_.Set(from._internal_low(), 
      GetArenaForAllocation());
  }
  turnover_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    turnover_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_turnover().empty()) {
    turnover_.Set(from._internal_turnover(), 
      GetArenaForAllocation());
  }
  if (from._internal_has_pre_market_quote()) {
    pre_market_quote_ = new ::longbridge::quote::v1::PrePostQuote(*from.pre_market_quote_);
  } else {
    pre_market_quote_ = nullptr;
  }
  if (from._internal_has_post_market_quote()) {
    post_market_quote_ = new ::longbridge::quote::v1::PrePostQuote(*from.post_market_quote_);
  } else {
    post_market_quote_ = nullptr;
  }
  if (from._internal_has_over_night_quote()) {
    over_night_quote_ = new ::longbridge::quote::v1::PrePostQuote(*from.over_night_quote_);
  } else {
    over_night_quote_ = nullptr;
  }
  ::memcpy(&timestamp_, &from.timestamp_,
    static_cast<size_t>(reinterpret_cast<char*>(&trade_status_) -
    reinterpret_cast<char*>(&timestamp_)) + sizeof(trade_status_));
  // @@protoc_insertion_point(copy_constructor:longbridge.quote.v1.SecurityQuote)
}

inline void SecurityQuote::SharedCtor() {
symbol_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  symbol_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
last_done_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  last_done_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
prev_close_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  prev_close_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
open_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  open_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
high_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  high_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
low_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  low_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
turnover_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  turnover_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
    reinterpret_cast<char*>(&pre_market_quote_) - reinterpret_cast<char*>(this)),
    0, static_cast<size_t>(reinterpret_cast<char*>(&trade_status_) -
    reinterpret_cast<char*>(&pre_market_quote_)) + sizeof(trade_status_));
}

SecurityQuote::~SecurityQuote() {
  // @@protoc_insertion_point(destructor:longbridge.quote.v1.SecurityQuote)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void SecurityQuote::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  symbol_.Destroy();
  last_done_.Destroy();
  prev_close_.Destroy();
  open_.Destroy();
  high_.Destroy();
  low_.Destroy();
  turnover_.Destroy();
  if (this != internal_default_instance()) delete pre_market_quote_;
  if (this != internal_default_instance()) delete post_market_quote_;
  if (this != internal_default_instance()) delete over_night_quote_;
}

void SecurityQuote::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void SecurityQuote::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridge.quote.v1.SecurityQuote)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  symbol_.ClearToEmpty();
  last_done_.ClearToEmpty();
  prev_close_.ClearToEmpty();
  open_.ClearToEmpty();
  high_.ClearToEmpty();
  low_.ClearToEmpty();
  turnover_.ClearToEmpty();
  if (GetArenaForAllocation() == nullptr && pre_market_quote_ != nullptr) {
    delete pre_market_quote_;
  }
  pre_market_quote_ = nullptr;
  if (GetArenaForAllocation() == nullptr && post_market_quote_ != nullptr) {
    delete post_market_quote_;
  }
  post_market_quote_ = nullptr;
  if (GetArenaForAllocation() == nullptr && over_night_quote_ != nullptr) {
    delete over_night_quote_;
  }
  over_night_quote_ = nullptr;
  ::memset(&timestamp_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&trade_status_) -
      reinterpret_cast<char*>(&timestamp_)) + sizeof(trade_status_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* SecurityQuote::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string symbol = 1 [json_name = "symbol"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_symbol();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.SecurityQuote.symbol"));
        } else
          goto handle_unusual;
        continue;
      // string last_done = 2 [json_name = "lastDone"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
          auto str = _internal_mutable_last_done();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.SecurityQuote.last_done"));
        } else
          goto handle_unusual;
        continue;
      // string prev_close = 3 [json_name = "prevClose"];
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 26)) {
          auto str = _internal_mutable_prev_close();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.SecurityQuote.prev_close"));
        } else
          goto handle_unusual;
        continue;
      // string open = 4 [json_name = "open"];
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 34)) {
          auto str = _internal_mutable_open();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.SecurityQuote.open"));
        } else
          goto handle_unusual;
        continue;
      // string high = 5 [json_name = "high"];
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 42)) {
          auto str = _internal_mutable_high();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.SecurityQuote.high"));
        } else
          goto handle_unusual;
        continue;
      // string low = 6 [json_name = "low"];
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 50)) {
          auto str = _internal_mutable_low();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.SecurityQuote.low"));
        } else
          goto handle_unusual;
        continue;
      // int64 timestamp = 7 [json_name = "timestamp"];
      case 7:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 56)) {
          timestamp_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int64 volume = 8 [json_name = "volume"];
      case 8:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 64)) {
          volume_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string turnover = 9 [json_name = "turnover"];
      case 9:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 74)) {
          auto str = _internal_mutable_turnover();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.SecurityQuote.turnover"));
        } else
          goto handle_unusual;
        continue;
      // .longbridge.quote.v1.TradeStatus trade_status = 10 [json_name = "tradeStatus"];
      case 10:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 80)) {
          uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          _internal_set_trade_status(static_cast<::longbridge::quote::v1::TradeStatus>(val));
        } else
          goto handle_unusual;
        continue;
      // .longbridge.quote.v1.PrePostQuote pre_market_quote = 11 [json_name = "preMarketQuote"];
      case 11:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 90)) {
          ptr = ctx->ParseMessage(_internal_mutable_pre_market_quote(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // .longbridge.quote.v1.PrePostQuote post_market_quote = 12 [json_name = "postMarketQuote"];
      case 12:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 98)) {
          ptr = ctx->ParseMessage(_internal_mutable_post_market_quote(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // .longbridge.quote.v1.PrePostQuote over_night_quote = 13 [json_name = "overNightQuote"];
      case 13:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 106)) {
          ptr = ctx->ParseMessage(_internal_mutable_over_night_quote(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* SecurityQuote::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridge.quote.v1.SecurityQuote)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_symbol().data(), static_cast<int>(this->_internal_symbol().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.SecurityQuote.symbol");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_symbol(), target);
  }

  // string last_done = 2 [json_name = "lastDone"];
  if (!this->_internal_last_done().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_last_done().data(), static_cast<int>(this->_internal_last_done().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.SecurityQuote.last_done");
    target = stream->WriteStringMaybeAliased(
        2, this->_internal_last_done(), target);
  }

  // string prev_close = 3 [json_name = "prevClose"];
  if (!this->_internal_prev_close().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_prev_close().data(), static_cast<int>(this->_internal_prev_close().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.SecurityQuote.prev_close");
    target = stream->WriteStringMaybeAliased(
        3, this->_internal_prev_close(), target);
  }

  // string open = 4 [json_name = "open"];
  if (!this->_internal_open().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_open().data(), static_cast<int>(this->_internal_open().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.SecurityQuote.open");
    target = stream->WriteStringMaybeAliased(
        4, this->_internal_open(), target);
  }

  // string high = 5 [json_name = "high"];
  if (!this->_internal_high().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_high().data(), static_cast<int>(this->_internal_high().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.SecurityQuote.high");
    target = stream->WriteStringMaybeAliased(
        5, this->_internal_high(), target);
  }

  // string low = 6 [json_name = "low"];
  if (!this->_internal_low().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_low().data(), static_cast<int>(this->_internal_low().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.SecurityQuote.low");
    target = stream->WriteStringMaybeAliased(
        6, this->_internal_low(), target);
  }

  // int64 timestamp = 7 [json_name = "timestamp"];
  if (this->_internal_timestamp() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt64ToArray(7, this->_internal_timestamp(), target);
  }

  // int64 volume = 8 [json_name = "volume"];
  if (this->_internal_volume() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt64ToArray(8, this->_internal_volume(), target);
  }

  // string turnover = 9 [json_name = "turnover"];
  if (!this->_internal_turnover().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_turnover().data(), static_cast<int>(this->_internal_turnover().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.SecurityQuote.turnover");
    target = stream->WriteStringMaybeAliased(
        9, this->_internal_turnover(), target);
  }

  // .longbridge.quote.v1.TradeStatus trade_status = 10 [json_name = "tradeStatus"];
  if (this->_internal_trade_status() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
      10, this->_internal_trade_status(), target);
  }

  // .longbridge.quote.v1.PrePostQuote pre_market_quote = 11 [json_name = "preMarketQuote"];
  if (this->_internal_has_pre_market_quote()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(11, _Internal::pre_market_quote(this),
        _Internal::pre_market_quote(this).GetCachedSize(), target, stream);
  }

  // .longbridge.quote.v1.PrePostQuote post_market_quote = 12 [json_name = "postMarketQuote"];
  if (this->_internal_has_post_market_quote()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(12, _Internal::post_market_quote(this),
        _Internal::post_market_quote(this).GetCachedSize(), target, stream);
  }

  // .longbridge.quote.v1.PrePostQuote over_night_quote = 13 [json_name = "overNightQuote"];
  if (this->_internal_has_over_night_quote()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(13, _Internal::over_night_quote(this),
        _Internal::over_night_quote(this).GetCachedSize(), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridge.quote.v1.SecurityQuote)
  return target;
}

size_t SecurityQuote::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridge.quote.v1.SecurityQuote)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_symbol());
  }

  // string last_done = 2 [json_name = "lastDone"];
  if (!this->_internal_last_done().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_last_done());
  }

  // string prev_close = 3 [json_name = "prevClose"];
  if (!this->_internal_prev_close().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_prev_close());
  }

  // string open = 4 [json_name = "open"];
  if (!this->_internal_open().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_open());
  }

  // string high = 5 [json_name = "high"];
  if (!this->_internal_high().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_high());
  }

  // string low = 6 [json_name = "low"];
  if (!this->_internal_low().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_low());
  }

  // string turnover = 9 [json_name = "turnover"];
  if (!this->_internal_turnover().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_turnover());
  }

  // .longbridge.quote.v1.PrePostQuote pre_market_quote = 11 [json_name = "preMarketQuote"];
  if (this->_internal_has_pre_market_quote()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *pre_market_quote_);
  }

  // .longbridge.quote.v1.PrePostQuote post_market_quote = 12 [json_name = "postMarketQuote"];
  if (this->_internal_has_post_market_quote()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *post_market_quote_);
  }

  // .longbridge.quote.v1.PrePostQuote over_night_quote = 13 [json_name = "overNightQuote"];
  if (this->_internal_has_over_night_quote()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *over_night_quote_);
  }

  // int64 timestamp = 7 [json_name = "timestamp"];
  if (this->_internal_timestamp() != 0) {
    total_size += ::_pbi::WireFormatLite::Int64SizePlusOne(this->_internal_timestamp());
  }

  // int64 volume = 8 [json_name = "volume"];
  if (this->_internal_volume() != 0) {
    total_size += ::_pbi::WireFormatLite::Int64SizePlusOne(this->_internal_volume());
  }

  // .longbridge.quote.v1.TradeStatus trade_status = 10 [json_name = "tradeStatus"];
  if (this->_internal_trade_status() != 0) {
    total_size += 1 +
      ::_pbi::WireFormatLite::EnumSize(this->_internal_trade_status());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData SecurityQuote::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    SecurityQuote::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*SecurityQuote::GetClassData() const { return &_class_data_; }

void SecurityQuote::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<SecurityQuote *>(to)->MergeFrom(
      static_cast<const SecurityQuote &>(from));
}


void SecurityQuote::MergeFrom(const SecurityQuote& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:longbridge.quote.v1.SecurityQuote)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (!from._internal_symbol().empty()) {
    _internal_set_symbol(from._internal_symbol());
  }
  if (!from._internal_last_done().empty()) {
    _internal_set_last_done(from._internal_last_done());
  }
  if (!from._internal_prev_close().empty()) {
    _internal_set_prev_close(from._internal_prev_close());
  }
  if (!from._internal_open().empty()) {
    _internal_set_open(from._internal_open());
  }
  if (!from._internal_high().empty()) {
    _internal_set_high(from._internal_high());
  }
  if (!from._internal_low().empty()) {
    _internal_set_low(from._internal_low());
  }
  if (!from._internal_turnover().empty()) {
    _internal_set_turnover(from._internal_turnover());
  }
  if (from._internal_has_pre_market_quote()) {
    _internal_mutable_pre_market_quote()->::longbridge::quote::v1::PrePostQuote::MergeFrom(from._internal_pre_market_quote());
  }
  if (from._internal_has_post_market_quote()) {
    _internal_mutable_post_market_quote()->::longbridge::quote::v1::PrePostQuote::MergeFrom(from._internal_post_market_quote());
  }
  if (from._internal_has_over_night_quote()) {
    _internal_mutable_over_night_quote()->::longbridge::quote::v1::PrePostQuote::MergeFrom(from._internal_over_night_quote());
  }
  if (from._internal_timestamp() != 0) {
    _internal_set_timestamp(from._internal_timestamp());
  }
  if (from._internal_volume() != 0) {
    _internal_set_volume(from._internal_volume());
  }
  if (from._internal_trade_status() != 0) {
    _internal_set_trade_status(from._internal_trade_status());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void SecurityQuote::CopyFrom(const SecurityQuote& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridge.quote.v1.SecurityQuote)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool SecurityQuote::IsInitialized() const {
  return true;
}

void SecurityQuote::InternalSwap(SecurityQuote* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &symbol_, lhs_arena,
      &other->symbol_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &last_done_, lhs_arena,
      &other->last_done_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &prev_close_, lhs_arena,
      &other->prev_close_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &open_, lhs_arena,
      &other->open_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &high_, lhs_arena,
      &other->high_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &low_, lhs_arena,
      &other->low_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &turnover_, lhs_arena,
      &other->turnover_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(SecurityQuote, trade_status_)
      + sizeof(SecurityQuote::trade_status_)
      - PROTOBUF_FIELD_OFFSET(SecurityQuote, pre_market_quote_)>(
          reinterpret_cast<char*>(&pre_market_quote_),
          reinterpret_cast<char*>(&other->pre_market_quote_));
}

::PROTOBUF_NAMESPACE_ID::Metadata SecurityQuote::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[5]);
}

// ===================================================================

class PrePostQuote::_Internal {
 public:
};

PrePostQuote::PrePostQuote(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor();
  // @@protoc_insertion_point(arena_constructor:longbridge.quote.v1.PrePostQuote)
}
PrePostQuote::PrePostQuote(const PrePostQuote& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  last_done_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    last_done_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_last_done().empty()) {
    last_done_.Set(from._internal_last_done(), 
      GetArenaForAllocation());
  }
  turnover_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    turnover_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_turnover().empty()) {
    turnover_.Set(from._internal_turnover(), 
      GetArenaForAllocation());
  }
  high_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    high_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_high().empty()) {
    high_.Set(from._internal_high(), 
      GetArenaForAllocation());
  }
  low_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    low_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_low().empty()) {
    low_.Set(from._internal_low(), 
      GetArenaForAllocation());
  }
  prev_close_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    prev_close_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_prev_close().empty()) {
    prev_close_.Set(from._internal_prev_close(), 
      GetArenaForAllocation());
  }
  ::memcpy(&timestamp_, &from.timestamp_,
    static_cast<size_t>(reinterpret_cast<char*>(&volume_) -
    reinterpret_cast<char*>(&timestamp_)) + sizeof(volume_));
  // @@protoc_insertion_point(copy_constructor:longbridge.quote.v1.PrePostQuote)
}

inline void PrePostQuote::SharedCtor() {
last_done_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  last_done_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
turnover_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  turnover_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
high_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  high_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
low_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  low_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
prev_close_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  prev_close_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
    reinterpret_cast<char*>(&timestamp_) - reinterpret_cast<char*>(this)),
    0, static_cast<size_t>(reinterpret_cast<char*>(&volume_) -
    reinterpret_cast<char*>(&timestamp_)) + sizeof(volume_));
}

PrePostQuote::~PrePostQuote() {
  // @@protoc_insertion_point(destructor:longbridge.quote.v1.PrePostQuote)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void PrePostQuote::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  last_done_.Destroy();
  turnover_.Destroy();
  high_.Destroy();
  low_.Destroy();
  prev_close_.Destroy();
}

void PrePostQuote::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void PrePostQuote::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridge.quote.v1.PrePostQuote)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  last_done_.ClearToEmpty();
  turnover_.ClearToEmpty();
  high_.ClearToEmpty();
  low_.ClearToEmpty();
  prev_close_.ClearToEmpty();
  ::memset(&timestamp_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&volume_) -
      reinterpret_cast<char*>(&timestamp_)) + sizeof(volume_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* PrePostQuote::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string last_done = 1 [json_name = "lastDone"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_last_done();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.PrePostQuote.last_done"));
        } else
          goto handle_unusual;
        continue;
      // int64 timestamp = 2 [json_name = "timestamp"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) {
          timestamp_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int64 volume = 3 [json_name = "volume"];
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 24)) {
          volume_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string turnover = 4 [json_name = "turnover"];
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 34)) {
          auto str = _internal_mutable_turnover();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.PrePostQuote.turnover"));
        } else
          goto handle_unusual;
        continue;
      // string high = 5 [json_name = "high"];
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 42)) {
          auto str = _internal_mutable_high();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.PrePostQuote.high"));
        } else
          goto handle_unusual;
        continue;
      // string low = 6 [json_name = "low"];
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 50)) {
          auto str = _internal_mutable_low();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.PrePostQuote.low"));
        } else
          goto handle_unusual;
        continue;
      // string prev_close = 7 [json_name = "prevClose"];
      case 7:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 58)) {
          auto str = _internal_mutable_prev_close();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.PrePostQuote.prev_close"));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* PrePostQuote::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridge.quote.v1.PrePostQuote)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string last_done = 1 [json_name = "lastDone"];
  if (!this->_internal_last_done().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_last_done().data(), static_cast<int>(this->_internal_last_done().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.PrePostQuote.last_done");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_last_done(), target);
  }

  // int64 timestamp = 2 [json_name = "timestamp"];
  if (this->_internal_timestamp() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt64ToArray(2, this->_internal_timestamp(), target);
  }

  // int64 volume = 3 [json_name = "volume"];
  if (this->_internal_volume() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt64ToArray(3, this->_internal_volume(), target);
  }

  // string turnover = 4 [json_name = "turnover"];
  if (!this->_internal_turnover().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_turnover().data(), static_cast<int>(this->_internal_turnover().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.PrePostQuote.turnover");
    target = stream->WriteStringMaybeAliased(
        4, this->_internal_turnover(), target);
  }

  // string high = 5 [json_name = "high"];
  if (!this->_internal_high().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_high().data(), static_cast<int>(this->_internal_high().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.PrePostQuote.high");
    target = stream->WriteStringMaybeAliased(
        5, this->_internal_high(), target);
  }

  // string low = 6 [json_name = "low"];
  if (!this->_internal_low().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_low().data(), static_cast<int>(this->_internal_low().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.PrePostQuote.low");
    target = stream->WriteStringMaybeAliased(
        6, this->_internal_low(), target);
  }

  // string prev_close = 7 [json_name = "prevClose"];
  if (!this->_internal_prev_close().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_prev_close().data(), static_cast<int>(this->_internal_prev_close().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.PrePostQuote.prev_close");
    target = stream->WriteStringMaybeAliased(
        7, this->_internal_prev_close(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridge.quote.v1.PrePostQuote)
  return target;
}

size_t PrePostQuote::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridge.quote.v1.PrePostQuote)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string last_done = 1 [json_name = "lastDone"];
  if (!this->_internal_last_done().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_last_done());
  }

  // string turnover = 4 [json_name = "turnover"];
  if (!this->_internal_turnover().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_turnover());
  }

  // string high = 5 [json_name = "high"];
  if (!this->_internal_high().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_high());
  }

  // string low = 6 [json_name = "low"];
  if (!this->_internal_low().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_low());
  }

  // string prev_close = 7 [json_name = "prevClose"];
  if (!this->_internal_prev_close().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_prev_close());
  }

  // int64 timestamp = 2 [json_name = "timestamp"];
  if (this->_internal_timestamp() != 0) {
    total_size += ::_pbi::WireFormatLite::Int64SizePlusOne(this->_internal_timestamp());
  }

  // int64 volume = 3 [json_name = "volume"];
  if (this->_internal_volume() != 0) {
    total_size += ::_pbi::WireFormatLite::Int64SizePlusOne(this->_internal_volume());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData PrePostQuote::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    PrePostQuote::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*PrePostQuote::GetClassData() const { return &_class_data_; }

void PrePostQuote::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<PrePostQuote *>(to)->MergeFrom(
      static_cast<const PrePostQuote &>(from));
}


void PrePostQuote::MergeFrom(const PrePostQuote& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:longbridge.quote.v1.PrePostQuote)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (!from._internal_last_done().empty()) {
    _internal_set_last_done(from._internal_last_done());
  }
  if (!from._internal_turnover().empty()) {
    _internal_set_turnover(from._internal_turnover());
  }
  if (!from._internal_high().empty()) {
    _internal_set_high(from._internal_high());
  }
  if (!from._internal_low().empty()) {
    _internal_set_low(from._internal_low());
  }
  if (!from._internal_prev_close().empty()) {
    _internal_set_prev_close(from._internal_prev_close());
  }
  if (from._internal_timestamp() != 0) {
    _internal_set_timestamp(from._internal_timestamp());
  }
  if (from._internal_volume() != 0) {
    _internal_set_volume(from._internal_volume());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void PrePostQuote::CopyFrom(const PrePostQuote& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridge.quote.v1.PrePostQuote)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool PrePostQuote::IsInitialized() const {
  return true;
}

void PrePostQuote::InternalSwap(PrePostQuote* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &last_done_, lhs_arena,
      &other->last_done_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &turnover_, lhs_arena,
      &other->turnover_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &high_, lhs_arena,
      &other->high_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &low_, lhs_arena,
      &other->low_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &prev_close_, lhs_arena,
      &other->prev_close_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(PrePostQuote, volume_)
      + sizeof(PrePostQuote::volume_)
      - PROTOBUF_FIELD_OFFSET(PrePostQuote, timestamp_)>(
          reinterpret_cast<char*>(&timestamp_),
          reinterpret_cast<char*>(&other->timestamp_));
}

::PROTOBUF_NAMESPACE_ID::Metadata PrePostQuote::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[6]);
}

// ===================================================================

class OptionQuoteResponse::_Internal {
 public:
};

OptionQuoteResponse::OptionQuoteResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
  secu_quote_(arena) {
  SharedCtor();
  // @@protoc_insertion_point(arena_constructor:longbridge.quote.v1.OptionQuoteResponse)
}
OptionQuoteResponse::OptionQuoteResponse(const OptionQuoteResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      secu_quote_(from.secu_quote_) {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:longbridge.quote.v1.OptionQuoteResponse)
}

inline void OptionQuoteResponse::SharedCtor() {
}

OptionQuoteResponse::~OptionQuoteResponse() {
  // @@protoc_insertion_point(destructor:longbridge.quote.v1.OptionQuoteResponse)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void OptionQuoteResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
}

void OptionQuoteResponse::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void OptionQuoteResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridge.quote.v1.OptionQuoteResponse)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  secu_quote_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* OptionQuoteResponse::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // repeated .longbridge.quote.v1.OptionQuote secu_quote = 1 [json_name = "secuQuote"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_secu_quote(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* OptionQuoteResponse::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridge.quote.v1.OptionQuoteResponse)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated .longbridge.quote.v1.OptionQuote secu_quote = 1 [json_name = "secuQuote"];
  for (unsigned i = 0,
      n = static_cast<unsigned>(this->_internal_secu_quote_size()); i < n; i++) {
    const auto& repfield = this->_internal_secu_quote(i);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(1, repfield, repfield.GetCachedSize(), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridge.quote.v1.OptionQuoteResponse)
  return target;
}

size_t OptionQuoteResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridge.quote.v1.OptionQuoteResponse)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated .longbridge.quote.v1.OptionQuote secu_quote = 1 [json_name = "secuQuote"];
  total_size += 1UL * this->_internal_secu_quote_size();
  for (const auto& msg : this->secu_quote_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData OptionQuoteResponse::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    OptionQuoteResponse::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*OptionQuoteResponse::GetClassData() const { return &_class_data_; }

void OptionQuoteResponse::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<OptionQuoteResponse *>(to)->MergeFrom(
      static_cast<const OptionQuoteResponse &>(from));
}


void OptionQuoteResponse::MergeFrom(const OptionQuoteResponse& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:longbridge.quote.v1.OptionQuoteResponse)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  secu_quote_.MergeFrom(from.secu_quote_);
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void OptionQuoteResponse::CopyFrom(const OptionQuoteResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridge.quote.v1.OptionQuoteResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool OptionQuoteResponse::IsInitialized() const {
  return true;
}

void OptionQuoteResponse::InternalSwap(OptionQuoteResponse* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  secu_quote_.InternalSwap(&other->secu_quote_);
}

::PROTOBUF_NAMESPACE_ID::Metadata OptionQuoteResponse::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[7]);
}

// ===================================================================

class OptionQuote::_Internal {
 public:
  static const ::longbridge::quote::v1::OptionExtend& option_extend(const OptionQuote* msg);
};

const ::longbridge::quote::v1::OptionExtend&
OptionQuote::_Internal::option_extend(const OptionQuote* msg) {
  return *msg->option_extend_;
}
OptionQuote::OptionQuote(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor();
  // @@protoc_insertion_point(arena_constructor:longbridge.quote.v1.OptionQuote)
}
OptionQuote::OptionQuote(const OptionQuote& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  symbol_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    symbol_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_symbol().empty()) {
    symbol_.Set(from._internal_symbol(), 
      GetArenaForAllocation());
  }
  last_done_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    last_done_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_last_done().empty()) {
    last_done_.Set(from._internal_last_done(), 
      GetArenaForAllocation());
  }
  prev_close_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    prev_close_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_prev_close().empty()) {
    prev_close_.Set(from._internal_prev_close(), 
      GetArenaForAllocation());
  }
  open_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    open_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_open().empty()) {
    open_.Set(from._internal_open(), 
      GetArenaForAllocation());
  }
  high_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    high_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_high().empty()) {
    high_.Set(from._internal_high(), 
      GetArenaForAllocation());
  }
  low_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    low_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_low().empty()) {
    low_.Set(from._internal_low(), 
      GetArenaForAllocation());
  }
  turnover_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    turnover_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_turnover().empty()) {
    turnover_.Set(from._internal_turnover(), 
      GetArenaForAllocation());
  }
  if (from._internal_has_option_extend()) {
    option_extend_ = new ::longbridge::quote::v1::OptionExtend(*from.option_extend_);
  } else {
    option_extend_ = nullptr;
  }
  ::memcpy(&timestamp_, &from.timestamp_,
    static_cast<size_t>(reinterpret_cast<char*>(&trade_status_) -
    reinterpret_cast<char*>(&timestamp_)) + sizeof(trade_status_));
  // @@protoc_insertion_point(copy_constructor:longbridge.quote.v1.OptionQuote)
}

inline void OptionQuote::SharedCtor() {
symbol_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  symbol_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
last_done_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  last_done_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
prev_close_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  prev_close_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
open_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  open_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
high_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  high_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
low_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  low_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
turnover_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  turnover_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
    reinterpret_cast<char*>(&option_extend_) - reinterpret_cast<char*>(this)),
    0, static_cast<size_t>(reinterpret_cast<char*>(&trade_status_) -
    reinterpret_cast<char*>(&option_extend_)) + sizeof(trade_status_));
}

OptionQuote::~OptionQuote() {
  // @@protoc_insertion_point(destructor:longbridge.quote.v1.OptionQuote)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void OptionQuote::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  symbol_.Destroy();
  last_done_.Destroy();
  prev_close_.Destroy();
  open_.Destroy();
  high_.Destroy();
  low_.Destroy();
  turnover_.Destroy();
  if (this != internal_default_instance()) delete option_extend_;
}

void OptionQuote::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void OptionQuote::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridge.quote.v1.OptionQuote)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  symbol_.ClearToEmpty();
  last_done_.ClearToEmpty();
  prev_close_.ClearToEmpty();
  open_.ClearToEmpty();
  high_.ClearToEmpty();
  low_.ClearToEmpty();
  turnover_.ClearToEmpty();
  if (GetArenaForAllocation() == nullptr && option_extend_ != nullptr) {
    delete option_extend_;
  }
  option_extend_ = nullptr;
  ::memset(&timestamp_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&trade_status_) -
      reinterpret_cast<char*>(&timestamp_)) + sizeof(trade_status_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* OptionQuote::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string symbol = 1 [json_name = "symbol"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_symbol();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.OptionQuote.symbol"));
        } else
          goto handle_unusual;
        continue;
      // string last_done = 2 [json_name = "lastDone"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
          auto str = _internal_mutable_last_done();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.OptionQuote.last_done"));
        } else
          goto handle_unusual;
        continue;
      // string prev_close = 3 [json_name = "prevClose"];
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 26)) {
          auto str = _internal_mutable_prev_close();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.OptionQuote.prev_close"));
        } else
          goto handle_unusual;
        continue;
      // string open = 4 [json_name = "open"];
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 34)) {
          auto str = _internal_mutable_open();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.OptionQuote.open"));
        } else
          goto handle_unusual;
        continue;
      // string high = 5 [json_name = "high"];
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 42)) {
          auto str = _internal_mutable_high();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.OptionQuote.high"));
        } else
          goto handle_unusual;
        continue;
      // string low = 6 [json_name = "low"];
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 50)) {
          auto str = _internal_mutable_low();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.OptionQuote.low"));
        } else
          goto handle_unusual;
        continue;
      // int64 timestamp = 7 [json_name = "timestamp"];
      case 7:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 56)) {
          timestamp_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int64 volume = 8 [json_name = "volume"];
      case 8:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 64)) {
          volume_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string turnover = 9 [json_name = "turnover"];
      case 9:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 74)) {
          auto str = _internal_mutable_turnover();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.OptionQuote.turnover"));
        } else
          goto handle_unusual;
        continue;
      // .longbridge.quote.v1.TradeStatus trade_status = 10 [json_name = "tradeStatus"];
      case 10:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 80)) {
          uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          _internal_set_trade_status(static_cast<::longbridge::quote::v1::TradeStatus>(val));
        } else
          goto handle_unusual;
        continue;
      // .longbridge.quote.v1.OptionExtend option_extend = 11 [json_name = "optionExtend"];
      case 11:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 90)) {
          ptr = ctx->ParseMessage(_internal_mutable_option_extend(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* OptionQuote::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridge.quote.v1.OptionQuote)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_symbol().data(), static_cast<int>(this->_internal_symbol().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.OptionQuote.symbol");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_symbol(), target);
  }

  // string last_done = 2 [json_name = "lastDone"];
  if (!this->_internal_last_done().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_last_done().data(), static_cast<int>(this->_internal_last_done().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.OptionQuote.last_done");
    target = stream->WriteStringMaybeAliased(
        2, this->_internal_last_done(), target);
  }

  // string prev_close = 3 [json_name = "prevClose"];
  if (!this->_internal_prev_close().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_prev_close().data(), static_cast<int>(this->_internal_prev_close().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.OptionQuote.prev_close");
    target = stream->WriteStringMaybeAliased(
        3, this->_internal_prev_close(), target);
  }

  // string open = 4 [json_name = "open"];
  if (!this->_internal_open().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_open().data(), static_cast<int>(this->_internal_open().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.OptionQuote.open");
    target = stream->WriteStringMaybeAliased(
        4, this->_internal_open(), target);
  }

  // string high = 5 [json_name = "high"];
  if (!this->_internal_high().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_high().data(), static_cast<int>(this->_internal_high().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.OptionQuote.high");
    target = stream->WriteStringMaybeAliased(
        5, this->_internal_high(), target);
  }

  // string low = 6 [json_name = "low"];
  if (!this->_internal_low().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_low().data(), static_cast<int>(this->_internal_low().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.OptionQuote.low");
    target = stream->WriteStringMaybeAliased(
        6, this->_internal_low(), target);
  }

  // int64 timestamp = 7 [json_name = "timestamp"];
  if (this->_internal_timestamp() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt64ToArray(7, this->_internal_timestamp(), target);
  }

  // int64 volume = 8 [json_name = "volume"];
  if (this->_internal_volume() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt64ToArray(8, this->_internal_volume(), target);
  }

  // string turnover = 9 [json_name = "turnover"];
  if (!this->_internal_turnover().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_turnover().data(), static_cast<int>(this->_internal_turnover().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.OptionQuote.turnover");
    target = stream->WriteStringMaybeAliased(
        9, this->_internal_turnover(), target);
  }

  // .longbridge.quote.v1.TradeStatus trade_status = 10 [json_name = "tradeStatus"];
  if (this->_internal_trade_status() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
      10, this->_internal_trade_status(), target);
  }

  // .longbridge.quote.v1.OptionExtend option_extend = 11 [json_name = "optionExtend"];
  if (this->_internal_has_option_extend()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(11, _Internal::option_extend(this),
        _Internal::option_extend(this).GetCachedSize(), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridge.quote.v1.OptionQuote)
  return target;
}

size_t OptionQuote::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridge.quote.v1.OptionQuote)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_symbol());
  }

  // string last_done = 2 [json_name = "lastDone"];
  if (!this->_internal_last_done().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_last_done());
  }

  // string prev_close = 3 [json_name = "prevClose"];
  if (!this->_internal_prev_close().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_prev_close());
  }

  // string open = 4 [json_name = "open"];
  if (!this->_internal_open().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_open());
  }

  // string high = 5 [json_name = "high"];
  if (!this->_internal_high().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_high());
  }

  // string low = 6 [json_name = "low"];
  if (!this->_internal_low().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_low());
  }

  // string turnover = 9 [json_name = "turnover"];
  if (!this->_internal_turnover().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_turnover());
  }

  // .longbridge.quote.v1.OptionExtend option_extend = 11 [json_name = "optionExtend"];
  if (this->_internal_has_option_extend()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *option_extend_);
  }

  // int64 timestamp = 7 [json_name = "timestamp"];
  if (this->_internal_timestamp() != 0) {
    total_size += ::_pbi::WireFormatLite::Int64SizePlusOne(this->_internal_timestamp());
  }

  // int64 volume = 8 [json_name = "volume"];
  if (this->_internal_volume() != 0) {
    total_size += ::_pbi::WireFormatLite::Int64SizePlusOne(this->_internal_volume());
  }

  // .longbridge.quote.v1.TradeStatus trade_status = 10 [json_name = "tradeStatus"];
  if (this->_internal_trade_status() != 0) {
    total_size += 1 +
      ::_pbi::WireFormatLite::EnumSize(this->_internal_trade_status());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData OptionQuote::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    OptionQuote::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*OptionQuote::GetClassData() const { return &_class_data_; }

void OptionQuote::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<OptionQuote *>(to)->MergeFrom(
      static_cast<const OptionQuote &>(from));
}


void OptionQuote::MergeFrom(const OptionQuote& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:longbridge.quote.v1.OptionQuote)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (!from._internal_symbol().empty()) {
    _internal_set_symbol(from._internal_symbol());
  }
  if (!from._internal_last_done().empty()) {
    _internal_set_last_done(from._internal_last_done());
  }
  if (!from._internal_prev_close().empty()) {
    _internal_set_prev_close(from._internal_prev_close());
  }
  if (!from._internal_open().empty()) {
    _internal_set_open(from._internal_open());
  }
  if (!from._internal_high().empty()) {
    _internal_set_high(from._internal_high());
  }
  if (!from._internal_low().empty()) {
    _internal_set_low(from._internal_low());
  }
  if (!from._internal_turnover().empty()) {
    _internal_set_turnover(from._internal_turnover());
  }
  if (from._internal_has_option_extend()) {
    _internal_mutable_option_extend()->::longbridge::quote::v1::OptionExtend::MergeFrom(from._internal_option_extend());
  }
  if (from._internal_timestamp() != 0) {
    _internal_set_timestamp(from._internal_timestamp());
  }
  if (from._internal_volume() != 0) {
    _internal_set_volume(from._internal_volume());
  }
  if (from._internal_trade_status() != 0) {
    _internal_set_trade_status(from._internal_trade_status());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void OptionQuote::CopyFrom(const OptionQuote& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridge.quote.v1.OptionQuote)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool OptionQuote::IsInitialized() const {
  return true;
}

void OptionQuote::InternalSwap(OptionQuote* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &symbol_, lhs_arena,
      &other->symbol_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &last_done_, lhs_arena,
      &other->last_done_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &prev_close_, lhs_arena,
      &other->prev_close_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &open_, lhs_arena,
      &other->open_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &high_, lhs_arena,
      &other->high_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &low_, lhs_arena,
      &other->low_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &turnover_, lhs_arena,
      &other->turnover_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(OptionQuote, trade_status_)
      + sizeof(OptionQuote::trade_status_)
      - PROTOBUF_FIELD_OFFSET(OptionQuote, option_extend_)>(
          reinterpret_cast<char*>(&option_extend_),
          reinterpret_cast<char*>(&other->option_extend_));
}

::PROTOBUF_NAMESPACE_ID::Metadata OptionQuote::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[8]);
}

// ===================================================================

class OptionExtend::_Internal {
 public:
};

OptionExtend::OptionExtend(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor();
  // @@protoc_insertion_point(arena_constructor:longbridge.quote.v1.OptionExtend)
}
OptionExtend::OptionExtend(const OptionExtend& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  implied_volatility_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    implied_volatility_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_implied_volatility().empty()) {
    implied_volatility_.Set(from._internal_implied_volatility(), 
      GetArenaForAllocation());
  }
  expiry_date_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    expiry_date_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_expiry_date().empty()) {
    expiry_date_.Set(from._internal_expiry_date(), 
      GetArenaForAllocation());
  }
  strike_price_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    strike_price_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_strike_price().empty()) {
    strike_price_.Set(from._internal_strike_price(), 
      GetArenaForAllocation());
  }
  contract_multiplier_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    contract_multiplier_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_contract_multiplier().empty()) {
    contract_multiplier_.Set(from._internal_contract_multiplier(), 
      GetArenaForAllocation());
  }
  contract_type_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    contract_type_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_contract_type().empty()) {
    contract_type_.Set(from._internal_contract_type(), 
      GetArenaForAllocation());
  }
  contract_size_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    contract_size_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_contract_size().empty()) {
    contract_size_.Set(from._internal_contract_size(), 
      GetArenaForAllocation());
  }
  direction_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    direction_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_direction().empty()) {
    direction_.Set(from._internal_direction(), 
      GetArenaForAllocation());
  }
  historical_volatility_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    historical_volatility_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_historical_volatility().empty()) {
    historical_volatility_.Set(from._internal_historical_volatility(), 
      GetArenaForAllocation());
  }
  underlying_symbol_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    underlying_symbol_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_underlying_symbol().empty()) {
    underlying_symbol_.Set(from._internal_underlying_symbol(), 
      GetArenaForAllocation());
  }
  open_interest_ = from.open_interest_;
  // @@protoc_insertion_point(copy_constructor:longbridge.quote.v1.OptionExtend)
}

inline void OptionExtend::SharedCtor() {
implied_volatility_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  implied_volatility_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
expiry_date_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  expiry_date_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
strike_price_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  strike_price_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
contract_multiplier_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  contract_multiplier_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
contract_type_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  contract_type_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
contract_size_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  contract_size_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
direction_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  direction_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
historical_volatility_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  historical_volatility_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
underlying_symbol_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  underlying_symbol_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
open_interest_ = int64_t{0};
}

OptionExtend::~OptionExtend() {
  // @@protoc_insertion_point(destructor:longbridge.quote.v1.OptionExtend)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void OptionExtend::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  implied_volatility_.Destroy();
  expiry_date_.Destroy();
  strike_price_.Destroy();
  contract_multiplier_.Destroy();
  contract_type_.Destroy();
  contract_size_.Destroy();
  direction_.Destroy();
  historical_volatility_.Destroy();
  underlying_symbol_.Destroy();
}

void OptionExtend::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void OptionExtend::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridge.quote.v1.OptionExtend)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  implied_volatility_.ClearToEmpty();
  expiry_date_.ClearToEmpty();
  strike_price_.ClearToEmpty();
  contract_multiplier_.ClearToEmpty();
  contract_type_.ClearToEmpty();
  contract_size_.ClearToEmpty();
  direction_.ClearToEmpty();
  historical_volatility_.ClearToEmpty();
  underlying_symbol_.ClearToEmpty();
  open_interest_ = int64_t{0};
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* OptionExtend::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string implied_volatility = 1 [json_name = "impliedVolatility"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_implied_volatility();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.OptionExtend.implied_volatility"));
        } else
          goto handle_unusual;
        continue;
      // int64 open_interest = 2 [json_name = "openInterest"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) {
          open_interest_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string expiry_date = 3 [json_name = "expiryDate"];
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 26)) {
          auto str = _internal_mutable_expiry_date();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.OptionExtend.expiry_date"));
        } else
          goto handle_unusual;
        continue;
      // string strike_price = 4 [json_name = "strikePrice"];
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 34)) {
          auto str = _internal_mutable_strike_price();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.OptionExtend.strike_price"));
        } else
          goto handle_unusual;
        continue;
      // string contract_multiplier = 5 [json_name = "contractMultiplier"];
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 42)) {
          auto str = _internal_mutable_contract_multiplier();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.OptionExtend.contract_multiplier"));
        } else
          goto handle_unusual;
        continue;
      // string contract_type = 6 [json_name = "contractType"];
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 50)) {
          auto str = _internal_mutable_contract_type();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.OptionExtend.contract_type"));
        } else
          goto handle_unusual;
        continue;
      // string contract_size = 7 [json_name = "contractSize"];
      case 7:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 58)) {
          auto str = _internal_mutable_contract_size();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.OptionExtend.contract_size"));
        } else
          goto handle_unusual;
        continue;
      // string direction = 8 [json_name = "direction"];
      case 8:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 66)) {
          auto str = _internal_mutable_direction();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.OptionExtend.direction"));
        } else
          goto handle_unusual;
        continue;
      // string historical_volatility = 9 [json_name = "historicalVolatility"];
      case 9:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 74)) {
          auto str = _internal_mutable_historical_volatility();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.OptionExtend.historical_volatility"));
        } else
          goto handle_unusual;
        continue;
      // string underlying_symbol = 10 [json_name = "underlyingSymbol"];
      case 10:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 82)) {
          auto str = _internal_mutable_underlying_symbol();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.OptionExtend.underlying_symbol"));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* OptionExtend::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridge.quote.v1.OptionExtend)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string implied_volatility = 1 [json_name = "impliedVolatility"];
  if (!this->_internal_implied_volatility().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_implied_volatility().data(), static_cast<int>(this->_internal_implied_volatility().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.OptionExtend.implied_volatility");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_implied_volatility(), target);
  }

  // int64 open_interest = 2 [json_name = "openInterest"];
  if (this->_internal_open_interest() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt64ToArray(2, this->_internal_open_interest(), target);
  }

  // string expiry_date = 3 [json_name = "expiryDate"];
  if (!this->_internal_expiry_date().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_expiry_date().data(), static_cast<int>(this->_internal_expiry_date().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.OptionExtend.expiry_date");
    target = stream->WriteStringMaybeAliased(
        3, this->_internal_expiry_date(), target);
  }

  // string strike_price = 4 [json_name = "strikePrice"];
  if (!this->_internal_strike_price().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_strike_price().data(), static_cast<int>(this->_internal_strike_price().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.OptionExtend.strike_price");
    target = stream->WriteStringMaybeAliased(
        4, this->_internal_strike_price(), target);
  }

  // string contract_multiplier = 5 [json_name = "contractMultiplier"];
  if (!this->_internal_contract_multiplier().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_contract_multiplier().data(), static_cast<int>(this->_internal_contract_multiplier().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.OptionExtend.contract_multiplier");
    target = stream->WriteStringMaybeAliased(
        5, this->_internal_contract_multiplier(), target);
  }

  // string contract_type = 6 [json_name = "contractType"];
  if (!this->_internal_contract_type().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_contract_type().data(), static_cast<int>(this->_internal_contract_type().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.OptionExtend.contract_type");
    target = stream->WriteStringMaybeAliased(
        6, this->_internal_contract_type(), target);
  }

  // string contract_size = 7 [json_name = "contractSize"];
  if (!this->_internal_contract_size().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_contract_size().data(), static_cast<int>(this->_internal_contract_size().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.OptionExtend.contract_size");
    target = stream->WriteStringMaybeAliased(
        7, this->_internal_contract_size(), target);
  }

  // string direction = 8 [json_name = "direction"];
  if (!this->_internal_direction().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_direction().data(), static_cast<int>(this->_internal_direction().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.OptionExtend.direction");
    target = stream->WriteStringMaybeAliased(
        8, this->_internal_direction(), target);
  }

  // string historical_volatility = 9 [json_name = "historicalVolatility"];
  if (!this->_internal_historical_volatility().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_historical_volatility().data(), static_cast<int>(this->_internal_historical_volatility().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.OptionExtend.historical_volatility");
    target = stream->WriteStringMaybeAliased(
        9, this->_internal_historical_volatility(), target);
  }

  // string underlying_symbol = 10 [json_name = "underlyingSymbol"];
  if (!this->_internal_underlying_symbol().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_underlying_symbol().data(), static_cast<int>(this->_internal_underlying_symbol().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.OptionExtend.underlying_symbol");
    target = stream->WriteStringMaybeAliased(
        10, this->_internal_underlying_symbol(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridge.quote.v1.OptionExtend)
  return target;
}

size_t OptionExtend::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridge.quote.v1.OptionExtend)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string implied_volatility = 1 [json_name = "impliedVolatility"];
  if (!this->_internal_implied_volatility().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_implied_volatility());
  }

  // string expiry_date = 3 [json_name = "expiryDate"];
  if (!this->_internal_expiry_date().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_expiry_date());
  }

  // string strike_price = 4 [json_name = "strikePrice"];
  if (!this->_internal_strike_price().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_strike_price());
  }

  // string contract_multiplier = 5 [json_name = "contractMultiplier"];
  if (!this->_internal_contract_multiplier().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_contract_multiplier());
  }

  // string contract_type = 6 [json_name = "contractType"];
  if (!this->_internal_contract_type().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_contract_type());
  }

  // string contract_size = 7 [json_name = "contractSize"];
  if (!this->_internal_contract_size().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_contract_size());
  }

  // string direction = 8 [json_name = "direction"];
  if (!this->_internal_direction().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_direction());
  }

  // string historical_volatility = 9 [json_name = "historicalVolatility"];
  if (!this->_internal_historical_volatility().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_historical_volatility());
  }

  // string underlying_symbol = 10 [json_name = "underlyingSymbol"];
  if (!this->_internal_underlying_symbol().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_underlying_symbol());
  }

  // int64 open_interest = 2 [json_name = "openInterest"];
  if (this->_internal_open_interest() != 0) {
    total_size += ::_pbi::WireFormatLite::Int64SizePlusOne(this->_internal_open_interest());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData OptionExtend::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    OptionExtend::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*OptionExtend::GetClassData() const { return &_class_data_; }

void OptionExtend::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<OptionExtend *>(to)->MergeFrom(
      static_cast<const OptionExtend &>(from));
}


void OptionExtend::MergeFrom(const OptionExtend& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:longbridge.quote.v1.OptionExtend)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (!from._internal_implied_volatility().empty()) {
    _internal_set_implied_volatility(from._internal_implied_volatility());
  }
  if (!from._internal_expiry_date().empty()) {
    _internal_set_expiry_date(from._internal_expiry_date());
  }
  if (!from._internal_strike_price().empty()) {
    _internal_set_strike_price(from._internal_strike_price());
  }
  if (!from._internal_contract_multiplier().empty()) {
    _internal_set_contract_multiplier(from._internal_contract_multiplier());
  }
  if (!from._internal_contract_type().empty()) {
    _internal_set_contract_type(from._internal_contract_type());
  }
  if (!from._internal_contract_size().empty()) {
    _internal_set_contract_size(from._internal_contract_size());
  }
  if (!from._internal_direction().empty()) {
    _internal_set_direction(from._internal_direction());
  }
  if (!from._internal_historical_volatility().empty()) {
    _internal_set_historical_volatility(from._internal_historical_volatility());
  }
  if (!from._internal_underlying_symbol().empty()) {
    _internal_set_underlying_symbol(from._internal_underlying_symbol());
  }
  if (from._internal_open_interest() != 0) {
    _internal_set_open_interest(from._internal_open_interest());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void OptionExtend::CopyFrom(const OptionExtend& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridge.quote.v1.OptionExtend)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool OptionExtend::IsInitialized() const {
  return true;
}

void OptionExtend::InternalSwap(OptionExtend* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &implied_volatility_, lhs_arena,
      &other->implied_volatility_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &expiry_date_, lhs_arena,
      &other->expiry_date_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &strike_price_, lhs_arena,
      &other->strike_price_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &contract_multiplier_, lhs_arena,
      &other->contract_multiplier_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &contract_type_, lhs_arena,
      &other->contract_type_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &contract_size_, lhs_arena,
      &other->contract_size_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &direction_, lhs_arena,
      &other->direction_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &historical_volatility_, lhs_arena,
      &other->historical_volatility_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &underlying_symbol_, lhs_arena,
      &other->underlying_symbol_, rhs_arena
  );
  swap(open_interest_, other->open_interest_);
}

::PROTOBUF_NAMESPACE_ID::Metadata OptionExtend::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[9]);
}

// ===================================================================

class WarrantQuoteResponse::_Internal {
 public:
};

WarrantQuoteResponse::WarrantQuoteResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
  secu_quote_(arena) {
  SharedCtor();
  // @@protoc_insertion_point(arena_constructor:longbridge.quote.v1.WarrantQuoteResponse)
}
WarrantQuoteResponse::WarrantQuoteResponse(const WarrantQuoteResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      secu_quote_(from.secu_quote_) {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:longbridge.quote.v1.WarrantQuoteResponse)
}

inline void WarrantQuoteResponse::SharedCtor() {
}

WarrantQuoteResponse::~WarrantQuoteResponse() {
  // @@protoc_insertion_point(destructor:longbridge.quote.v1.WarrantQuoteResponse)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void WarrantQuoteResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
}

void WarrantQuoteResponse::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void WarrantQuoteResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridge.quote.v1.WarrantQuoteResponse)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  secu_quote_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* WarrantQuoteResponse::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // repeated .longbridge.quote.v1.WarrantQuote secu_quote = 2 [json_name = "secuQuote"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_secu_quote(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<18>(ptr));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* WarrantQuoteResponse::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridge.quote.v1.WarrantQuoteResponse)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated .longbridge.quote.v1.WarrantQuote secu_quote = 2 [json_name = "secuQuote"];
  for (unsigned i = 0,
      n = static_cast<unsigned>(this->_internal_secu_quote_size()); i < n; i++) {
    const auto& repfield = this->_internal_secu_quote(i);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(2, repfield, repfield.GetCachedSize(), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridge.quote.v1.WarrantQuoteResponse)
  return target;
}

size_t WarrantQuoteResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridge.quote.v1.WarrantQuoteResponse)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated .longbridge.quote.v1.WarrantQuote secu_quote = 2 [json_name = "secuQuote"];
  total_size += 1UL * this->_internal_secu_quote_size();
  for (const auto& msg : this->secu_quote_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData WarrantQuoteResponse::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    WarrantQuoteResponse::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*WarrantQuoteResponse::GetClassData() const { return &_class_data_; }

void WarrantQuoteResponse::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<WarrantQuoteResponse *>(to)->MergeFrom(
      static_cast<const WarrantQuoteResponse &>(from));
}


void WarrantQuoteResponse::MergeFrom(const WarrantQuoteResponse& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:longbridge.quote.v1.WarrantQuoteResponse)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  secu_quote_.MergeFrom(from.secu_quote_);
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void WarrantQuoteResponse::CopyFrom(const WarrantQuoteResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridge.quote.v1.WarrantQuoteResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool WarrantQuoteResponse::IsInitialized() const {
  return true;
}

void WarrantQuoteResponse::InternalSwap(WarrantQuoteResponse* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  secu_quote_.InternalSwap(&other->secu_quote_);
}

::PROTOBUF_NAMESPACE_ID::Metadata WarrantQuoteResponse::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[10]);
}

// ===================================================================

class WarrantQuote::_Internal {
 public:
  static const ::longbridge::quote::v1::WarrantExtend& warrant_extend(const WarrantQuote* msg);
};

const ::longbridge::quote::v1::WarrantExtend&
WarrantQuote::_Internal::warrant_extend(const WarrantQuote* msg) {
  return *msg->warrant_extend_;
}
WarrantQuote::WarrantQuote(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor();
  // @@protoc_insertion_point(arena_constructor:longbridge.quote.v1.WarrantQuote)
}
WarrantQuote::WarrantQuote(const WarrantQuote& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  symbol_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    symbol_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_symbol().empty()) {
    symbol_.Set(from._internal_symbol(), 
      GetArenaForAllocation());
  }
  last_done_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    last_done_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_last_done().empty()) {
    last_done_.Set(from._internal_last_done(), 
      GetArenaForAllocation());
  }
  prev_close_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    prev_close_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_prev_close().empty()) {
    prev_close_.Set(from._internal_prev_close(), 
      GetArenaForAllocation());
  }
  open_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    open_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_open().empty()) {
    open_.Set(from._internal_open(), 
      GetArenaForAllocation());
  }
  high_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    high_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_high().empty()) {
    high_.Set(from._internal_high(), 
      GetArenaForAllocation());
  }
  low_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    low_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_low().empty()) {
    low_.Set(from._internal_low(), 
      GetArenaForAllocation());
  }
  turnover_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    turnover_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_turnover().empty()) {
    turnover_.Set(from._internal_turnover(), 
      GetArenaForAllocation());
  }
  if (from._internal_has_warrant_extend()) {
    warrant_extend_ = new ::longbridge::quote::v1::WarrantExtend(*from.warrant_extend_);
  } else {
    warrant_extend_ = nullptr;
  }
  ::memcpy(&timestamp_, &from.timestamp_,
    static_cast<size_t>(reinterpret_cast<char*>(&trade_status_) -
    reinterpret_cast<char*>(&timestamp_)) + sizeof(trade_status_));
  // @@protoc_insertion_point(copy_constructor:longbridge.quote.v1.WarrantQuote)
}

inline void WarrantQuote::SharedCtor() {
symbol_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  symbol_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
last_done_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  last_done_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
prev_close_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  prev_close_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
open_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  open_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
high_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  high_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
low_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  low_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
turnover_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  turnover_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
    reinterpret_cast<char*>(&warrant_extend_) - reinterpret_cast<char*>(this)),
    0, static_cast<size_t>(reinterpret_cast<char*>(&trade_status_) -
    reinterpret_cast<char*>(&warrant_extend_)) + sizeof(trade_status_));
}

WarrantQuote::~WarrantQuote() {
  // @@protoc_insertion_point(destructor:longbridge.quote.v1.WarrantQuote)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void WarrantQuote::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  symbol_.Destroy();
  last_done_.Destroy();
  prev_close_.Destroy();
  open_.Destroy();
  high_.Destroy();
  low_.Destroy();
  turnover_.Destroy();
  if (this != internal_default_instance()) delete warrant_extend_;
}

void WarrantQuote::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void WarrantQuote::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridge.quote.v1.WarrantQuote)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  symbol_.ClearToEmpty();
  last_done_.ClearToEmpty();
  prev_close_.ClearToEmpty();
  open_.ClearToEmpty();
  high_.ClearToEmpty();
  low_.ClearToEmpty();
  turnover_.ClearToEmpty();
  if (GetArenaForAllocation() == nullptr && warrant_extend_ != nullptr) {
    delete warrant_extend_;
  }
  warrant_extend_ = nullptr;
  ::memset(&timestamp_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&trade_status_) -
      reinterpret_cast<char*>(&timestamp_)) + sizeof(trade_status_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* WarrantQuote::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string symbol = 1 [json_name = "symbol"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_symbol();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.WarrantQuote.symbol"));
        } else
          goto handle_unusual;
        continue;
      // string last_done = 2 [json_name = "lastDone"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
          auto str = _internal_mutable_last_done();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.WarrantQuote.last_done"));
        } else
          goto handle_unusual;
        continue;
      // string prev_close = 3 [json_name = "prevClose"];
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 26)) {
          auto str = _internal_mutable_prev_close();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.WarrantQuote.prev_close"));
        } else
          goto handle_unusual;
        continue;
      // string open = 4 [json_name = "open"];
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 34)) {
          auto str = _internal_mutable_open();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.WarrantQuote.open"));
        } else
          goto handle_unusual;
        continue;
      // string high = 5 [json_name = "high"];
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 42)) {
          auto str = _internal_mutable_high();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.WarrantQuote.high"));
        } else
          goto handle_unusual;
        continue;
      // string low = 6 [json_name = "low"];
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 50)) {
          auto str = _internal_mutable_low();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.WarrantQuote.low"));
        } else
          goto handle_unusual;
        continue;
      // int64 timestamp = 7 [json_name = "timestamp"];
      case 7:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 56)) {
          timestamp_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int64 volume = 8 [json_name = "volume"];
      case 8:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 64)) {
          volume_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string turnover = 9 [json_name = "turnover"];
      case 9:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 74)) {
          auto str = _internal_mutable_turnover();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.WarrantQuote.turnover"));
        } else
          goto handle_unusual;
        continue;
      // .longbridge.quote.v1.TradeStatus trade_status = 10 [json_name = "tradeStatus"];
      case 10:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 80)) {
          uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          _internal_set_trade_status(static_cast<::longbridge::quote::v1::TradeStatus>(val));
        } else
          goto handle_unusual;
        continue;
      // .longbridge.quote.v1.WarrantExtend warrant_extend = 11 [json_name = "warrantExtend"];
      case 11:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 90)) {
          ptr = ctx->ParseMessage(_internal_mutable_warrant_extend(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* WarrantQuote::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridge.quote.v1.WarrantQuote)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_symbol().data(), static_cast<int>(this->_internal_symbol().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.WarrantQuote.symbol");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_symbol(), target);
  }

  // string last_done = 2 [json_name = "lastDone"];
  if (!this->_internal_last_done().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_last_done().data(), static_cast<int>(this->_internal_last_done().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.WarrantQuote.last_done");
    target = stream->WriteStringMaybeAliased(
        2, this->_internal_last_done(), target);
  }

  // string prev_close = 3 [json_name = "prevClose"];
  if (!this->_internal_prev_close().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_prev_close().data(), static_cast<int>(this->_internal_prev_close().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.WarrantQuote.prev_close");
    target = stream->WriteStringMaybeAliased(
        3, this->_internal_prev_close(), target);
  }

  // string open = 4 [json_name = "open"];
  if (!this->_internal_open().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_open().data(), static_cast<int>(this->_internal_open().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.WarrantQuote.open");
    target = stream->WriteStringMaybeAliased(
        4, this->_internal_open(), target);
  }

  // string high = 5 [json_name = "high"];
  if (!this->_internal_high().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_high().data(), static_cast<int>(this->_internal_high().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.WarrantQuote.high");
    target = stream->WriteStringMaybeAliased(
        5, this->_internal_high(), target);
  }

  // string low = 6 [json_name = "low"];
  if (!this->_internal_low().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_low().data(), static_cast<int>(this->_internal_low().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.WarrantQuote.low");
    target = stream->WriteStringMaybeAliased(
        6, this->_internal_low(), target);
  }

  // int64 timestamp = 7 [json_name = "timestamp"];
  if (this->_internal_timestamp() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt64ToArray(7, this->_internal_timestamp(), target);
  }

  // int64 volume = 8 [json_name = "volume"];
  if (this->_internal_volume() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt64ToArray(8, this->_internal_volume(), target);
  }

  // string turnover = 9 [json_name = "turnover"];
  if (!this->_internal_turnover().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_turnover().data(), static_cast<int>(this->_internal_turnover().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.WarrantQuote.turnover");
    target = stream->WriteStringMaybeAliased(
        9, this->_internal_turnover(), target);
  }

  // .longbridge.quote.v1.TradeStatus trade_status = 10 [json_name = "tradeStatus"];
  if (this->_internal_trade_status() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
      10, this->_internal_trade_status(), target);
  }

  // .longbridge.quote.v1.WarrantExtend warrant_extend = 11 [json_name = "warrantExtend"];
  if (this->_internal_has_warrant_extend()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(11, _Internal::warrant_extend(this),
        _Internal::warrant_extend(this).GetCachedSize(), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridge.quote.v1.WarrantQuote)
  return target;
}

size_t WarrantQuote::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridge.quote.v1.WarrantQuote)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_symbol());
  }

  // string last_done = 2 [json_name = "lastDone"];
  if (!this->_internal_last_done().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_last_done());
  }

  // string prev_close = 3 [json_name = "prevClose"];
  if (!this->_internal_prev_close().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_prev_close());
  }

  // string open = 4 [json_name = "open"];
  if (!this->_internal_open().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_open());
  }

  // string high = 5 [json_name = "high"];
  if (!this->_internal_high().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_high());
  }

  // string low = 6 [json_name = "low"];
  if (!this->_internal_low().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_low());
  }

  // string turnover = 9 [json_name = "turnover"];
  if (!this->_internal_turnover().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_turnover());
  }

  // .longbridge.quote.v1.WarrantExtend warrant_extend = 11 [json_name = "warrantExtend"];
  if (this->_internal_has_warrant_extend()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *warrant_extend_);
  }

  // int64 timestamp = 7 [json_name = "timestamp"];
  if (this->_internal_timestamp() != 0) {
    total_size += ::_pbi::WireFormatLite::Int64SizePlusOne(this->_internal_timestamp());
  }

  // int64 volume = 8 [json_name = "volume"];
  if (this->_internal_volume() != 0) {
    total_size += ::_pbi::WireFormatLite::Int64SizePlusOne(this->_internal_volume());
  }

  // .longbridge.quote.v1.TradeStatus trade_status = 10 [json_name = "tradeStatus"];
  if (this->_internal_trade_status() != 0) {
    total_size += 1 +
      ::_pbi::WireFormatLite::EnumSize(this->_internal_trade_status());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData WarrantQuote::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    WarrantQuote::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*WarrantQuote::GetClassData() const { return &_class_data_; }

void WarrantQuote::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<WarrantQuote *>(to)->MergeFrom(
      static_cast<const WarrantQuote &>(from));
}


void WarrantQuote::MergeFrom(const WarrantQuote& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:longbridge.quote.v1.WarrantQuote)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (!from._internal_symbol().empty()) {
    _internal_set_symbol(from._internal_symbol());
  }
  if (!from._internal_last_done().empty()) {
    _internal_set_last_done(from._internal_last_done());
  }
  if (!from._internal_prev_close().empty()) {
    _internal_set_prev_close(from._internal_prev_close());
  }
  if (!from._internal_open().empty()) {
    _internal_set_open(from._internal_open());
  }
  if (!from._internal_high().empty()) {
    _internal_set_high(from._internal_high());
  }
  if (!from._internal_low().empty()) {
    _internal_set_low(from._internal_low());
  }
  if (!from._internal_turnover().empty()) {
    _internal_set_turnover(from._internal_turnover());
  }
  if (from._internal_has_warrant_extend()) {
    _internal_mutable_warrant_extend()->::longbridge::quote::v1::WarrantExtend::MergeFrom(from._internal_warrant_extend());
  }
  if (from._internal_timestamp() != 0) {
    _internal_set_timestamp(from._internal_timestamp());
  }
  if (from._internal_volume() != 0) {
    _internal_set_volume(from._internal_volume());
  }
  if (from._internal_trade_status() != 0) {
    _internal_set_trade_status(from._internal_trade_status());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void WarrantQuote::CopyFrom(const WarrantQuote& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridge.quote.v1.WarrantQuote)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool WarrantQuote::IsInitialized() const {
  return true;
}

void WarrantQuote::InternalSwap(WarrantQuote* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &symbol_, lhs_arena,
      &other->symbol_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &last_done_, lhs_arena,
      &other->last_done_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &prev_close_, lhs_arena,
      &other->prev_close_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &open_, lhs_arena,
      &other->open_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &high_, lhs_arena,
      &other->high_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &low_, lhs_arena,
      &other->low_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &turnover_, lhs_arena,
      &other->turnover_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(WarrantQuote, trade_status_)
      + sizeof(WarrantQuote::trade_status_)
      - PROTOBUF_FIELD_OFFSET(WarrantQuote, warrant_extend_)>(
          reinterpret_cast<char*>(&warrant_extend_),
          reinterpret_cast<char*>(&other->warrant_extend_));
}

::PROTOBUF_NAMESPACE_ID::Metadata WarrantQuote::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[11]);
}

// ===================================================================

class WarrantExtend::_Internal {
 public:
};

WarrantExtend::WarrantExtend(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor();
  // @@protoc_insertion_point(arena_constructor:longbridge.quote.v1.WarrantExtend)
}
WarrantExtend::WarrantExtend(const WarrantExtend& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  implied_volatility_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    implied_volatility_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_implied_volatility().empty()) {
    implied_volatility_.Set(from._internal_implied_volatility(), 
      GetArenaForAllocation());
  }
  expiry_date_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    expiry_date_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_expiry_date().empty()) {
    expiry_date_.Set(from._internal_expiry_date(), 
      GetArenaForAllocation());
  }
  last_trade_date_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    last_trade_date_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_last_trade_date().empty()) {
    last_trade_date_.Set(from._internal_last_trade_date(), 
      GetArenaForAllocation());
  }
  outstanding_ratio_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    outstanding_ratio_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_outstanding_ratio().empty()) {
    outstanding_ratio_.Set(from._internal_outstanding_ratio(), 
      GetArenaForAllocation());
  }
  conversion_ratio_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    conversion_ratio_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_conversion_ratio().empty()) {
    conversion_ratio_.Set(from._internal_conversion_ratio(), 
      GetArenaForAllocation());
  }
  category_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    category_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_category().empty()) {
    category_.Set(from._internal_category(), 
      GetArenaForAllocation());
  }
  strike_price_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    strike_price_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_strike_price().empty()) {
    strike_price_.Set(from._internal_strike_price(), 
      GetArenaForAllocation());
  }
  upper_strike_price_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    upper_strike_price_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_upper_strike_price().empty()) {
    upper_strike_price_.Set(from._internal_upper_strike_price(), 
      GetArenaForAllocation());
  }
  lower_strike_price_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    lower_strike_price_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_lower_strike_price().empty()) {
    lower_strike_price_.Set(from._internal_lower_strike_price(), 
      GetArenaForAllocation());
  }
  call_price_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    call_price_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_call_price().empty()) {
    call_price_.Set(from._internal_call_price(), 
      GetArenaForAllocation());
  }
  underlying_symbol_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    underlying_symbol_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_underlying_symbol().empty()) {
    underlying_symbol_.Set(from._internal_underlying_symbol(), 
      GetArenaForAllocation());
  }
  outstanding_qty_ = from.outstanding_qty_;
  // @@protoc_insertion_point(copy_constructor:longbridge.quote.v1.WarrantExtend)
}

inline void WarrantExtend::SharedCtor() {
implied_volatility_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  implied_volatility_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
expiry_date_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  expiry_date_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
last_trade_date_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  last_trade_date_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
outstanding_ratio_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  outstanding_ratio_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
conversion_ratio_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  conversion_ratio_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
category_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  category_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
strike_price_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  strike_price_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
upper_strike_price_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  upper_strike_price_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
lower_strike_price_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  lower_strike_price_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
call_price_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  call_price_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
underlying_symbol_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  underlying_symbol_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
outstanding_qty_ = int64_t{0};
}

WarrantExtend::~WarrantExtend() {
  // @@protoc_insertion_point(destructor:longbridge.quote.v1.WarrantExtend)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void WarrantExtend::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  implied_volatility_.Destroy();
  expiry_date_.Destroy();
  last_trade_date_.Destroy();
  outstanding_ratio_.Destroy();
  conversion_ratio_.Destroy();
  category_.Destroy();
  strike_price_.Destroy();
  upper_strike_price_.Destroy();
  lower_strike_price_.Destroy();
  call_price_.Destroy();
  underlying_symbol_.Destroy();
}

void WarrantExtend::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void WarrantExtend::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridge.quote.v1.WarrantExtend)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  implied_volatility_.ClearToEmpty();
  expiry_date_.ClearToEmpty();
  last_trade_date_.ClearToEmpty();
  outstanding_ratio_.ClearToEmpty();
  conversion_ratio_.ClearToEmpty();
  category_.ClearToEmpty();
  strike_price_.ClearToEmpty();
  upper_strike_price_.ClearToEmpty();
  lower_strike_price_.ClearToEmpty();
  call_price_.ClearToEmpty();
  underlying_symbol_.ClearToEmpty();
  outstanding_qty_ = int64_t{0};
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* WarrantExtend::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string implied_volatility = 1 [json_name = "impliedVolatility"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_implied_volatility();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.WarrantExtend.implied_volatility"));
        } else
          goto handle_unusual;
        continue;
      // string expiry_date = 2 [json_name = "expiryDate"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
          auto str = _internal_mutable_expiry_date();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.WarrantExtend.expiry_date"));
        } else
          goto handle_unusual;
        continue;
      // string last_trade_date = 3 [json_name = "lastTradeDate"];
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 26)) {
          auto str = _internal_mutable_last_trade_date();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.WarrantExtend.last_trade_date"));
        } else
          goto handle_unusual;
        continue;
      // string outstanding_ratio = 4 [json_name = "outstandingRatio"];
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 34)) {
          auto str = _internal_mutable_outstanding_ratio();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.WarrantExtend.outstanding_ratio"));
        } else
          goto handle_unusual;
        continue;
      // int64 outstanding_qty = 5 [json_name = "outstandingQty"];
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 40)) {
          outstanding_qty_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string conversion_ratio = 6 [json_name = "conversionRatio"];
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 50)) {
          auto str = _internal_mutable_conversion_ratio();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.WarrantExtend.conversion_ratio"));
        } else
          goto handle_unusual;
        continue;
      // string category = 7 [json_name = "category"];
      case 7:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 58)) {
          auto str = _internal_mutable_category();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.WarrantExtend.category"));
        } else
          goto handle_unusual;
        continue;
      // string strike_price = 8 [json_name = "strikePrice"];
      case 8:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 66)) {
          auto str = _internal_mutable_strike_price();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.WarrantExtend.strike_price"));
        } else
          goto handle_unusual;
        continue;
      // string upper_strike_price = 9 [json_name = "upperStrikePrice"];
      case 9:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 74)) {
          auto str = _internal_mutable_upper_strike_price();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.WarrantExtend.upper_strike_price"));
        } else
          goto handle_unusual;
        continue;
      // string lower_strike_price = 10 [json_name = "lowerStrikePrice"];
      case 10:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 82)) {
          auto str = _internal_mutable_lower_strike_price();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.WarrantExtend.lower_strike_price"));
        } else
          goto handle_unusual;
        continue;
      // string call_price = 11 [json_name = "callPrice"];
      case 11:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 90)) {
          auto str = _internal_mutable_call_price();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.WarrantExtend.call_price"));
        } else
          goto handle_unusual;
        continue;
      // string underlying_symbol = 12 [json_name = "underlyingSymbol"];
      case 12:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 98)) {
          auto str = _internal_mutable_underlying_symbol();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.WarrantExtend.underlying_symbol"));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* WarrantExtend::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridge.quote.v1.WarrantExtend)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string implied_volatility = 1 [json_name = "impliedVolatility"];
  if (!this->_internal_implied_volatility().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_implied_volatility().data(), static_cast<int>(this->_internal_implied_volatility().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.WarrantExtend.implied_volatility");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_implied_volatility(), target);
  }

  // string expiry_date = 2 [json_name = "expiryDate"];
  if (!this->_internal_expiry_date().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_expiry_date().data(), static_cast<int>(this->_internal_expiry_date().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.WarrantExtend.expiry_date");
    target = stream->WriteStringMaybeAliased(
        2, this->_internal_expiry_date(), target);
  }

  // string last_trade_date = 3 [json_name = "lastTradeDate"];
  if (!this->_internal_last_trade_date().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_last_trade_date().data(), static_cast<int>(this->_internal_last_trade_date().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.WarrantExtend.last_trade_date");
    target = stream->WriteStringMaybeAliased(
        3, this->_internal_last_trade_date(), target);
  }

  // string outstanding_ratio = 4 [json_name = "outstandingRatio"];
  if (!this->_internal_outstanding_ratio().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_outstanding_ratio().data(), static_cast<int>(this->_internal_outstanding_ratio().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.WarrantExtend.outstanding_ratio");
    target = stream->WriteStringMaybeAliased(
        4, this->_internal_outstanding_ratio(), target);
  }

  // int64 outstanding_qty = 5 [json_name = "outstandingQty"];
  if (this->_internal_outstanding_qty() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt64ToArray(5, this->_internal_outstanding_qty(), target);
  }

  // string conversion_ratio = 6 [json_name = "conversionRatio"];
  if (!this->_internal_conversion_ratio().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_conversion_ratio().data(), static_cast<int>(this->_internal_conversion_ratio().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.WarrantExtend.conversion_ratio");
    target = stream->WriteStringMaybeAliased(
        6, this->_internal_conversion_ratio(), target);
  }

  // string category = 7 [json_name = "category"];
  if (!this->_internal_category().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_category().data(), static_cast<int>(this->_internal_category().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.WarrantExtend.category");
    target = stream->WriteStringMaybeAliased(
        7, this->_internal_category(), target);
  }

  // string strike_price = 8 [json_name = "strikePrice"];
  if (!this->_internal_strike_price().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_strike_price().data(), static_cast<int>(this->_internal_strike_price().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.WarrantExtend.strike_price");
    target = stream->WriteStringMaybeAliased(
        8, this->_internal_strike_price(), target);
  }

  // string upper_strike_price = 9 [json_name = "upperStrikePrice"];
  if (!this->_internal_upper_strike_price().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_upper_strike_price().data(), static_cast<int>(this->_internal_upper_strike_price().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.WarrantExtend.upper_strike_price");
    target = stream->WriteStringMaybeAliased(
        9, this->_internal_upper_strike_price(), target);
  }

  // string lower_strike_price = 10 [json_name = "lowerStrikePrice"];
  if (!this->_internal_lower_strike_price().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_lower_strike_price().data(), static_cast<int>(this->_internal_lower_strike_price().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.WarrantExtend.lower_strike_price");
    target = stream->WriteStringMaybeAliased(
        10, this->_internal_lower_strike_price(), target);
  }

  // string call_price = 11 [json_name = "callPrice"];
  if (!this->_internal_call_price().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_call_price().data(), static_cast<int>(this->_internal_call_price().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.WarrantExtend.call_price");
    target = stream->WriteStringMaybeAliased(
        11, this->_internal_call_price(), target);
  }

  // string underlying_symbol = 12 [json_name = "underlyingSymbol"];
  if (!this->_internal_underlying_symbol().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_underlying_symbol().data(), static_cast<int>(this->_internal_underlying_symbol().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.WarrantExtend.underlying_symbol");
    target = stream->WriteStringMaybeAliased(
        12, this->_internal_underlying_symbol(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridge.quote.v1.WarrantExtend)
  return target;
}

size_t WarrantExtend::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridge.quote.v1.WarrantExtend)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string implied_volatility = 1 [json_name = "impliedVolatility"];
  if (!this->_internal_implied_volatility().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_implied_volatility());
  }

  // string expiry_date = 2 [json_name = "expiryDate"];
  if (!this->_internal_expiry_date().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_expiry_date());
  }

  // string last_trade_date = 3 [json_name = "lastTradeDate"];
  if (!this->_internal_last_trade_date().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_last_trade_date());
  }

  // string outstanding_ratio = 4 [json_name = "outstandingRatio"];
  if (!this->_internal_outstanding_ratio().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_outstanding_ratio());
  }

  // string conversion_ratio = 6 [json_name = "conversionRatio"];
  if (!this->_internal_conversion_ratio().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_conversion_ratio());
  }

  // string category = 7 [json_name = "category"];
  if (!this->_internal_category().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_category());
  }

  // string strike_price = 8 [json_name = "strikePrice"];
  if (!this->_internal_strike_price().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_strike_price());
  }

  // string upper_strike_price = 9 [json_name = "upperStrikePrice"];
  if (!this->_internal_upper_strike_price().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_upper_strike_price());
  }

  // string lower_strike_price = 10 [json_name = "lowerStrikePrice"];
  if (!this->_internal_lower_strike_price().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_lower_strike_price());
  }

  // string call_price = 11 [json_name = "callPrice"];
  if (!this->_internal_call_price().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_call_price());
  }

  // string underlying_symbol = 12 [json_name = "underlyingSymbol"];
  if (!this->_internal_underlying_symbol().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_underlying_symbol());
  }

  // int64 outstanding_qty = 5 [json_name = "outstandingQty"];
  if (this->_internal_outstanding_qty() != 0) {
    total_size += ::_pbi::WireFormatLite::Int64SizePlusOne(this->_internal_outstanding_qty());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData WarrantExtend::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    WarrantExtend::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*WarrantExtend::GetClassData() const { return &_class_data_; }

void WarrantExtend::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<WarrantExtend *>(to)->MergeFrom(
      static_cast<const WarrantExtend &>(from));
}


void WarrantExtend::MergeFrom(const WarrantExtend& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:longbridge.quote.v1.WarrantExtend)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (!from._internal_implied_volatility().empty()) {
    _internal_set_implied_volatility(from._internal_implied_volatility());
  }
  if (!from._internal_expiry_date().empty()) {
    _internal_set_expiry_date(from._internal_expiry_date());
  }
  if (!from._internal_last_trade_date().empty()) {
    _internal_set_last_trade_date(from._internal_last_trade_date());
  }
  if (!from._internal_outstanding_ratio().empty()) {
    _internal_set_outstanding_ratio(from._internal_outstanding_ratio());
  }
  if (!from._internal_conversion_ratio().empty()) {
    _internal_set_conversion_ratio(from._internal_conversion_ratio());
  }
  if (!from._internal_category().empty()) {
    _internal_set_category(from._internal_category());
  }
  if (!from._internal_strike_price().empty()) {
    _internal_set_strike_price(from._internal_strike_price());
  }
  if (!from._internal_upper_strike_price().empty()) {
    _internal_set_upper_strike_price(from._internal_upper_strike_price());
  }
  if (!from._internal_lower_strike_price().empty()) {
    _internal_set_lower_strike_price(from._internal_lower_strike_price());
  }
  if (!from._internal_call_price().empty()) {
    _internal_set_call_price(from._internal_call_price());
  }
  if (!from._internal_underlying_symbol().empty()) {
    _internal_set_underlying_symbol(from._internal_underlying_symbol());
  }
  if (from._internal_outstanding_qty() != 0) {
    _internal_set_outstanding_qty(from._internal_outstanding_qty());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void WarrantExtend::CopyFrom(const WarrantExtend& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridge.quote.v1.WarrantExtend)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool WarrantExtend::IsInitialized() const {
  return true;
}

void WarrantExtend::InternalSwap(WarrantExtend* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &implied_volatility_, lhs_arena,
      &other->implied_volatility_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &expiry_date_, lhs_arena,
      &other->expiry_date_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &last_trade_date_, lhs_arena,
      &other->last_trade_date_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &outstanding_ratio_, lhs_arena,
      &other->outstanding_ratio_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &conversion_ratio_, lhs_arena,
      &other->conversion_ratio_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &category_, lhs_arena,
      &other->category_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &strike_price_, lhs_arena,
      &other->strike_price_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &upper_strike_price_, lhs_arena,
      &other->upper_strike_price_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &lower_strike_price_, lhs_arena,
      &other->lower_strike_price_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &call_price_, lhs_arena,
      &other->call_price_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &underlying_symbol_, lhs_arena,
      &other->underlying_symbol_, rhs_arena
  );
  swap(outstanding_qty_, other->outstanding_qty_);
}

::PROTOBUF_NAMESPACE_ID::Metadata WarrantExtend::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[12]);
}

// ===================================================================

class SecurityDepthResponse::_Internal {
 public:
};

SecurityDepthResponse::SecurityDepthResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
  ask_(arena),
  bid_(arena) {
  SharedCtor();
  // @@protoc_insertion_point(arena_constructor:longbridge.quote.v1.SecurityDepthResponse)
}
SecurityDepthResponse::SecurityDepthResponse(const SecurityDepthResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      ask_(from.ask_),
      bid_(from.bid_) {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  symbol_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    symbol_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_symbol().empty()) {
    symbol_.Set(from._internal_symbol(), 
      GetArenaForAllocation());
  }
  // @@protoc_insertion_point(copy_constructor:longbridge.quote.v1.SecurityDepthResponse)
}

inline void SecurityDepthResponse::SharedCtor() {
symbol_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  symbol_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
}

SecurityDepthResponse::~SecurityDepthResponse() {
  // @@protoc_insertion_point(destructor:longbridge.quote.v1.SecurityDepthResponse)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void SecurityDepthResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  symbol_.Destroy();
}

void SecurityDepthResponse::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void SecurityDepthResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridge.quote.v1.SecurityDepthResponse)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  ask_.Clear();
  bid_.Clear();
  symbol_.ClearToEmpty();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* SecurityDepthResponse::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string symbol = 1 [json_name = "symbol"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_symbol();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.SecurityDepthResponse.symbol"));
        } else
          goto handle_unusual;
        continue;
      // repeated .longbridge.quote.v1.Depth ask = 2 [json_name = "ask"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_ask(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<18>(ptr));
        } else
          goto handle_unusual;
        continue;
      // repeated .longbridge.quote.v1.Depth bid = 3 [json_name = "bid"];
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 26)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_bid(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<26>(ptr));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* SecurityDepthResponse::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridge.quote.v1.SecurityDepthResponse)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_symbol().data(), static_cast<int>(this->_internal_symbol().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.SecurityDepthResponse.symbol");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_symbol(), target);
  }

  // repeated .longbridge.quote.v1.Depth ask = 2 [json_name = "ask"];
  for (unsigned i = 0,
      n = static_cast<unsigned>(this->_internal_ask_size()); i < n; i++) {
    const auto& repfield = this->_internal_ask(i);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(2, repfield, repfield.GetCachedSize(), target, stream);
  }

  // repeated .longbridge.quote.v1.Depth bid = 3 [json_name = "bid"];
  for (unsigned i = 0,
      n = static_cast<unsigned>(this->_internal_bid_size()); i < n; i++) {
    const auto& repfield = this->_internal_bid(i);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(3, repfield, repfield.GetCachedSize(), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridge.quote.v1.SecurityDepthResponse)
  return target;
}

size_t SecurityDepthResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridge.quote.v1.SecurityDepthResponse)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated .longbridge.quote.v1.Depth ask = 2 [json_name = "ask"];
  total_size += 1UL * this->_internal_ask_size();
  for (const auto& msg : this->ask_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  // repeated .longbridge.quote.v1.Depth bid = 3 [json_name = "bid"];
  total_size += 1UL * this->_internal_bid_size();
  for (const auto& msg : this->bid_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_symbol());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData SecurityDepthResponse::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    SecurityDepthResponse::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*SecurityDepthResponse::GetClassData() const { return &_class_data_; }

void SecurityDepthResponse::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<SecurityDepthResponse *>(to)->MergeFrom(
      static_cast<const SecurityDepthResponse &>(from));
}


void SecurityDepthResponse::MergeFrom(const SecurityDepthResponse& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:longbridge.quote.v1.SecurityDepthResponse)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  ask_.MergeFrom(from.ask_);
  bid_.MergeFrom(from.bid_);
  if (!from._internal_symbol().empty()) {
    _internal_set_symbol(from._internal_symbol());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void SecurityDepthResponse::CopyFrom(const SecurityDepthResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridge.quote.v1.SecurityDepthResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool SecurityDepthResponse::IsInitialized() const {
  return true;
}

void SecurityDepthResponse::InternalSwap(SecurityDepthResponse* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ask_.InternalSwap(&other->ask_);
  bid_.InternalSwap(&other->bid_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &symbol_, lhs_arena,
      &other->symbol_, rhs_arena
  );
}

::PROTOBUF_NAMESPACE_ID::Metadata SecurityDepthResponse::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[13]);
}

// ===================================================================

class Depth::_Internal {
 public:
};

Depth::Depth(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor();
  // @@protoc_insertion_point(arena_constructor:longbridge.quote.v1.Depth)
}
Depth::Depth(const Depth& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  price_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    price_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_price().empty()) {
    price_.Set(from._internal_price(), 
      GetArenaForAllocation());
  }
  ::memcpy(&volume_, &from.volume_,
    static_cast<size_t>(reinterpret_cast<char*>(&position_) -
    reinterpret_cast<char*>(&volume_)) + sizeof(position_));
  // @@protoc_insertion_point(copy_constructor:longbridge.quote.v1.Depth)
}

inline void Depth::SharedCtor() {
price_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  price_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
    reinterpret_cast<char*>(&volume_) - reinterpret_cast<char*>(this)),
    0, static_cast<size_t>(reinterpret_cast<char*>(&position_) -
    reinterpret_cast<char*>(&volume_)) + sizeof(position_));
}

Depth::~Depth() {
  // @@protoc_insertion_point(destructor:longbridge.quote.v1.Depth)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void Depth::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  price_.Destroy();
}

void Depth::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void Depth::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridge.quote.v1.Depth)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  price_.ClearToEmpty();
  ::memset(&volume_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&position_) -
      reinterpret_cast<char*>(&volume_)) + sizeof(position_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* Depth::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // int32 position = 1 [json_name = "position"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 8)) {
          position_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string price = 2 [json_name = "price"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
          auto str = _internal_mutable_price();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.Depth.price"));
        } else
          goto handle_unusual;
        continue;
      // int64 volume = 3 [json_name = "volume"];
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 24)) {
          volume_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int64 order_num = 4 [json_name = "orderNum"];
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 32)) {
          order_num_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* Depth::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridge.quote.v1.Depth)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // int32 position = 1 [json_name = "position"];
  if (this->_internal_position() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt32ToArray(1, this->_internal_position(), target);
  }

  // string price = 2 [json_name = "price"];
  if (!this->_internal_price().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_price().data(), static_cast<int>(this->_internal_price().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.Depth.price");
    target = stream->WriteStringMaybeAliased(
        2, this->_internal_price(), target);
  }

  // int64 volume = 3 [json_name = "volume"];
  if (this->_internal_volume() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt64ToArray(3, this->_internal_volume(), target);
  }

  // int64 order_num = 4 [json_name = "orderNum"];
  if (this->_internal_order_num() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt64ToArray(4, this->_internal_order_num(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridge.quote.v1.Depth)
  return target;
}

size_t Depth::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridge.quote.v1.Depth)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string price = 2 [json_name = "price"];
  if (!this->_internal_price().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_price());
  }

  // int64 volume = 3 [json_name = "volume"];
  if (this->_internal_volume() != 0) {
    total_size += ::_pbi::WireFormatLite::Int64SizePlusOne(this->_internal_volume());
  }

  // int64 order_num = 4 [json_name = "orderNum"];
  if (this->_internal_order_num() != 0) {
    total_size += ::_pbi::WireFormatLite::Int64SizePlusOne(this->_internal_order_num());
  }

  // int32 position = 1 [json_name = "position"];
  if (this->_internal_position() != 0) {
    total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(this->_internal_position());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData Depth::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    Depth::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*Depth::GetClassData() const { return &_class_data_; }

void Depth::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<Depth *>(to)->MergeFrom(
      static_cast<const Depth &>(from));
}


void Depth::MergeFrom(const Depth& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:longbridge.quote.v1.Depth)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (!from._internal_price().empty()) {
    _internal_set_price(from._internal_price());
  }
  if (from._internal_volume() != 0) {
    _internal_set_volume(from._internal_volume());
  }
  if (from._internal_order_num() != 0) {
    _internal_set_order_num(from._internal_order_num());
  }
  if (from._internal_position() != 0) {
    _internal_set_position(from._internal_position());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void Depth::CopyFrom(const Depth& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridge.quote.v1.Depth)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool Depth::IsInitialized() const {
  return true;
}

void Depth::InternalSwap(Depth* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &price_, lhs_arena,
      &other->price_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(Depth, position_)
      + sizeof(Depth::position_)
      - PROTOBUF_FIELD_OFFSET(Depth, volume_)>(
          reinterpret_cast<char*>(&volume_),
          reinterpret_cast<char*>(&other->volume_));
}

::PROTOBUF_NAMESPACE_ID::Metadata Depth::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[14]);
}

// ===================================================================

class SecurityBrokersResponse::_Internal {
 public:
};

SecurityBrokersResponse::SecurityBrokersResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
  ask_brokers_(arena),
  bid_brokers_(arena) {
  SharedCtor();
  // @@protoc_insertion_point(arena_constructor:longbridge.quote.v1.SecurityBrokersResponse)
}
SecurityBrokersResponse::SecurityBrokersResponse(const SecurityBrokersResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      ask_brokers_(from.ask_brokers_),
      bid_brokers_(from.bid_brokers_) {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  symbol_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    symbol_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_symbol().empty()) {
    symbol_.Set(from._internal_symbol(), 
      GetArenaForAllocation());
  }
  // @@protoc_insertion_point(copy_constructor:longbridge.quote.v1.SecurityBrokersResponse)
}

inline void SecurityBrokersResponse::SharedCtor() {
symbol_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  symbol_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
}

SecurityBrokersResponse::~SecurityBrokersResponse() {
  // @@protoc_insertion_point(destructor:longbridge.quote.v1.SecurityBrokersResponse)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void SecurityBrokersResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  symbol_.Destroy();
}

void SecurityBrokersResponse::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void SecurityBrokersResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridge.quote.v1.SecurityBrokersResponse)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  ask_brokers_.Clear();
  bid_brokers_.Clear();
  symbol_.ClearToEmpty();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* SecurityBrokersResponse::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string symbol = 1 [json_name = "symbol"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_symbol();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.SecurityBrokersResponse.symbol"));
        } else
          goto handle_unusual;
        continue;
      // repeated .longbridge.quote.v1.Brokers ask_brokers = 2 [json_name = "askBrokers"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_ask_brokers(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<18>(ptr));
        } else
          goto handle_unusual;
        continue;
      // repeated .longbridge.quote.v1.Brokers bid_brokers = 3 [json_name = "bidBrokers"];
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 26)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_bid_brokers(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<26>(ptr));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* SecurityBrokersResponse::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridge.quote.v1.SecurityBrokersResponse)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_symbol().data(), static_cast<int>(this->_internal_symbol().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.SecurityBrokersResponse.symbol");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_symbol(), target);
  }

  // repeated .longbridge.quote.v1.Brokers ask_brokers = 2 [json_name = "askBrokers"];
  for (unsigned i = 0,
      n = static_cast<unsigned>(this->_internal_ask_brokers_size()); i < n; i++) {
    const auto& repfield = this->_internal_ask_brokers(i);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(2, repfield, repfield.GetCachedSize(), target, stream);
  }

  // repeated .longbridge.quote.v1.Brokers bid_brokers = 3 [json_name = "bidBrokers"];
  for (unsigned i = 0,
      n = static_cast<unsigned>(this->_internal_bid_brokers_size()); i < n; i++) {
    const auto& repfield = this->_internal_bid_brokers(i);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(3, repfield, repfield.GetCachedSize(), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridge.quote.v1.SecurityBrokersResponse)
  return target;
}

size_t SecurityBrokersResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridge.quote.v1.SecurityBrokersResponse)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated .longbridge.quote.v1.Brokers ask_brokers = 2 [json_name = "askBrokers"];
  total_size += 1UL * this->_internal_ask_brokers_size();
  for (const auto& msg : this->ask_brokers_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  // repeated .longbridge.quote.v1.Brokers bid_brokers = 3 [json_name = "bidBrokers"];
  total_size += 1UL * this->_internal_bid_brokers_size();
  for (const auto& msg : this->bid_brokers_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_symbol());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData SecurityBrokersResponse::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    SecurityBrokersResponse::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*SecurityBrokersResponse::GetClassData() const { return &_class_data_; }

void SecurityBrokersResponse::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<SecurityBrokersResponse *>(to)->MergeFrom(
      static_cast<const SecurityBrokersResponse &>(from));
}


void SecurityBrokersResponse::MergeFrom(const SecurityBrokersResponse& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:longbridge.quote.v1.SecurityBrokersResponse)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  ask_brokers_.MergeFrom(from.ask_brokers_);
  bid_brokers_.MergeFrom(from.bid_brokers_);
  if (!from._internal_symbol().empty()) {
    _internal_set_symbol(from._internal_symbol());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void SecurityBrokersResponse::CopyFrom(const SecurityBrokersResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridge.quote.v1.SecurityBrokersResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool SecurityBrokersResponse::IsInitialized() const {
  return true;
}

void SecurityBrokersResponse::InternalSwap(SecurityBrokersResponse* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ask_brokers_.InternalSwap(&other->ask_brokers_);
  bid_brokers_.InternalSwap(&other->bid_brokers_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &symbol_, lhs_arena,
      &other->symbol_, rhs_arena
  );
}

::PROTOBUF_NAMESPACE_ID::Metadata SecurityBrokersResponse::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[15]);
}

// ===================================================================

class Brokers::_Internal {
 public:
};

Brokers::Brokers(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
  broker_ids_(arena) {
  SharedCtor();
  // @@protoc_insertion_point(arena_constructor:longbridge.quote.v1.Brokers)
}
Brokers::Brokers(const Brokers& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      broker_ids_(from.broker_ids_) {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  position_ = from.position_;
  // @@protoc_insertion_point(copy_constructor:longbridge.quote.v1.Brokers)
}

inline void Brokers::SharedCtor() {
position_ = 0;
}

Brokers::~Brokers() {
  // @@protoc_insertion_point(destructor:longbridge.quote.v1.Brokers)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void Brokers::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
}

void Brokers::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void Brokers::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridge.quote.v1.Brokers)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  broker_ids_.Clear();
  position_ = 0;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* Brokers::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // int32 position = 1 [json_name = "position"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 8)) {
          position_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // repeated int32 broker_ids = 2 [json_name = "brokerIds"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_broker_ids(), ptr, ctx);
          CHK_(ptr);
        } else if (static_cast<uint8_t>(tag) == 16) {
          _internal_add_broker_ids(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* Brokers::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridge.quote.v1.Brokers)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // int32 position = 1 [json_name = "position"];
  if (this->_internal_position() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt32ToArray(1, this->_internal_position(), target);
  }

  // repeated int32 broker_ids = 2 [json_name = "brokerIds"];
  {
    int byte_size = _broker_ids_cached_byte_size_.load(std::memory_order_relaxed);
    if (byte_size > 0) {
      target = stream->WriteInt32Packed(
          2, _internal_broker_ids(), byte_size, target);
    }
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridge.quote.v1.Brokers)
  return target;
}

size_t Brokers::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridge.quote.v1.Brokers)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated int32 broker_ids = 2 [json_name = "brokerIds"];
  {
    size_t data_size = ::_pbi::WireFormatLite::
      Int32Size(this->broker_ids_);
    if (data_size > 0) {
      total_size += 1 +
        ::_pbi::WireFormatLite::Int32Size(static_cast<int32_t>(data_size));
    }
    int cached_size = ::_pbi::ToCachedSize(data_size);
    _broker_ids_cached_byte_size_.store(cached_size,
                                    std::memory_order_relaxed);
    total_size += data_size;
  }

  // int32 position = 1 [json_name = "position"];
  if (this->_internal_position() != 0) {
    total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(this->_internal_position());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData Brokers::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    Brokers::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*Brokers::GetClassData() const { return &_class_data_; }

void Brokers::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<Brokers *>(to)->MergeFrom(
      static_cast<const Brokers &>(from));
}


void Brokers::MergeFrom(const Brokers& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:longbridge.quote.v1.Brokers)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  broker_ids_.MergeFrom(from.broker_ids_);
  if (from._internal_position() != 0) {
    _internal_set_position(from._internal_position());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void Brokers::CopyFrom(const Brokers& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridge.quote.v1.Brokers)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool Brokers::IsInitialized() const {
  return true;
}

void Brokers::InternalSwap(Brokers* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  broker_ids_.InternalSwap(&other->broker_ids_);
  swap(position_, other->position_);
}

::PROTOBUF_NAMESPACE_ID::Metadata Brokers::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[16]);
}

// ===================================================================

class ParticipantBrokerIdsResponse::_Internal {
 public:
};

ParticipantBrokerIdsResponse::ParticipantBrokerIdsResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
  participant_broker_numbers_(arena) {
  SharedCtor();
  // @@protoc_insertion_point(arena_constructor:longbridge.quote.v1.ParticipantBrokerIdsResponse)
}
ParticipantBrokerIdsResponse::ParticipantBrokerIdsResponse(const ParticipantBrokerIdsResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      participant_broker_numbers_(from.participant_broker_numbers_) {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:longbridge.quote.v1.ParticipantBrokerIdsResponse)
}

inline void ParticipantBrokerIdsResponse::SharedCtor() {
}

ParticipantBrokerIdsResponse::~ParticipantBrokerIdsResponse() {
  // @@protoc_insertion_point(destructor:longbridge.quote.v1.ParticipantBrokerIdsResponse)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void ParticipantBrokerIdsResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
}

void ParticipantBrokerIdsResponse::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void ParticipantBrokerIdsResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridge.quote.v1.ParticipantBrokerIdsResponse)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  participant_broker_numbers_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* ParticipantBrokerIdsResponse::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // repeated .longbridge.quote.v1.ParticipantInfo participant_broker_numbers = 1 [json_name = "participantBrokerNumbers"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_participant_broker_numbers(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* ParticipantBrokerIdsResponse::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridge.quote.v1.ParticipantBrokerIdsResponse)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated .longbridge.quote.v1.ParticipantInfo participant_broker_numbers = 1 [json_name = "participantBrokerNumbers"];
  for (unsigned i = 0,
      n = static_cast<unsigned>(this->_internal_participant_broker_numbers_size()); i < n; i++) {
    const auto& repfield = this->_internal_participant_broker_numbers(i);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(1, repfield, repfield.GetCachedSize(), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridge.quote.v1.ParticipantBrokerIdsResponse)
  return target;
}

size_t ParticipantBrokerIdsResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridge.quote.v1.ParticipantBrokerIdsResponse)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated .longbridge.quote.v1.ParticipantInfo participant_broker_numbers = 1 [json_name = "participantBrokerNumbers"];
  total_size += 1UL * this->_internal_participant_broker_numbers_size();
  for (const auto& msg : this->participant_broker_numbers_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData ParticipantBrokerIdsResponse::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    ParticipantBrokerIdsResponse::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*ParticipantBrokerIdsResponse::GetClassData() const { return &_class_data_; }

void ParticipantBrokerIdsResponse::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<ParticipantBrokerIdsResponse *>(to)->MergeFrom(
      static_cast<const ParticipantBrokerIdsResponse &>(from));
}


void ParticipantBrokerIdsResponse::MergeFrom(const ParticipantBrokerIdsResponse& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:longbridge.quote.v1.ParticipantBrokerIdsResponse)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  participant_broker_numbers_.MergeFrom(from.participant_broker_numbers_);
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void ParticipantBrokerIdsResponse::CopyFrom(const ParticipantBrokerIdsResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridge.quote.v1.ParticipantBrokerIdsResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ParticipantBrokerIdsResponse::IsInitialized() const {
  return true;
}

void ParticipantBrokerIdsResponse::InternalSwap(ParticipantBrokerIdsResponse* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  participant_broker_numbers_.InternalSwap(&other->participant_broker_numbers_);
}

::PROTOBUF_NAMESPACE_ID::Metadata ParticipantBrokerIdsResponse::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[17]);
}

// ===================================================================

class ParticipantInfo::_Internal {
 public:
};

ParticipantInfo::ParticipantInfo(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
  broker_ids_(arena) {
  SharedCtor();
  // @@protoc_insertion_point(arena_constructor:longbridge.quote.v1.ParticipantInfo)
}
ParticipantInfo::ParticipantInfo(const ParticipantInfo& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      broker_ids_(from.broker_ids_) {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  participant_name_cn_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    participant_name_cn_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_participant_name_cn().empty()) {
    participant_name_cn_.Set(from._internal_participant_name_cn(), 
      GetArenaForAllocation());
  }
  participant_name_en_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    participant_name_en_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_participant_name_en().empty()) {
    participant_name_en_.Set(from._internal_participant_name_en(), 
      GetArenaForAllocation());
  }
  participant_name_hk_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    participant_name_hk_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_participant_name_hk().empty()) {
    participant_name_hk_.Set(from._internal_participant_name_hk(), 
      GetArenaForAllocation());
  }
  // @@protoc_insertion_point(copy_constructor:longbridge.quote.v1.ParticipantInfo)
}

inline void ParticipantInfo::SharedCtor() {
participant_name_cn_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  participant_name_cn_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
participant_name_en_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  participant_name_en_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
participant_name_hk_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  participant_name_hk_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
}

ParticipantInfo::~ParticipantInfo() {
  // @@protoc_insertion_point(destructor:longbridge.quote.v1.ParticipantInfo)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void ParticipantInfo::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  participant_name_cn_.Destroy();
  participant_name_en_.Destroy();
  participant_name_hk_.Destroy();
}

void ParticipantInfo::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void ParticipantInfo::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridge.quote.v1.ParticipantInfo)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  broker_ids_.Clear();
  participant_name_cn_.ClearToEmpty();
  participant_name_en_.ClearToEmpty();
  participant_name_hk_.ClearToEmpty();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* ParticipantInfo::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // repeated int32 broker_ids = 1 [json_name = "brokerIds"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_broker_ids(), ptr, ctx);
          CHK_(ptr);
        } else if (static_cast<uint8_t>(tag) == 8) {
          _internal_add_broker_ids(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string participant_name_cn = 2 [json_name = "participantNameCn"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
          auto str = _internal_mutable_participant_name_cn();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.ParticipantInfo.participant_name_cn"));
        } else
          goto handle_unusual;
        continue;
      // string participant_name_en = 3 [json_name = "participantNameEn"];
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 26)) {
          auto str = _internal_mutable_participant_name_en();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.ParticipantInfo.participant_name_en"));
        } else
          goto handle_unusual;
        continue;
      // string participant_name_hk = 4 [json_name = "participantNameHk"];
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 34)) {
          auto str = _internal_mutable_participant_name_hk();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.ParticipantInfo.participant_name_hk"));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* ParticipantInfo::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridge.quote.v1.ParticipantInfo)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated int32 broker_ids = 1 [json_name = "brokerIds"];
  {
    int byte_size = _broker_ids_cached_byte_size_.load(std::memory_order_relaxed);
    if (byte_size > 0) {
      target = stream->WriteInt32Packed(
          1, _internal_broker_ids(), byte_size, target);
    }
  }

  // string participant_name_cn = 2 [json_name = "participantNameCn"];
  if (!this->_internal_participant_name_cn().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_participant_name_cn().data(), static_cast<int>(this->_internal_participant_name_cn().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.ParticipantInfo.participant_name_cn");
    target = stream->WriteStringMaybeAliased(
        2, this->_internal_participant_name_cn(), target);
  }

  // string participant_name_en = 3 [json_name = "participantNameEn"];
  if (!this->_internal_participant_name_en().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_participant_name_en().data(), static_cast<int>(this->_internal_participant_name_en().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.ParticipantInfo.participant_name_en");
    target = stream->WriteStringMaybeAliased(
        3, this->_internal_participant_name_en(), target);
  }

  // string participant_name_hk = 4 [json_name = "participantNameHk"];
  if (!this->_internal_participant_name_hk().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_participant_name_hk().data(), static_cast<int>(this->_internal_participant_name_hk().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.ParticipantInfo.participant_name_hk");
    target = stream->WriteStringMaybeAliased(
        4, this->_internal_participant_name_hk(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridge.quote.v1.ParticipantInfo)
  return target;
}

size_t ParticipantInfo::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridge.quote.v1.ParticipantInfo)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated int32 broker_ids = 1 [json_name = "brokerIds"];
  {
    size_t data_size = ::_pbi::WireFormatLite::
      Int32Size(this->broker_ids_);
    if (data_size > 0) {
      total_size += 1 +
        ::_pbi::WireFormatLite::Int32Size(static_cast<int32_t>(data_size));
    }
    int cached_size = ::_pbi::ToCachedSize(data_size);
    _broker_ids_cached_byte_size_.store(cached_size,
                                    std::memory_order_relaxed);
    total_size += data_size;
  }

  // string participant_name_cn = 2 [json_name = "participantNameCn"];
  if (!this->_internal_participant_name_cn().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_participant_name_cn());
  }

  // string participant_name_en = 3 [json_name = "participantNameEn"];
  if (!this->_internal_participant_name_en().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_participant_name_en());
  }

  // string participant_name_hk = 4 [json_name = "participantNameHk"];
  if (!this->_internal_participant_name_hk().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_participant_name_hk());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData ParticipantInfo::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    ParticipantInfo::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*ParticipantInfo::GetClassData() const { return &_class_data_; }

void ParticipantInfo::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<ParticipantInfo *>(to)->MergeFrom(
      static_cast<const ParticipantInfo &>(from));
}


void ParticipantInfo::MergeFrom(const ParticipantInfo& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:longbridge.quote.v1.ParticipantInfo)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  broker_ids_.MergeFrom(from.broker_ids_);
  if (!from._internal_participant_name_cn().empty()) {
    _internal_set_participant_name_cn(from._internal_participant_name_cn());
  }
  if (!from._internal_participant_name_en().empty()) {
    _internal_set_participant_name_en(from._internal_participant_name_en());
  }
  if (!from._internal_participant_name_hk().empty()) {
    _internal_set_participant_name_hk(from._internal_participant_name_hk());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void ParticipantInfo::CopyFrom(const ParticipantInfo& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridge.quote.v1.ParticipantInfo)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ParticipantInfo::IsInitialized() const {
  return true;
}

void ParticipantInfo::InternalSwap(ParticipantInfo* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  broker_ids_.InternalSwap(&other->broker_ids_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &participant_name_cn_, lhs_arena,
      &other->participant_name_cn_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &participant_name_en_, lhs_arena,
      &other->participant_name_en_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &participant_name_hk_, lhs_arena,
      &other->participant_name_hk_, rhs_arena
  );
}

::PROTOBUF_NAMESPACE_ID::Metadata ParticipantInfo::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[18]);
}

// ===================================================================

class SecurityTradeRequest::_Internal {
 public:
};

SecurityTradeRequest::SecurityTradeRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor();
  // @@protoc_insertion_point(arena_constructor:longbridge.quote.v1.SecurityTradeRequest)
}
SecurityTradeRequest::SecurityTradeRequest(const SecurityTradeRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  symbol_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    symbol_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_symbol().empty()) {
    symbol_.Set(from._internal_symbol(), 
      GetArenaForAllocation());
  }
  count_ = from.count_;
  // @@protoc_insertion_point(copy_constructor:longbridge.quote.v1.SecurityTradeRequest)
}

inline void SecurityTradeRequest::SharedCtor() {
symbol_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  symbol_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
count_ = 0;
}

SecurityTradeRequest::~SecurityTradeRequest() {
  // @@protoc_insertion_point(destructor:longbridge.quote.v1.SecurityTradeRequest)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void SecurityTradeRequest::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  symbol_.Destroy();
}

void SecurityTradeRequest::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void SecurityTradeRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridge.quote.v1.SecurityTradeRequest)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  symbol_.ClearToEmpty();
  count_ = 0;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* SecurityTradeRequest::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string symbol = 1 [json_name = "symbol"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_symbol();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.SecurityTradeRequest.symbol"));
        } else
          goto handle_unusual;
        continue;
      // int32 count = 2 [json_name = "count"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) {
          count_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* SecurityTradeRequest::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridge.quote.v1.SecurityTradeRequest)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_symbol().data(), static_cast<int>(this->_internal_symbol().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.SecurityTradeRequest.symbol");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_symbol(), target);
  }

  // int32 count = 2 [json_name = "count"];
  if (this->_internal_count() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt32ToArray(2, this->_internal_count(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridge.quote.v1.SecurityTradeRequest)
  return target;
}

size_t SecurityTradeRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridge.quote.v1.SecurityTradeRequest)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_symbol());
  }

  // int32 count = 2 [json_name = "count"];
  if (this->_internal_count() != 0) {
    total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(this->_internal_count());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData SecurityTradeRequest::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    SecurityTradeRequest::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*SecurityTradeRequest::GetClassData() const { return &_class_data_; }

void SecurityTradeRequest::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<SecurityTradeRequest *>(to)->MergeFrom(
      static_cast<const SecurityTradeRequest &>(from));
}


void SecurityTradeRequest::MergeFrom(const SecurityTradeRequest& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:longbridge.quote.v1.SecurityTradeRequest)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (!from._internal_symbol().empty()) {
    _internal_set_symbol(from._internal_symbol());
  }
  if (from._internal_count() != 0) {
    _internal_set_count(from._internal_count());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void SecurityTradeRequest::CopyFrom(const SecurityTradeRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridge.quote.v1.SecurityTradeRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool SecurityTradeRequest::IsInitialized() const {
  return true;
}

void SecurityTradeRequest::InternalSwap(SecurityTradeRequest* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &symbol_, lhs_arena,
      &other->symbol_, rhs_arena
  );
  swap(count_, other->count_);
}

::PROTOBUF_NAMESPACE_ID::Metadata SecurityTradeRequest::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[19]);
}

// ===================================================================

class SecurityTradeResponse::_Internal {
 public:
};

SecurityTradeResponse::SecurityTradeResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
  trades_(arena) {
  SharedCtor();
  // @@protoc_insertion_point(arena_constructor:longbridge.quote.v1.SecurityTradeResponse)
}
SecurityTradeResponse::SecurityTradeResponse(const SecurityTradeResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      trades_(from.trades_) {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  symbol_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    symbol_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_symbol().empty()) {
    symbol_.Set(from._internal_symbol(), 
      GetArenaForAllocation());
  }
  // @@protoc_insertion_point(copy_constructor:longbridge.quote.v1.SecurityTradeResponse)
}

inline void SecurityTradeResponse::SharedCtor() {
symbol_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  symbol_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
}

SecurityTradeResponse::~SecurityTradeResponse() {
  // @@protoc_insertion_point(destructor:longbridge.quote.v1.SecurityTradeResponse)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void SecurityTradeResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  symbol_.Destroy();
}

void SecurityTradeResponse::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void SecurityTradeResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridge.quote.v1.SecurityTradeResponse)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  trades_.Clear();
  symbol_.ClearToEmpty();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* SecurityTradeResponse::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string symbol = 1 [json_name = "symbol"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_symbol();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.SecurityTradeResponse.symbol"));
        } else
          goto handle_unusual;
        continue;
      // repeated .longbridge.quote.v1.Trade trades = 2 [json_name = "trades"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_trades(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<18>(ptr));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* SecurityTradeResponse::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridge.quote.v1.SecurityTradeResponse)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_symbol().data(), static_cast<int>(this->_internal_symbol().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.SecurityTradeResponse.symbol");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_symbol(), target);
  }

  // repeated .longbridge.quote.v1.Trade trades = 2 [json_name = "trades"];
  for (unsigned i = 0,
      n = static_cast<unsigned>(this->_internal_trades_size()); i < n; i++) {
    const auto& repfield = this->_internal_trades(i);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(2, repfield, repfield.GetCachedSize(), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridge.quote.v1.SecurityTradeResponse)
  return target;
}

size_t SecurityTradeResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridge.quote.v1.SecurityTradeResponse)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated .longbridge.quote.v1.Trade trades = 2 [json_name = "trades"];
  total_size += 1UL * this->_internal_trades_size();
  for (const auto& msg : this->trades_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_symbol());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData SecurityTradeResponse::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    SecurityTradeResponse::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*SecurityTradeResponse::GetClassData() const { return &_class_data_; }

void SecurityTradeResponse::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<SecurityTradeResponse *>(to)->MergeFrom(
      static_cast<const SecurityTradeResponse &>(from));
}


void SecurityTradeResponse::MergeFrom(const SecurityTradeResponse& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:longbridge.quote.v1.SecurityTradeResponse)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  trades_.MergeFrom(from.trades_);
  if (!from._internal_symbol().empty()) {
    _internal_set_symbol(from._internal_symbol());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void SecurityTradeResponse::CopyFrom(const SecurityTradeResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridge.quote.v1.SecurityTradeResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool SecurityTradeResponse::IsInitialized() const {
  return true;
}

void SecurityTradeResponse::InternalSwap(SecurityTradeResponse* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  trades_.InternalSwap(&other->trades_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &symbol_, lhs_arena,
      &other->symbol_, rhs_arena
  );
}

::PROTOBUF_NAMESPACE_ID::Metadata SecurityTradeResponse::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[20]);
}

// ===================================================================

class Trade::_Internal {
 public:
};

Trade::Trade(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor();
  // @@protoc_insertion_point(arena_constructor:longbridge.quote.v1.Trade)
}
Trade::Trade(const Trade& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  price_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    price_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_price().empty()) {
    price_.Set(from._internal_price(), 
      GetArenaForAllocation());
  }
  trade_type_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    trade_type_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_trade_type().empty()) {
    trade_type_.Set(from._internal_trade_type(), 
      GetArenaForAllocation());
  }
  ::memcpy(&volume_, &from.volume_,
    static_cast<size_t>(reinterpret_cast<char*>(&trade_session_) -
    reinterpret_cast<char*>(&volume_)) + sizeof(trade_session_));
  // @@protoc_insertion_point(copy_constructor:longbridge.quote.v1.Trade)
}

inline void Trade::SharedCtor() {
price_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  price_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
trade_type_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  trade_type_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
    reinterpret_cast<char*>(&volume_) - reinterpret_cast<char*>(this)),
    0, static_cast<size_t>(reinterpret_cast<char*>(&trade_session_) -
    reinterpret_cast<char*>(&volume_)) + sizeof(trade_session_));
}

Trade::~Trade() {
  // @@protoc_insertion_point(destructor:longbridge.quote.v1.Trade)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void Trade::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  price_.Destroy();
  trade_type_.Destroy();
}

void Trade::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void Trade::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridge.quote.v1.Trade)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  price_.ClearToEmpty();
  trade_type_.ClearToEmpty();
  ::memset(&volume_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&trade_session_) -
      reinterpret_cast<char*>(&volume_)) + sizeof(trade_session_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* Trade::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string price = 1 [json_name = "price"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_price();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.Trade.price"));
        } else
          goto handle_unusual;
        continue;
      // int64 volume = 2 [json_name = "volume"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) {
          volume_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int64 timestamp = 3 [json_name = "timestamp"];
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 24)) {
          timestamp_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string trade_type = 4 [json_name = "tradeType"];
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 34)) {
          auto str = _internal_mutable_trade_type();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.Trade.trade_type"));
        } else
          goto handle_unusual;
        continue;
      // int32 direction = 5 [json_name = "direction"];
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 40)) {
          direction_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // .longbridge.quote.v1.TradeSession trade_session = 6 [json_name = "tradeSession"];
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 48)) {
          uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          _internal_set_trade_session(static_cast<::longbridge::quote::v1::TradeSession>(val));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* Trade::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridge.quote.v1.Trade)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string price = 1 [json_name = "price"];
  if (!this->_internal_price().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_price().data(), static_cast<int>(this->_internal_price().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.Trade.price");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_price(), target);
  }

  // int64 volume = 2 [json_name = "volume"];
  if (this->_internal_volume() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt64ToArray(2, this->_internal_volume(), target);
  }

  // int64 timestamp = 3 [json_name = "timestamp"];
  if (this->_internal_timestamp() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt64ToArray(3, this->_internal_timestamp(), target);
  }

  // string trade_type = 4 [json_name = "tradeType"];
  if (!this->_internal_trade_type().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_trade_type().data(), static_cast<int>(this->_internal_trade_type().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.Trade.trade_type");
    target = stream->WriteStringMaybeAliased(
        4, this->_internal_trade_type(), target);
  }

  // int32 direction = 5 [json_name = "direction"];
  if (this->_internal_direction() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt32ToArray(5, this->_internal_direction(), target);
  }

  // .longbridge.quote.v1.TradeSession trade_session = 6 [json_name = "tradeSession"];
  if (this->_internal_trade_session() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
      6, this->_internal_trade_session(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridge.quote.v1.Trade)
  return target;
}

size_t Trade::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridge.quote.v1.Trade)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string price = 1 [json_name = "price"];
  if (!this->_internal_price().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_price());
  }

  // string trade_type = 4 [json_name = "tradeType"];
  if (!this->_internal_trade_type().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_trade_type());
  }

  // int64 volume = 2 [json_name = "volume"];
  if (this->_internal_volume() != 0) {
    total_size += ::_pbi::WireFormatLite::Int64SizePlusOne(this->_internal_volume());
  }

  // int64 timestamp = 3 [json_name = "timestamp"];
  if (this->_internal_timestamp() != 0) {
    total_size += ::_pbi::WireFormatLite::Int64SizePlusOne(this->_internal_timestamp());
  }

  // int32 direction = 5 [json_name = "direction"];
  if (this->_internal_direction() != 0) {
    total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(this->_internal_direction());
  }

  // .longbridge.quote.v1.TradeSession trade_session = 6 [json_name = "tradeSession"];
  if (this->_internal_trade_session() != 0) {
    total_size += 1 +
      ::_pbi::WireFormatLite::EnumSize(this->_internal_trade_session());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData Trade::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    Trade::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*Trade::GetClassData() const { return &_class_data_; }

void Trade::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<Trade *>(to)->MergeFrom(
      static_cast<const Trade &>(from));
}


void Trade::MergeFrom(const Trade& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:longbridge.quote.v1.Trade)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (!from._internal_price().empty()) {
    _internal_set_price(from._internal_price());
  }
  if (!from._internal_trade_type().empty()) {
    _internal_set_trade_type(from._internal_trade_type());
  }
  if (from._internal_volume() != 0) {
    _internal_set_volume(from._internal_volume());
  }
  if (from._internal_timestamp() != 0) {
    _internal_set_timestamp(from._internal_timestamp());
  }
  if (from._internal_direction() != 0) {
    _internal_set_direction(from._internal_direction());
  }
  if (from._internal_trade_session() != 0) {
    _internal_set_trade_session(from._internal_trade_session());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void Trade::CopyFrom(const Trade& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridge.quote.v1.Trade)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool Trade::IsInitialized() const {
  return true;
}

void Trade::InternalSwap(Trade* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &price_, lhs_arena,
      &other->price_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &trade_type_, lhs_arena,
      &other->trade_type_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(Trade, trade_session_)
      + sizeof(Trade::trade_session_)
      - PROTOBUF_FIELD_OFFSET(Trade, volume_)>(
          reinterpret_cast<char*>(&volume_),
          reinterpret_cast<char*>(&other->volume_));
}

::PROTOBUF_NAMESPACE_ID::Metadata Trade::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[21]);
}

// ===================================================================

class SecurityIntradayRequest::_Internal {
 public:
};

SecurityIntradayRequest::SecurityIntradayRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor();
  // @@protoc_insertion_point(arena_constructor:longbridge.quote.v1.SecurityIntradayRequest)
}
SecurityIntradayRequest::SecurityIntradayRequest(const SecurityIntradayRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  symbol_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    symbol_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_symbol().empty()) {
    symbol_.Set(from._internal_symbol(), 
      GetArenaForAllocation());
  }
  trade_session_ = from.trade_session_;
  // @@protoc_insertion_point(copy_constructor:longbridge.quote.v1.SecurityIntradayRequest)
}

inline void SecurityIntradayRequest::SharedCtor() {
symbol_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  symbol_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
trade_session_ = 0;
}

SecurityIntradayRequest::~SecurityIntradayRequest() {
  // @@protoc_insertion_point(destructor:longbridge.quote.v1.SecurityIntradayRequest)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void SecurityIntradayRequest::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  symbol_.Destroy();
}

void SecurityIntradayRequest::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void SecurityIntradayRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridge.quote.v1.SecurityIntradayRequest)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  symbol_.ClearToEmpty();
  trade_session_ = 0;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* SecurityIntradayRequest::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string symbol = 1 [json_name = "symbol"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_symbol();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.SecurityIntradayRequest.symbol"));
        } else
          goto handle_unusual;
        continue;
      // int32 trade_session = 2 [json_name = "tradeSession"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) {
          trade_session_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* SecurityIntradayRequest::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridge.quote.v1.SecurityIntradayRequest)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_symbol().data(), static_cast<int>(this->_internal_symbol().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.SecurityIntradayRequest.symbol");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_symbol(), target);
  }

  // int32 trade_session = 2 [json_name = "tradeSession"];
  if (this->_internal_trade_session() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt32ToArray(2, this->_internal_trade_session(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridge.quote.v1.SecurityIntradayRequest)
  return target;
}

size_t SecurityIntradayRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridge.quote.v1.SecurityIntradayRequest)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_symbol());
  }

  // int32 trade_session = 2 [json_name = "tradeSession"];
  if (this->_internal_trade_session() != 0) {
    total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(this->_internal_trade_session());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData SecurityIntradayRequest::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    SecurityIntradayRequest::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*SecurityIntradayRequest::GetClassData() const { return &_class_data_; }

void SecurityIntradayRequest::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<SecurityIntradayRequest *>(to)->MergeFrom(
      static_cast<const SecurityIntradayRequest &>(from));
}


void SecurityIntradayRequest::MergeFrom(const SecurityIntradayRequest& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:longbridge.quote.v1.SecurityIntradayRequest)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (!from._internal_symbol().empty()) {
    _internal_set_symbol(from._internal_symbol());
  }
  if (from._internal_trade_session() != 0) {
    _internal_set_trade_session(from._internal_trade_session());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void SecurityIntradayRequest::CopyFrom(const SecurityIntradayRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridge.quote.v1.SecurityIntradayRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool SecurityIntradayRequest::IsInitialized() const {
  return true;
}

void SecurityIntradayRequest::InternalSwap(SecurityIntradayRequest* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &symbol_, lhs_arena,
      &other->symbol_, rhs_arena
  );
  swap(trade_session_, other->trade_session_);
}

::PROTOBUF_NAMESPACE_ID::Metadata SecurityIntradayRequest::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[22]);
}

// ===================================================================

class SecurityIntradayResponse::_Internal {
 public:
};

SecurityIntradayResponse::SecurityIntradayResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
  lines_(arena) {
  SharedCtor();
  // @@protoc_insertion_point(arena_constructor:longbridge.quote.v1.SecurityIntradayResponse)
}
SecurityIntradayResponse::SecurityIntradayResponse(const SecurityIntradayResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      lines_(from.lines_) {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  symbol_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    symbol_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_symbol().empty()) {
    symbol_.Set(from._internal_symbol(), 
      GetArenaForAllocation());
  }
  // @@protoc_insertion_point(copy_constructor:longbridge.quote.v1.SecurityIntradayResponse)
}

inline void SecurityIntradayResponse::SharedCtor() {
symbol_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  symbol_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
}

SecurityIntradayResponse::~SecurityIntradayResponse() {
  // @@protoc_insertion_point(destructor:longbridge.quote.v1.SecurityIntradayResponse)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void SecurityIntradayResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  symbol_.Destroy();
}

void SecurityIntradayResponse::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void SecurityIntradayResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridge.quote.v1.SecurityIntradayResponse)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  lines_.Clear();
  symbol_.ClearToEmpty();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* SecurityIntradayResponse::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string symbol = 1 [json_name = "symbol"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_symbol();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.SecurityIntradayResponse.symbol"));
        } else
          goto handle_unusual;
        continue;
      // repeated .longbridge.quote.v1.Line lines = 2 [json_name = "lines"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_lines(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<18>(ptr));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* SecurityIntradayResponse::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridge.quote.v1.SecurityIntradayResponse)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_symbol().data(), static_cast<int>(this->_internal_symbol().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.SecurityIntradayResponse.symbol");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_symbol(), target);
  }

  // repeated .longbridge.quote.v1.Line lines = 2 [json_name = "lines"];
  for (unsigned i = 0,
      n = static_cast<unsigned>(this->_internal_lines_size()); i < n; i++) {
    const auto& repfield = this->_internal_lines(i);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(2, repfield, repfield.GetCachedSize(), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridge.quote.v1.SecurityIntradayResponse)
  return target;
}

size_t SecurityIntradayResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridge.quote.v1.SecurityIntradayResponse)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated .longbridge.quote.v1.Line lines = 2 [json_name = "lines"];
  total_size += 1UL * this->_internal_lines_size();
  for (const auto& msg : this->lines_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_symbol());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData SecurityIntradayResponse::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    SecurityIntradayResponse::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*SecurityIntradayResponse::GetClassData() const { return &_class_data_; }

void SecurityIntradayResponse::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<SecurityIntradayResponse *>(to)->MergeFrom(
      static_cast<const SecurityIntradayResponse &>(from));
}


void SecurityIntradayResponse::MergeFrom(const SecurityIntradayResponse& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:longbridge.quote.v1.SecurityIntradayResponse)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  lines_.MergeFrom(from.lines_);
  if (!from._internal_symbol().empty()) {
    _internal_set_symbol(from._internal_symbol());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void SecurityIntradayResponse::CopyFrom(const SecurityIntradayResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridge.quote.v1.SecurityIntradayResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool SecurityIntradayResponse::IsInitialized() const {
  return true;
}

void SecurityIntradayResponse::InternalSwap(SecurityIntradayResponse* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  lines_.InternalSwap(&other->lines_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &symbol_, lhs_arena,
      &other->symbol_, rhs_arena
  );
}

::PROTOBUF_NAMESPACE_ID::Metadata SecurityIntradayResponse::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[23]);
}

// ===================================================================

class Line::_Internal {
 public:
};

Line::Line(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor();
  // @@protoc_insertion_point(arena_constructor:longbridge.quote.v1.Line)
}
Line::Line(const Line& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  price_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    price_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_price().empty()) {
    price_.Set(from._internal_price(), 
      GetArenaForAllocation());
  }
  turnover_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    turnover_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_turnover().empty()) {
    turnover_.Set(from._internal_turnover(), 
      GetArenaForAllocation());
  }
  avg_price_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    avg_price_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_avg_price().empty()) {
    avg_price_.Set(from._internal_avg_price(), 
      GetArenaForAllocation());
  }
  ::memcpy(&timestamp_, &from.timestamp_,
    static_cast<size_t>(reinterpret_cast<char*>(&volume_) -
    reinterpret_cast<char*>(&timestamp_)) + sizeof(volume_));
  // @@protoc_insertion_point(copy_constructor:longbridge.quote.v1.Line)
}

inline void Line::SharedCtor() {
price_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  price_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
turnover_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  turnover_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
avg_price_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  avg_price_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
    reinterpret_cast<char*>(&timestamp_) - reinterpret_cast<char*>(this)),
    0, static_cast<size_t>(reinterpret_cast<char*>(&volume_) -
    reinterpret_cast<char*>(&timestamp_)) + sizeof(volume_));
}

Line::~Line() {
  // @@protoc_insertion_point(destructor:longbridge.quote.v1.Line)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void Line::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  price_.Destroy();
  turnover_.Destroy();
  avg_price_.Destroy();
}

void Line::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void Line::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridge.quote.v1.Line)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  price_.ClearToEmpty();
  turnover_.ClearToEmpty();
  avg_price_.ClearToEmpty();
  ::memset(&timestamp_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&volume_) -
      reinterpret_cast<char*>(&timestamp_)) + sizeof(volume_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* Line::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string price = 1 [json_name = "price"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_price();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.Line.price"));
        } else
          goto handle_unusual;
        continue;
      // int64 timestamp = 2 [json_name = "timestamp"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) {
          timestamp_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int64 volume = 3 [json_name = "volume"];
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 24)) {
          volume_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string turnover = 4 [json_name = "turnover"];
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 34)) {
          auto str = _internal_mutable_turnover();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.Line.turnover"));
        } else
          goto handle_unusual;
        continue;
      // string avg_price = 5 [json_name = "avgPrice"];
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 42)) {
          auto str = _internal_mutable_avg_price();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.Line.avg_price"));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* Line::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridge.quote.v1.Line)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string price = 1 [json_name = "price"];
  if (!this->_internal_price().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_price().data(), static_cast<int>(this->_internal_price().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.Line.price");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_price(), target);
  }

  // int64 timestamp = 2 [json_name = "timestamp"];
  if (this->_internal_timestamp() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt64ToArray(2, this->_internal_timestamp(), target);
  }

  // int64 volume = 3 [json_name = "volume"];
  if (this->_internal_volume() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt64ToArray(3, this->_internal_volume(), target);
  }

  // string turnover = 4 [json_name = "turnover"];
  if (!this->_internal_turnover().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_turnover().data(), static_cast<int>(this->_internal_turnover().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.Line.turnover");
    target = stream->WriteStringMaybeAliased(
        4, this->_internal_turnover(), target);
  }

  // string avg_price = 5 [json_name = "avgPrice"];
  if (!this->_internal_avg_price().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_avg_price().data(), static_cast<int>(this->_internal_avg_price().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.Line.avg_price");
    target = stream->WriteStringMaybeAliased(
        5, this->_internal_avg_price(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridge.quote.v1.Line)
  return target;
}

size_t Line::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridge.quote.v1.Line)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string price = 1 [json_name = "price"];
  if (!this->_internal_price().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_price());
  }

  // string turnover = 4 [json_name = "turnover"];
  if (!this->_internal_turnover().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_turnover());
  }

  // string avg_price = 5 [json_name = "avgPrice"];
  if (!this->_internal_avg_price().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_avg_price());
  }

  // int64 timestamp = 2 [json_name = "timestamp"];
  if (this->_internal_timestamp() != 0) {
    total_size += ::_pbi::WireFormatLite::Int64SizePlusOne(this->_internal_timestamp());
  }

  // int64 volume = 3 [json_name = "volume"];
  if (this->_internal_volume() != 0) {
    total_size += ::_pbi::WireFormatLite::Int64SizePlusOne(this->_internal_volume());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData Line::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    Line::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*Line::GetClassData() const { return &_class_data_; }

void Line::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<Line *>(to)->MergeFrom(
      static_cast<const Line &>(from));
}


void Line::MergeFrom(const Line& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:longbridge.quote.v1.Line)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (!from._internal_price().empty()) {
    _internal_set_price(from._internal_price());
  }
  if (!from._internal_turnover().empty()) {
    _internal_set_turnover(from._internal_turnover());
  }
  if (!from._internal_avg_price().empty()) {
    _internal_set_avg_price(from._internal_avg_price());
  }
  if (from._internal_timestamp() != 0) {
    _internal_set_timestamp(from._internal_timestamp());
  }
  if (from._internal_volume() != 0) {
    _internal_set_volume(from._internal_volume());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void Line::CopyFrom(const Line& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridge.quote.v1.Line)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool Line::IsInitialized() const {
  return true;
}

void Line::InternalSwap(Line* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &price_, lhs_arena,
      &other->price_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &turnover_, lhs_arena,
      &other->turnover_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &avg_price_, lhs_arena,
      &other->avg_price_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(Line, volume_)
      + sizeof(Line::volume_)
      - PROTOBUF_FIELD_OFFSET(Line, timestamp_)>(
          reinterpret_cast<char*>(&timestamp_),
          reinterpret_cast<char*>(&other->timestamp_));
}

::PROTOBUF_NAMESPACE_ID::Metadata Line::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[24]);
}

// ===================================================================

class SecurityCandlestickRequest::_Internal {
 public:
};

SecurityCandlestickRequest::SecurityCandlestickRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor();
  // @@protoc_insertion_point(arena_constructor:longbridge.quote.v1.SecurityCandlestickRequest)
}
SecurityCandlestickRequest::SecurityCandlestickRequest(const SecurityCandlestickRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  symbol_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    symbol_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_symbol().empty()) {
    symbol_.Set(from._internal_symbol(), 
      GetArenaForAllocation());
  }
  ::memcpy(&period_, &from.period_,
    static_cast<size_t>(reinterpret_cast<char*>(&trade_session_) -
    reinterpret_cast<char*>(&period_)) + sizeof(trade_session_));
  // @@protoc_insertion_point(copy_constructor:longbridge.quote.v1.SecurityCandlestickRequest)
}

inline void SecurityCandlestickRequest::SharedCtor() {
symbol_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  symbol_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
    reinterpret_cast<char*>(&period_) - reinterpret_cast<char*>(this)),
    0, static_cast<size_t>(reinterpret_cast<char*>(&trade_session_) -
    reinterpret_cast<char*>(&period_)) + sizeof(trade_session_));
}

SecurityCandlestickRequest::~SecurityCandlestickRequest() {
  // @@protoc_insertion_point(destructor:longbridge.quote.v1.SecurityCandlestickRequest)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void SecurityCandlestickRequest::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  symbol_.Destroy();
}

void SecurityCandlestickRequest::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void SecurityCandlestickRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridge.quote.v1.SecurityCandlestickRequest)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  symbol_.ClearToEmpty();
  ::memset(&period_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&trade_session_) -
      reinterpret_cast<char*>(&period_)) + sizeof(trade_session_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* SecurityCandlestickRequest::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string symbol = 1 [json_name = "symbol"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_symbol();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.SecurityCandlestickRequest.symbol"));
        } else
          goto handle_unusual;
        continue;
      // .longbridge.quote.v1.Period period = 2 [json_name = "period"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) {
          uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          _internal_set_period(static_cast<::longbridge::quote::v1::Period>(val));
        } else
          goto handle_unusual;
        continue;
      // int32 count = 3 [json_name = "count"];
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 24)) {
          count_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // .longbridge.quote.v1.AdjustType adjust_type = 4 [json_name = "adjustType"];
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 32)) {
          uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          _internal_set_adjust_type(static_cast<::longbridge::quote::v1::AdjustType>(val));
        } else
          goto handle_unusual;
        continue;
      // int32 trade_session = 5 [json_name = "tradeSession"];
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 40)) {
          trade_session_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* SecurityCandlestickRequest::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridge.quote.v1.SecurityCandlestickRequest)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_symbol().data(), static_cast<int>(this->_internal_symbol().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.SecurityCandlestickRequest.symbol");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_symbol(), target);
  }

  // .longbridge.quote.v1.Period period = 2 [json_name = "period"];
  if (this->_internal_period() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
      2, this->_internal_period(), target);
  }

  // int32 count = 3 [json_name = "count"];
  if (this->_internal_count() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt32ToArray(3, this->_internal_count(), target);
  }

  // .longbridge.quote.v1.AdjustType adjust_type = 4 [json_name = "adjustType"];
  if (this->_internal_adjust_type() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
      4, this->_internal_adjust_type(), target);
  }

  // int32 trade_session = 5 [json_name = "tradeSession"];
  if (this->_internal_trade_session() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt32ToArray(5, this->_internal_trade_session(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridge.quote.v1.SecurityCandlestickRequest)
  return target;
}

size_t SecurityCandlestickRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridge.quote.v1.SecurityCandlestickRequest)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_symbol());
  }

  // .longbridge.quote.v1.Period period = 2 [json_name = "period"];
  if (this->_internal_period() != 0) {
    total_size += 1 +
      ::_pbi::WireFormatLite::EnumSize(this->_internal_period());
  }

  // int32 count = 3 [json_name = "count"];
  if (this->_internal_count() != 0) {
    total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(this->_internal_count());
  }

  // .longbridge.quote.v1.AdjustType adjust_type = 4 [json_name = "adjustType"];
  if (this->_internal_adjust_type() != 0) {
    total_size += 1 +
      ::_pbi::WireFormatLite::EnumSize(this->_internal_adjust_type());
  }

  // int32 trade_session = 5 [json_name = "tradeSession"];
  if (this->_internal_trade_session() != 0) {
    total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(this->_internal_trade_session());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData SecurityCandlestickRequest::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    SecurityCandlestickRequest::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*SecurityCandlestickRequest::GetClassData() const { return &_class_data_; }

void SecurityCandlestickRequest::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<SecurityCandlestickRequest *>(to)->MergeFrom(
      static_cast<const SecurityCandlestickRequest &>(from));
}


void SecurityCandlestickRequest::MergeFrom(const SecurityCandlestickRequest& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:longbridge.quote.v1.SecurityCandlestickRequest)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (!from._internal_symbol().empty()) {
    _internal_set_symbol(from._internal_symbol());
  }
  if (from._internal_period() != 0) {
    _internal_set_period(from._internal_period());
  }
  if (from._internal_count() != 0) {
    _internal_set_count(from._internal_count());
  }
  if (from._internal_adjust_type() != 0) {
    _internal_set_adjust_type(from._internal_adjust_type());
  }
  if (from._internal_trade_session() != 0) {
    _internal_set_trade_session(from._internal_trade_session());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void SecurityCandlestickRequest::CopyFrom(const SecurityCandlestickRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridge.quote.v1.SecurityCandlestickRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool SecurityCandlestickRequest::IsInitialized() const {
  return true;
}

void SecurityCandlestickRequest::InternalSwap(SecurityCandlestickRequest* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &symbol_, lhs_arena,
      &other->symbol_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(SecurityCandlestickRequest, trade_session_)
      + sizeof(SecurityCandlestickRequest::trade_session_)
      - PROTOBUF_FIELD_OFFSET(SecurityCandlestickRequest, period_)>(
          reinterpret_cast<char*>(&period_),
          reinterpret_cast<char*>(&other->period_));
}

::PROTOBUF_NAMESPACE_ID::Metadata SecurityCandlestickRequest::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[25]);
}

// ===================================================================

class SecurityCandlestickResponse::_Internal {
 public:
};

SecurityCandlestickResponse::SecurityCandlestickResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
  candlesticks_(arena) {
  SharedCtor();
  // @@protoc_insertion_point(arena_constructor:longbridge.quote.v1.SecurityCandlestickResponse)
}
SecurityCandlestickResponse::SecurityCandlestickResponse(const SecurityCandlestickResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      candlesticks_(from.candlesticks_) {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  symbol_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    symbol_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_symbol().empty()) {
    symbol_.Set(from._internal_symbol(), 
      GetArenaForAllocation());
  }
  // @@protoc_insertion_point(copy_constructor:longbridge.quote.v1.SecurityCandlestickResponse)
}

inline void SecurityCandlestickResponse::SharedCtor() {
symbol_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  symbol_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
}

SecurityCandlestickResponse::~SecurityCandlestickResponse() {
  // @@protoc_insertion_point(destructor:longbridge.quote.v1.SecurityCandlestickResponse)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void SecurityCandlestickResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  symbol_.Destroy();
}

void SecurityCandlestickResponse::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void SecurityCandlestickResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridge.quote.v1.SecurityCandlestickResponse)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  candlesticks_.Clear();
  symbol_.ClearToEmpty();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* SecurityCandlestickResponse::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string symbol = 1 [json_name = "symbol"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_symbol();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.SecurityCandlestickResponse.symbol"));
        } else
          goto handle_unusual;
        continue;
      // repeated .longbridge.quote.v1.Candlestick candlesticks = 2 [json_name = "candlesticks"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_candlesticks(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<18>(ptr));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* SecurityCandlestickResponse::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridge.quote.v1.SecurityCandlestickResponse)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_symbol().data(), static_cast<int>(this->_internal_symbol().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.SecurityCandlestickResponse.symbol");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_symbol(), target);
  }

  // repeated .longbridge.quote.v1.Candlestick candlesticks = 2 [json_name = "candlesticks"];
  for (unsigned i = 0,
      n = static_cast<unsigned>(this->_internal_candlesticks_size()); i < n; i++) {
    const auto& repfield = this->_internal_candlesticks(i);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(2, repfield, repfield.GetCachedSize(), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridge.quote.v1.SecurityCandlestickResponse)
  return target;
}

size_t SecurityCandlestickResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridge.quote.v1.SecurityCandlestickResponse)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated .longbridge.quote.v1.Candlestick candlesticks = 2 [json_name = "candlesticks"];
  total_size += 1UL * this->_internal_candlesticks_size();
  for (const auto& msg : this->candlesticks_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_symbol());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData SecurityCandlestickResponse::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    SecurityCandlestickResponse::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*SecurityCandlestickResponse::GetClassData() const { return &_class_data_; }

void SecurityCandlestickResponse::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<SecurityCandlestickResponse *>(to)->MergeFrom(
      static_cast<const SecurityCandlestickResponse &>(from));
}


void SecurityCandlestickResponse::MergeFrom(const SecurityCandlestickResponse& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:longbridge.quote.v1.SecurityCandlestickResponse)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  candlesticks_.MergeFrom(from.candlesticks_);
  if (!from._internal_symbol().empty()) {
    _internal_set_symbol(from._internal_symbol());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void SecurityCandlestickResponse::CopyFrom(const SecurityCandlestickResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridge.quote.v1.SecurityCandlestickResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool SecurityCandlestickResponse::IsInitialized() const {
  return true;
}

void SecurityCandlestickResponse::InternalSwap(SecurityCandlestickResponse* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  candlesticks_.InternalSwap(&other->candlesticks_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &symbol_, lhs_arena,
      &other->symbol_, rhs_arena
  );
}

::PROTOBUF_NAMESPACE_ID::Metadata SecurityCandlestickResponse::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[26]);
}

// ===================================================================

class Candlestick::_Internal {
 public:
};

Candlestick::Candlestick(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor();
  // @@protoc_insertion_point(arena_constructor:longbridge.quote.v1.Candlestick)
}
Candlestick::Candlestick(const Candlestick& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  close_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    close_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_close().empty()) {
    close_.Set(from._internal_close(), 
      GetArenaForAllocation());
  }
  open_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    open_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_open().empty()) {
    open_.Set(from._internal_open(), 
      GetArenaForAllocation());
  }
  low_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    low_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_low().empty()) {
    low_.Set(from._internal_low(), 
      GetArenaForAllocation());
  }
  high_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    high_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_high().empty()) {
    high_.Set(from._internal_high(), 
      GetArenaForAllocation());
  }
  turnover_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    turnover_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_turnover().empty()) {
    turnover_.Set(from._internal_turnover(), 
      GetArenaForAllocation());
  }
  ::memcpy(&volume_, &from.volume_,
    static_cast<size_t>(reinterpret_cast<char*>(&trade_session_) -
    reinterpret_cast<char*>(&volume_)) + sizeof(trade_session_));
  // @@protoc_insertion_point(copy_constructor:longbridge.quote.v1.Candlestick)
}

inline void Candlestick::SharedCtor() {
close_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  close_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
open_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  open_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
low_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  low_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
high_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  high_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
turnover_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  turnover_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
    reinterpret_cast<char*>(&volume_) - reinterpret_cast<char*>(this)),
    0, static_cast<size_t>(reinterpret_cast<char*>(&trade_session_) -
    reinterpret_cast<char*>(&volume_)) + sizeof(trade_session_));
}

Candlestick::~Candlestick() {
  // @@protoc_insertion_point(destructor:longbridge.quote.v1.Candlestick)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void Candlestick::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  close_.Destroy();
  open_.Destroy();
  low_.Destroy();
  high_.Destroy();
  turnover_.Destroy();
}

void Candlestick::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void Candlestick::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridge.quote.v1.Candlestick)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  close_.ClearToEmpty();
  open_.ClearToEmpty();
  low_.ClearToEmpty();
  high_.ClearToEmpty();
  turnover_.ClearToEmpty();
  ::memset(&volume_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&trade_session_) -
      reinterpret_cast<char*>(&volume_)) + sizeof(trade_session_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* Candlestick::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string close = 1 [json_name = "close"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_close();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.Candlestick.close"));
        } else
          goto handle_unusual;
        continue;
      // string open = 2 [json_name = "open"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
          auto str = _internal_mutable_open();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.Candlestick.open"));
        } else
          goto handle_unusual;
        continue;
      // string low = 3 [json_name = "low"];
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 26)) {
          auto str = _internal_mutable_low();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.Candlestick.low"));
        } else
          goto handle_unusual;
        continue;
      // string high = 4 [json_name = "high"];
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 34)) {
          auto str = _internal_mutable_high();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.Candlestick.high"));
        } else
          goto handle_unusual;
        continue;
      // int64 volume = 5 [json_name = "volume"];
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 40)) {
          volume_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string turnover = 6 [json_name = "turnover"];
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 50)) {
          auto str = _internal_mutable_turnover();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.Candlestick.turnover"));
        } else
          goto handle_unusual;
        continue;
      // int64 timestamp = 7 [json_name = "timestamp"];
      case 7:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 56)) {
          timestamp_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // .longbridge.quote.v1.TradeSession trade_session = 8 [json_name = "tradeSession"];
      case 8:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 64)) {
          uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          _internal_set_trade_session(static_cast<::longbridge::quote::v1::TradeSession>(val));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* Candlestick::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridge.quote.v1.Candlestick)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string close = 1 [json_name = "close"];
  if (!this->_internal_close().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_close().data(), static_cast<int>(this->_internal_close().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.Candlestick.close");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_close(), target);
  }

  // string open = 2 [json_name = "open"];
  if (!this->_internal_open().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_open().data(), static_cast<int>(this->_internal_open().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.Candlestick.open");
    target = stream->WriteStringMaybeAliased(
        2, this->_internal_open(), target);
  }

  // string low = 3 [json_name = "low"];
  if (!this->_internal_low().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_low().data(), static_cast<int>(this->_internal_low().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.Candlestick.low");
    target = stream->WriteStringMaybeAliased(
        3, this->_internal_low(), target);
  }

  // string high = 4 [json_name = "high"];
  if (!this->_internal_high().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_high().data(), static_cast<int>(this->_internal_high().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.Candlestick.high");
    target = stream->WriteStringMaybeAliased(
        4, this->_internal_high(), target);
  }

  // int64 volume = 5 [json_name = "volume"];
  if (this->_internal_volume() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt64ToArray(5, this->_internal_volume(), target);
  }

  // string turnover = 6 [json_name = "turnover"];
  if (!this->_internal_turnover().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_turnover().data(), static_cast<int>(this->_internal_turnover().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.Candlestick.turnover");
    target = stream->WriteStringMaybeAliased(
        6, this->_internal_turnover(), target);
  }

  // int64 timestamp = 7 [json_name = "timestamp"];
  if (this->_internal_timestamp() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt64ToArray(7, this->_internal_timestamp(), target);
  }

  // .longbridge.quote.v1.TradeSession trade_session = 8 [json_name = "tradeSession"];
  if (this->_internal_trade_session() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
      8, this->_internal_trade_session(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridge.quote.v1.Candlestick)
  return target;
}

size_t Candlestick::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridge.quote.v1.Candlestick)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string close = 1 [json_name = "close"];
  if (!this->_internal_close().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_close());
  }

  // string open = 2 [json_name = "open"];
  if (!this->_internal_open().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_open());
  }

  // string low = 3 [json_name = "low"];
  if (!this->_internal_low().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_low());
  }

  // string high = 4 [json_name = "high"];
  if (!this->_internal_high().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_high());
  }

  // string turnover = 6 [json_name = "turnover"];
  if (!this->_internal_turnover().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_turnover());
  }

  // int64 volume = 5 [json_name = "volume"];
  if (this->_internal_volume() != 0) {
    total_size += ::_pbi::WireFormatLite::Int64SizePlusOne(this->_internal_volume());
  }

  // int64 timestamp = 7 [json_name = "timestamp"];
  if (this->_internal_timestamp() != 0) {
    total_size += ::_pbi::WireFormatLite::Int64SizePlusOne(this->_internal_timestamp());
  }

  // .longbridge.quote.v1.TradeSession trade_session = 8 [json_name = "tradeSession"];
  if (this->_internal_trade_session() != 0) {
    total_size += 1 +
      ::_pbi::WireFormatLite::EnumSize(this->_internal_trade_session());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData Candlestick::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    Candlestick::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*Candlestick::GetClassData() const { return &_class_data_; }

void Candlestick::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<Candlestick *>(to)->MergeFrom(
      static_cast<const Candlestick &>(from));
}


void Candlestick::MergeFrom(const Candlestick& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:longbridge.quote.v1.Candlestick)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (!from._internal_close().empty()) {
    _internal_set_close(from._internal_close());
  }
  if (!from._internal_open().empty()) {
    _internal_set_open(from._internal_open());
  }
  if (!from._internal_low().empty()) {
    _internal_set_low(from._internal_low());
  }
  if (!from._internal_high().empty()) {
    _internal_set_high(from._internal_high());
  }
  if (!from._internal_turnover().empty()) {
    _internal_set_turnover(from._internal_turnover());
  }
  if (from._internal_volume() != 0) {
    _internal_set_volume(from._internal_volume());
  }
  if (from._internal_timestamp() != 0) {
    _internal_set_timestamp(from._internal_timestamp());
  }
  if (from._internal_trade_session() != 0) {
    _internal_set_trade_session(from._internal_trade_session());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void Candlestick::CopyFrom(const Candlestick& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridge.quote.v1.Candlestick)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool Candlestick::IsInitialized() const {
  return true;
}

void Candlestick::InternalSwap(Candlestick* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &close_, lhs_arena,
      &other->close_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &open_, lhs_arena,
      &other->open_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &low_, lhs_arena,
      &other->low_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &high_, lhs_arena,
      &other->high_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &turnover_, lhs_arena,
      &other->turnover_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(Candlestick, trade_session_)
      + sizeof(Candlestick::trade_session_)
      - PROTOBUF_FIELD_OFFSET(Candlestick, volume_)>(
          reinterpret_cast<char*>(&volume_),
          reinterpret_cast<char*>(&other->volume_));
}

::PROTOBUF_NAMESPACE_ID::Metadata Candlestick::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[27]);
}

// ===================================================================

class OptionChainDateListResponse::_Internal {
 public:
};

OptionChainDateListResponse::OptionChainDateListResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
  expiry_date_(arena) {
  SharedCtor();
  // @@protoc_insertion_point(arena_constructor:longbridge.quote.v1.OptionChainDateListResponse)
}
OptionChainDateListResponse::OptionChainDateListResponse(const OptionChainDateListResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      expiry_date_(from.expiry_date_) {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:longbridge.quote.v1.OptionChainDateListResponse)
}

inline void OptionChainDateListResponse::SharedCtor() {
}

OptionChainDateListResponse::~OptionChainDateListResponse() {
  // @@protoc_insertion_point(destructor:longbridge.quote.v1.OptionChainDateListResponse)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void OptionChainDateListResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
}

void OptionChainDateListResponse::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void OptionChainDateListResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridge.quote.v1.OptionChainDateListResponse)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  expiry_date_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* OptionChainDateListResponse::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // repeated string expiry_date = 1 [json_name = "expiryDate"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          ptr -= 1;
          do {
            ptr += 1;
            auto str = _internal_add_expiry_date();
            ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
            CHK_(ptr);
            CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.OptionChainDateListResponse.expiry_date"));
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* OptionChainDateListResponse::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridge.quote.v1.OptionChainDateListResponse)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated string expiry_date = 1 [json_name = "expiryDate"];
  for (int i = 0, n = this->_internal_expiry_date_size(); i < n; i++) {
    const auto& s = this->_internal_expiry_date(i);
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      s.data(), static_cast<int>(s.length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.OptionChainDateListResponse.expiry_date");
    target = stream->WriteString(1, s, target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridge.quote.v1.OptionChainDateListResponse)
  return target;
}

size_t OptionChainDateListResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridge.quote.v1.OptionChainDateListResponse)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated string expiry_date = 1 [json_name = "expiryDate"];
  total_size += 1 *
      ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(expiry_date_.size());
  for (int i = 0, n = expiry_date_.size(); i < n; i++) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
      expiry_date_.Get(i));
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData OptionChainDateListResponse::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    OptionChainDateListResponse::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*OptionChainDateListResponse::GetClassData() const { return &_class_data_; }

void OptionChainDateListResponse::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<OptionChainDateListResponse *>(to)->MergeFrom(
      static_cast<const OptionChainDateListResponse &>(from));
}


void OptionChainDateListResponse::MergeFrom(const OptionChainDateListResponse& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:longbridge.quote.v1.OptionChainDateListResponse)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  expiry_date_.MergeFrom(from.expiry_date_);
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void OptionChainDateListResponse::CopyFrom(const OptionChainDateListResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridge.quote.v1.OptionChainDateListResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool OptionChainDateListResponse::IsInitialized() const {
  return true;
}

void OptionChainDateListResponse::InternalSwap(OptionChainDateListResponse* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  expiry_date_.InternalSwap(&other->expiry_date_);
}

::PROTOBUF_NAMESPACE_ID::Metadata OptionChainDateListResponse::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[28]);
}

// ===================================================================

class OptionChainDateStrikeInfoRequest::_Internal {
 public:
};

OptionChainDateStrikeInfoRequest::OptionChainDateStrikeInfoRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor();
  // @@protoc_insertion_point(arena_constructor:longbridge.quote.v1.OptionChainDateStrikeInfoRequest)
}
OptionChainDateStrikeInfoRequest::OptionChainDateStrikeInfoRequest(const OptionChainDateStrikeInfoRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  symbol_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    symbol_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_symbol().empty()) {
    symbol_.Set(from._internal_symbol(), 
      GetArenaForAllocation());
  }
  expiry_date_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    expiry_date_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_expiry_date().empty()) {
    expiry_date_.Set(from._internal_expiry_date(), 
      GetArenaForAllocation());
  }
  // @@protoc_insertion_point(copy_constructor:longbridge.quote.v1.OptionChainDateStrikeInfoRequest)
}

inline void OptionChainDateStrikeInfoRequest::SharedCtor() {
symbol_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  symbol_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
expiry_date_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  expiry_date_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
}

OptionChainDateStrikeInfoRequest::~OptionChainDateStrikeInfoRequest() {
  // @@protoc_insertion_point(destructor:longbridge.quote.v1.OptionChainDateStrikeInfoRequest)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void OptionChainDateStrikeInfoRequest::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  symbol_.Destroy();
  expiry_date_.Destroy();
}

void OptionChainDateStrikeInfoRequest::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void OptionChainDateStrikeInfoRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridge.quote.v1.OptionChainDateStrikeInfoRequest)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  symbol_.ClearToEmpty();
  expiry_date_.ClearToEmpty();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* OptionChainDateStrikeInfoRequest::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string symbol = 1 [json_name = "symbol"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_symbol();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.OptionChainDateStrikeInfoRequest.symbol"));
        } else
          goto handle_unusual;
        continue;
      // string expiry_date = 2 [json_name = "expiryDate"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
          auto str = _internal_mutable_expiry_date();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.OptionChainDateStrikeInfoRequest.expiry_date"));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* OptionChainDateStrikeInfoRequest::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridge.quote.v1.OptionChainDateStrikeInfoRequest)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_symbol().data(), static_cast<int>(this->_internal_symbol().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.OptionChainDateStrikeInfoRequest.symbol");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_symbol(), target);
  }

  // string expiry_date = 2 [json_name = "expiryDate"];
  if (!this->_internal_expiry_date().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_expiry_date().data(), static_cast<int>(this->_internal_expiry_date().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.OptionChainDateStrikeInfoRequest.expiry_date");
    target = stream->WriteStringMaybeAliased(
        2, this->_internal_expiry_date(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridge.quote.v1.OptionChainDateStrikeInfoRequest)
  return target;
}

size_t OptionChainDateStrikeInfoRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridge.quote.v1.OptionChainDateStrikeInfoRequest)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_symbol());
  }

  // string expiry_date = 2 [json_name = "expiryDate"];
  if (!this->_internal_expiry_date().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_expiry_date());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData OptionChainDateStrikeInfoRequest::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    OptionChainDateStrikeInfoRequest::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*OptionChainDateStrikeInfoRequest::GetClassData() const { return &_class_data_; }

void OptionChainDateStrikeInfoRequest::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<OptionChainDateStrikeInfoRequest *>(to)->MergeFrom(
      static_cast<const OptionChainDateStrikeInfoRequest &>(from));
}


void OptionChainDateStrikeInfoRequest::MergeFrom(const OptionChainDateStrikeInfoRequest& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:longbridge.quote.v1.OptionChainDateStrikeInfoRequest)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (!from._internal_symbol().empty()) {
    _internal_set_symbol(from._internal_symbol());
  }
  if (!from._internal_expiry_date().empty()) {
    _internal_set_expiry_date(from._internal_expiry_date());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void OptionChainDateStrikeInfoRequest::CopyFrom(const OptionChainDateStrikeInfoRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridge.quote.v1.OptionChainDateStrikeInfoRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool OptionChainDateStrikeInfoRequest::IsInitialized() const {
  return true;
}

void OptionChainDateStrikeInfoRequest::InternalSwap(OptionChainDateStrikeInfoRequest* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &symbol_, lhs_arena,
      &other->symbol_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &expiry_date_, lhs_arena,
      &other->expiry_date_, rhs_arena
  );
}

::PROTOBUF_NAMESPACE_ID::Metadata OptionChainDateStrikeInfoRequest::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[29]);
}

// ===================================================================

class OptionChainDateStrikeInfoResponse::_Internal {
 public:
};

OptionChainDateStrikeInfoResponse::OptionChainDateStrikeInfoResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
  strike_price_info_(arena) {
  SharedCtor();
  // @@protoc_insertion_point(arena_constructor:longbridge.quote.v1.OptionChainDateStrikeInfoResponse)
}
OptionChainDateStrikeInfoResponse::OptionChainDateStrikeInfoResponse(const OptionChainDateStrikeInfoResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      strike_price_info_(from.strike_price_info_) {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:longbridge.quote.v1.OptionChainDateStrikeInfoResponse)
}

inline void OptionChainDateStrikeInfoResponse::SharedCtor() {
}

OptionChainDateStrikeInfoResponse::~OptionChainDateStrikeInfoResponse() {
  // @@protoc_insertion_point(destructor:longbridge.quote.v1.OptionChainDateStrikeInfoResponse)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void OptionChainDateStrikeInfoResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
}

void OptionChainDateStrikeInfoResponse::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void OptionChainDateStrikeInfoResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridge.quote.v1.OptionChainDateStrikeInfoResponse)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  strike_price_info_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* OptionChainDateStrikeInfoResponse::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // repeated .longbridge.quote.v1.StrikePriceInfo strike_price_info = 1 [json_name = "strikePriceInfo"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_strike_price_info(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* OptionChainDateStrikeInfoResponse::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridge.quote.v1.OptionChainDateStrikeInfoResponse)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated .longbridge.quote.v1.StrikePriceInfo strike_price_info = 1 [json_name = "strikePriceInfo"];
  for (unsigned i = 0,
      n = static_cast<unsigned>(this->_internal_strike_price_info_size()); i < n; i++) {
    const auto& repfield = this->_internal_strike_price_info(i);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(1, repfield, repfield.GetCachedSize(), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridge.quote.v1.OptionChainDateStrikeInfoResponse)
  return target;
}

size_t OptionChainDateStrikeInfoResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridge.quote.v1.OptionChainDateStrikeInfoResponse)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated .longbridge.quote.v1.StrikePriceInfo strike_price_info = 1 [json_name = "strikePriceInfo"];
  total_size += 1UL * this->_internal_strike_price_info_size();
  for (const auto& msg : this->strike_price_info_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData OptionChainDateStrikeInfoResponse::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    OptionChainDateStrikeInfoResponse::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*OptionChainDateStrikeInfoResponse::GetClassData() const { return &_class_data_; }

void OptionChainDateStrikeInfoResponse::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<OptionChainDateStrikeInfoResponse *>(to)->MergeFrom(
      static_cast<const OptionChainDateStrikeInfoResponse &>(from));
}


void OptionChainDateStrikeInfoResponse::MergeFrom(const OptionChainDateStrikeInfoResponse& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:longbridge.quote.v1.OptionChainDateStrikeInfoResponse)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  strike_price_info_.MergeFrom(from.strike_price_info_);
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void OptionChainDateStrikeInfoResponse::CopyFrom(const OptionChainDateStrikeInfoResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridge.quote.v1.OptionChainDateStrikeInfoResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool OptionChainDateStrikeInfoResponse::IsInitialized() const {
  return true;
}

void OptionChainDateStrikeInfoResponse::InternalSwap(OptionChainDateStrikeInfoResponse* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  strike_price_info_.InternalSwap(&other->strike_price_info_);
}

::PROTOBUF_NAMESPACE_ID::Metadata OptionChainDateStrikeInfoResponse::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[30]);
}

// ===================================================================

class StrikePriceInfo::_Internal {
 public:
};

StrikePriceInfo::StrikePriceInfo(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor();
  // @@protoc_insertion_point(arena_constructor:longbridge.quote.v1.StrikePriceInfo)
}
StrikePriceInfo::StrikePriceInfo(const StrikePriceInfo& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  price_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    price_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_price().empty()) {
    price_.Set(from._internal_price(), 
      GetArenaForAllocation());
  }
  call_symbol_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    call_symbol_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_call_symbol().empty()) {
    call_symbol_.Set(from._internal_call_symbol(), 
      GetArenaForAllocation());
  }
  put_symbol_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    put_symbol_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_put_symbol().empty()) {
    put_symbol_.Set(from._internal_put_symbol(), 
      GetArenaForAllocation());
  }
  standard_ = from.standard_;
  // @@protoc_insertion_point(copy_constructor:longbridge.quote.v1.StrikePriceInfo)
}

inline void StrikePriceInfo::SharedCtor() {
price_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  price_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
call_symbol_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  call_symbol_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
put_symbol_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  put_symbol_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
standard_ = false;
}

StrikePriceInfo::~StrikePriceInfo() {
  // @@protoc_insertion_point(destructor:longbridge.quote.v1.StrikePriceInfo)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void StrikePriceInfo::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  price_.Destroy();
  call_symbol_.Destroy();
  put_symbol_.Destroy();
}

void StrikePriceInfo::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void StrikePriceInfo::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridge.quote.v1.StrikePriceInfo)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  price_.ClearToEmpty();
  call_symbol_.ClearToEmpty();
  put_symbol_.ClearToEmpty();
  standard_ = false;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* StrikePriceInfo::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string price = 1 [json_name = "price"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_price();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.StrikePriceInfo.price"));
        } else
          goto handle_unusual;
        continue;
      // string call_symbol = 2 [json_name = "callSymbol"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
          auto str = _internal_mutable_call_symbol();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.StrikePriceInfo.call_symbol"));
        } else
          goto handle_unusual;
        continue;
      // string put_symbol = 3 [json_name = "putSymbol"];
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 26)) {
          auto str = _internal_mutable_put_symbol();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.StrikePriceInfo.put_symbol"));
        } else
          goto handle_unusual;
        continue;
      // bool standard = 4 [json_name = "standard"];
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 32)) {
          standard_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* StrikePriceInfo::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridge.quote.v1.StrikePriceInfo)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string price = 1 [json_name = "price"];
  if (!this->_internal_price().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_price().data(), static_cast<int>(this->_internal_price().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.StrikePriceInfo.price");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_price(), target);
  }

  // string call_symbol = 2 [json_name = "callSymbol"];
  if (!this->_internal_call_symbol().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_call_symbol().data(), static_cast<int>(this->_internal_call_symbol().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.StrikePriceInfo.call_symbol");
    target = stream->WriteStringMaybeAliased(
        2, this->_internal_call_symbol(), target);
  }

  // string put_symbol = 3 [json_name = "putSymbol"];
  if (!this->_internal_put_symbol().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_put_symbol().data(), static_cast<int>(this->_internal_put_symbol().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.StrikePriceInfo.put_symbol");
    target = stream->WriteStringMaybeAliased(
        3, this->_internal_put_symbol(), target);
  }

  // bool standard = 4 [json_name = "standard"];
  if (this->_internal_standard() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(4, this->_internal_standard(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridge.quote.v1.StrikePriceInfo)
  return target;
}

size_t StrikePriceInfo::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridge.quote.v1.StrikePriceInfo)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string price = 1 [json_name = "price"];
  if (!this->_internal_price().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_price());
  }

  // string call_symbol = 2 [json_name = "callSymbol"];
  if (!this->_internal_call_symbol().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_call_symbol());
  }

  // string put_symbol = 3 [json_name = "putSymbol"];
  if (!this->_internal_put_symbol().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_put_symbol());
  }

  // bool standard = 4 [json_name = "standard"];
  if (this->_internal_standard() != 0) {
    total_size += 1 + 1;
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData StrikePriceInfo::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    StrikePriceInfo::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*StrikePriceInfo::GetClassData() const { return &_class_data_; }

void StrikePriceInfo::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<StrikePriceInfo *>(to)->MergeFrom(
      static_cast<const StrikePriceInfo &>(from));
}


void StrikePriceInfo::MergeFrom(const StrikePriceInfo& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:longbridge.quote.v1.StrikePriceInfo)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (!from._internal_price().empty()) {
    _internal_set_price(from._internal_price());
  }
  if (!from._internal_call_symbol().empty()) {
    _internal_set_call_symbol(from._internal_call_symbol());
  }
  if (!from._internal_put_symbol().empty()) {
    _internal_set_put_symbol(from._internal_put_symbol());
  }
  if (from._internal_standard() != 0) {
    _internal_set_standard(from._internal_standard());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void StrikePriceInfo::CopyFrom(const StrikePriceInfo& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridge.quote.v1.StrikePriceInfo)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool StrikePriceInfo::IsInitialized() const {
  return true;
}

void StrikePriceInfo::InternalSwap(StrikePriceInfo* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &price_, lhs_arena,
      &other->price_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &call_symbol_, lhs_arena,
      &other->call_symbol_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &put_symbol_, lhs_arena,
      &other->put_symbol_, rhs_arena
  );
  swap(standard_, other->standard_);
}

::PROTOBUF_NAMESPACE_ID::Metadata StrikePriceInfo::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[31]);
}

// ===================================================================

class IssuerInfoResponse::_Internal {
 public:
};

IssuerInfoResponse::IssuerInfoResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
  issuer_info_(arena) {
  SharedCtor();
  // @@protoc_insertion_point(arena_constructor:longbridge.quote.v1.IssuerInfoResponse)
}
IssuerInfoResponse::IssuerInfoResponse(const IssuerInfoResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      issuer_info_(from.issuer_info_) {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:longbridge.quote.v1.IssuerInfoResponse)
}

inline void IssuerInfoResponse::SharedCtor() {
}

IssuerInfoResponse::~IssuerInfoResponse() {
  // @@protoc_insertion_point(destructor:longbridge.quote.v1.IssuerInfoResponse)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void IssuerInfoResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
}

void IssuerInfoResponse::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void IssuerInfoResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridge.quote.v1.IssuerInfoResponse)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  issuer_info_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* IssuerInfoResponse::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // repeated .longbridge.quote.v1.IssuerInfo issuer_info = 1 [json_name = "issuerInfo"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_issuer_info(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* IssuerInfoResponse::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridge.quote.v1.IssuerInfoResponse)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated .longbridge.quote.v1.IssuerInfo issuer_info = 1 [json_name = "issuerInfo"];
  for (unsigned i = 0,
      n = static_cast<unsigned>(this->_internal_issuer_info_size()); i < n; i++) {
    const auto& repfield = this->_internal_issuer_info(i);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(1, repfield, repfield.GetCachedSize(), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridge.quote.v1.IssuerInfoResponse)
  return target;
}

size_t IssuerInfoResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridge.quote.v1.IssuerInfoResponse)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated .longbridge.quote.v1.IssuerInfo issuer_info = 1 [json_name = "issuerInfo"];
  total_size += 1UL * this->_internal_issuer_info_size();
  for (const auto& msg : this->issuer_info_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData IssuerInfoResponse::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    IssuerInfoResponse::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*IssuerInfoResponse::GetClassData() const { return &_class_data_; }

void IssuerInfoResponse::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<IssuerInfoResponse *>(to)->MergeFrom(
      static_cast<const IssuerInfoResponse &>(from));
}


void IssuerInfoResponse::MergeFrom(const IssuerInfoResponse& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:longbridge.quote.v1.IssuerInfoResponse)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  issuer_info_.MergeFrom(from.issuer_info_);
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void IssuerInfoResponse::CopyFrom(const IssuerInfoResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridge.quote.v1.IssuerInfoResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool IssuerInfoResponse::IsInitialized() const {
  return true;
}

void IssuerInfoResponse::InternalSwap(IssuerInfoResponse* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  issuer_info_.InternalSwap(&other->issuer_info_);
}

::PROTOBUF_NAMESPACE_ID::Metadata IssuerInfoResponse::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[32]);
}

// ===================================================================

class IssuerInfo::_Internal {
 public:
};

IssuerInfo::IssuerInfo(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor();
  // @@protoc_insertion_point(arena_constructor:longbridge.quote.v1.IssuerInfo)
}
IssuerInfo::IssuerInfo(const IssuerInfo& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  name_cn_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    name_cn_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_name_cn().empty()) {
    name_cn_.Set(from._internal_name_cn(), 
      GetArenaForAllocation());
  }
  name_en_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    name_en_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_name_en().empty()) {
    name_en_.Set(from._internal_name_en(), 
      GetArenaForAllocation());
  }
  name_hk_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    name_hk_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_name_hk().empty()) {
    name_hk_.Set(from._internal_name_hk(), 
      GetArenaForAllocation());
  }
  id_ = from.id_;
  // @@protoc_insertion_point(copy_constructor:longbridge.quote.v1.IssuerInfo)
}

inline void IssuerInfo::SharedCtor() {
name_cn_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  name_cn_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
name_en_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  name_en_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
name_hk_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  name_hk_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
id_ = 0;
}

IssuerInfo::~IssuerInfo() {
  // @@protoc_insertion_point(destructor:longbridge.quote.v1.IssuerInfo)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void IssuerInfo::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  name_cn_.Destroy();
  name_en_.Destroy();
  name_hk_.Destroy();
}

void IssuerInfo::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void IssuerInfo::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridge.quote.v1.IssuerInfo)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  name_cn_.ClearToEmpty();
  name_en_.ClearToEmpty();
  name_hk_.ClearToEmpty();
  id_ = 0;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* IssuerInfo::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // int32 id = 1 [json_name = "id"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 8)) {
          id_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string name_cn = 2 [json_name = "nameCn"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
          auto str = _internal_mutable_name_cn();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.IssuerInfo.name_cn"));
        } else
          goto handle_unusual;
        continue;
      // string name_en = 3 [json_name = "nameEn"];
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 26)) {
          auto str = _internal_mutable_name_en();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.IssuerInfo.name_en"));
        } else
          goto handle_unusual;
        continue;
      // string name_hk = 4 [json_name = "nameHk"];
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 34)) {
          auto str = _internal_mutable_name_hk();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.IssuerInfo.name_hk"));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* IssuerInfo::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridge.quote.v1.IssuerInfo)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // int32 id = 1 [json_name = "id"];
  if (this->_internal_id() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt32ToArray(1, this->_internal_id(), target);
  }

  // string name_cn = 2 [json_name = "nameCn"];
  if (!this->_internal_name_cn().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_name_cn().data(), static_cast<int>(this->_internal_name_cn().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.IssuerInfo.name_cn");
    target = stream->WriteStringMaybeAliased(
        2, this->_internal_name_cn(), target);
  }

  // string name_en = 3 [json_name = "nameEn"];
  if (!this->_internal_name_en().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_name_en().data(), static_cast<int>(this->_internal_name_en().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.IssuerInfo.name_en");
    target = stream->WriteStringMaybeAliased(
        3, this->_internal_name_en(), target);
  }

  // string name_hk = 4 [json_name = "nameHk"];
  if (!this->_internal_name_hk().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_name_hk().data(), static_cast<int>(this->_internal_name_hk().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.IssuerInfo.name_hk");
    target = stream->WriteStringMaybeAliased(
        4, this->_internal_name_hk(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridge.quote.v1.IssuerInfo)
  return target;
}

size_t IssuerInfo::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridge.quote.v1.IssuerInfo)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string name_cn = 2 [json_name = "nameCn"];
  if (!this->_internal_name_cn().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_name_cn());
  }

  // string name_en = 3 [json_name = "nameEn"];
  if (!this->_internal_name_en().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_name_en());
  }

  // string name_hk = 4 [json_name = "nameHk"];
  if (!this->_internal_name_hk().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_name_hk());
  }

  // int32 id = 1 [json_name = "id"];
  if (this->_internal_id() != 0) {
    total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(this->_internal_id());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData IssuerInfo::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    IssuerInfo::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*IssuerInfo::GetClassData() const { return &_class_data_; }

void IssuerInfo::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<IssuerInfo *>(to)->MergeFrom(
      static_cast<const IssuerInfo &>(from));
}


void IssuerInfo::MergeFrom(const IssuerInfo& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:longbridge.quote.v1.IssuerInfo)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (!from._internal_name_cn().empty()) {
    _internal_set_name_cn(from._internal_name_cn());
  }
  if (!from._internal_name_en().empty()) {
    _internal_set_name_en(from._internal_name_en());
  }
  if (!from._internal_name_hk().empty()) {
    _internal_set_name_hk(from._internal_name_hk());
  }
  if (from._internal_id() != 0) {
    _internal_set_id(from._internal_id());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void IssuerInfo::CopyFrom(const IssuerInfo& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridge.quote.v1.IssuerInfo)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool IssuerInfo::IsInitialized() const {
  return true;
}

void IssuerInfo::InternalSwap(IssuerInfo* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &name_cn_, lhs_arena,
      &other->name_cn_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &name_en_, lhs_arena,
      &other->name_en_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &name_hk_, lhs_arena,
      &other->name_hk_, rhs_arena
  );
  swap(id_, other->id_);
}

::PROTOBUF_NAMESPACE_ID::Metadata IssuerInfo::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[33]);
}

// ===================================================================

class WarrantFilterListRequest::_Internal {
 public:
  static const ::longbridge::quote::v1::FilterConfig& filter_config(const WarrantFilterListRequest* msg);
};

const ::longbridge::quote::v1::FilterConfig&
WarrantFilterListRequest::_Internal::filter_config(const WarrantFilterListRequest* msg) {
  return *msg->filter_config_;
}
WarrantFilterListRequest::WarrantFilterListRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor();
  // @@protoc_insertion_point(arena_constructor:longbridge.quote.v1.WarrantFilterListRequest)
}
WarrantFilterListRequest::WarrantFilterListRequest(const WarrantFilterListRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  symbol_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    symbol_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_symbol().empty()) {
    symbol_.Set(from._internal_symbol(), 
      GetArenaForAllocation());
  }
  if (from._internal_has_filter_config()) {
    filter_config_ = new ::longbridge::quote::v1::FilterConfig(*from.filter_config_);
  } else {
    filter_config_ = nullptr;
  }
  language_ = from.language_;
  // @@protoc_insertion_point(copy_constructor:longbridge.quote.v1.WarrantFilterListRequest)
}

inline void WarrantFilterListRequest::SharedCtor() {
symbol_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  symbol_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
    reinterpret_cast<char*>(&filter_config_) - reinterpret_cast<char*>(this)),
    0, static_cast<size_t>(reinterpret_cast<char*>(&language_) -
    reinterpret_cast<char*>(&filter_config_)) + sizeof(language_));
}

WarrantFilterListRequest::~WarrantFilterListRequest() {
  // @@protoc_insertion_point(destructor:longbridge.quote.v1.WarrantFilterListRequest)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void WarrantFilterListRequest::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  symbol_.Destroy();
  if (this != internal_default_instance()) delete filter_config_;
}

void WarrantFilterListRequest::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void WarrantFilterListRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridge.quote.v1.WarrantFilterListRequest)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  symbol_.ClearToEmpty();
  if (GetArenaForAllocation() == nullptr && filter_config_ != nullptr) {
    delete filter_config_;
  }
  filter_config_ = nullptr;
  language_ = 0;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* WarrantFilterListRequest::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string symbol = 1 [json_name = "symbol"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_symbol();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.WarrantFilterListRequest.symbol"));
        } else
          goto handle_unusual;
        continue;
      // .longbridge.quote.v1.FilterConfig filter_config = 2 [json_name = "filterConfig"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
          ptr = ctx->ParseMessage(_internal_mutable_filter_config(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int32 language = 3 [json_name = "language"];
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 24)) {
          language_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* WarrantFilterListRequest::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridge.quote.v1.WarrantFilterListRequest)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_symbol().data(), static_cast<int>(this->_internal_symbol().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.WarrantFilterListRequest.symbol");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_symbol(), target);
  }

  // .longbridge.quote.v1.FilterConfig filter_config = 2 [json_name = "filterConfig"];
  if (this->_internal_has_filter_config()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(2, _Internal::filter_config(this),
        _Internal::filter_config(this).GetCachedSize(), target, stream);
  }

  // int32 language = 3 [json_name = "language"];
  if (this->_internal_language() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt32ToArray(3, this->_internal_language(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridge.quote.v1.WarrantFilterListRequest)
  return target;
}

size_t WarrantFilterListRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridge.quote.v1.WarrantFilterListRequest)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_symbol());
  }

  // .longbridge.quote.v1.FilterConfig filter_config = 2 [json_name = "filterConfig"];
  if (this->_internal_has_filter_config()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *filter_config_);
  }

  // int32 language = 3 [json_name = "language"];
  if (this->_internal_language() != 0) {
    total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(this->_internal_language());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData WarrantFilterListRequest::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    WarrantFilterListRequest::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*WarrantFilterListRequest::GetClassData() const { return &_class_data_; }

void WarrantFilterListRequest::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<WarrantFilterListRequest *>(to)->MergeFrom(
      static_cast<const WarrantFilterListRequest &>(from));
}


void WarrantFilterListRequest::MergeFrom(const WarrantFilterListRequest& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:longbridge.quote.v1.WarrantFilterListRequest)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (!from._internal_symbol().empty()) {
    _internal_set_symbol(from._internal_symbol());
  }
  if (from._internal_has_filter_config()) {
    _internal_mutable_filter_config()->::longbridge::quote::v1::FilterConfig::MergeFrom(from._internal_filter_config());
  }
  if (from._internal_language() != 0) {
    _internal_set_language(from._internal_language());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void WarrantFilterListRequest::CopyFrom(const WarrantFilterListRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridge.quote.v1.WarrantFilterListRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool WarrantFilterListRequest::IsInitialized() const {
  return true;
}

void WarrantFilterListRequest::InternalSwap(WarrantFilterListRequest* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &symbol_, lhs_arena,
      &other->symbol_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(WarrantFilterListRequest, language_)
      + sizeof(WarrantFilterListRequest::language_)
      - PROTOBUF_FIELD_OFFSET(WarrantFilterListRequest, filter_config_)>(
          reinterpret_cast<char*>(&filter_config_),
          reinterpret_cast<char*>(&other->filter_config_));
}

::PROTOBUF_NAMESPACE_ID::Metadata WarrantFilterListRequest::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[34]);
}

// ===================================================================

class FilterConfig::_Internal {
 public:
};

FilterConfig::FilterConfig(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
  type_(arena),
  issuer_(arena),
  expiry_date_(arena),
  price_type_(arena),
  status_(arena) {
  SharedCtor();
  // @@protoc_insertion_point(arena_constructor:longbridge.quote.v1.FilterConfig)
}
FilterConfig::FilterConfig(const FilterConfig& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      type_(from.type_),
      issuer_(from.issuer_),
      expiry_date_(from.expiry_date_),
      price_type_(from.price_type_),
      status_(from.status_) {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::memcpy(&sort_by_, &from.sort_by_,
    static_cast<size_t>(reinterpret_cast<char*>(&sort_count_) -
    reinterpret_cast<char*>(&sort_by_)) + sizeof(sort_count_));
  // @@protoc_insertion_point(copy_constructor:longbridge.quote.v1.FilterConfig)
}

inline void FilterConfig::SharedCtor() {
::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
    reinterpret_cast<char*>(&sort_by_) - reinterpret_cast<char*>(this)),
    0, static_cast<size_t>(reinterpret_cast<char*>(&sort_count_) -
    reinterpret_cast<char*>(&sort_by_)) + sizeof(sort_count_));
}

FilterConfig::~FilterConfig() {
  // @@protoc_insertion_point(destructor:longbridge.quote.v1.FilterConfig)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void FilterConfig::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
}

void FilterConfig::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void FilterConfig::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridge.quote.v1.FilterConfig)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  type_.Clear();
  issuer_.Clear();
  expiry_date_.Clear();
  price_type_.Clear();
  status_.Clear();
  ::memset(&sort_by_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&sort_count_) -
      reinterpret_cast<char*>(&sort_by_)) + sizeof(sort_count_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* FilterConfig::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // int32 sort_by = 1 [json_name = "sortBy"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 8)) {
          sort_by_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int32 sort_order = 2 [json_name = "sortOrder"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) {
          sort_order_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int32 sort_offset = 3 [json_name = "sortOffset"];
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 24)) {
          sort_offset_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int32 sort_count = 4 [json_name = "sortCount"];
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 32)) {
          sort_count_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // repeated int32 type = 5 [json_name = "type"];
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 42)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_type(), ptr, ctx);
          CHK_(ptr);
        } else if (static_cast<uint8_t>(tag) == 40) {
          _internal_add_type(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // repeated int32 issuer = 6 [json_name = "issuer"];
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 50)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_issuer(), ptr, ctx);
          CHK_(ptr);
        } else if (static_cast<uint8_t>(tag) == 48) {
          _internal_add_issuer(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // repeated int32 expiry_date = 7 [json_name = "expiryDate"];
      case 7:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 58)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_expiry_date(), ptr, ctx);
          CHK_(ptr);
        } else if (static_cast<uint8_t>(tag) == 56) {
          _internal_add_expiry_date(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // repeated int32 price_type = 8 [json_name = "priceType"];
      case 8:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 66)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_price_type(), ptr, ctx);
          CHK_(ptr);
        } else if (static_cast<uint8_t>(tag) == 64) {
          _internal_add_price_type(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // repeated int32 status = 9 [json_name = "status"];
      case 9:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 74)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_status(), ptr, ctx);
          CHK_(ptr);
        } else if (static_cast<uint8_t>(tag) == 72) {
          _internal_add_status(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* FilterConfig::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridge.quote.v1.FilterConfig)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // int32 sort_by = 1 [json_name = "sortBy"];
  if (this->_internal_sort_by() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt32ToArray(1, this->_internal_sort_by(), target);
  }

  // int32 sort_order = 2 [json_name = "sortOrder"];
  if (this->_internal_sort_order() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt32ToArray(2, this->_internal_sort_order(), target);
  }

  // int32 sort_offset = 3 [json_name = "sortOffset"];
  if (this->_internal_sort_offset() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt32ToArray(3, this->_internal_sort_offset(), target);
  }

  // int32 sort_count = 4 [json_name = "sortCount"];
  if (this->_internal_sort_count() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt32ToArray(4, this->_internal_sort_count(), target);
  }

  // repeated int32 type = 5 [json_name = "type"];
  {
    int byte_size = _type_cached_byte_size_.load(std::memory_order_relaxed);
    if (byte_size > 0) {
      target = stream->WriteInt32Packed(
          5, _internal_type(), byte_size, target);
    }
  }

  // repeated int32 issuer = 6 [json_name = "issuer"];
  {
    int byte_size = _issuer_cached_byte_size_.load(std::memory_order_relaxed);
    if (byte_size > 0) {
      target = stream->WriteInt32Packed(
          6, _internal_issuer(), byte_size, target);
    }
  }

  // repeated int32 expiry_date = 7 [json_name = "expiryDate"];
  {
    int byte_size = _expiry_date_cached_byte_size_.load(std::memory_order_relaxed);
    if (byte_size > 0) {
      target = stream->WriteInt32Packed(
          7, _internal_expiry_date(), byte_size, target);
    }
  }

  // repeated int32 price_type = 8 [json_name = "priceType"];
  {
    int byte_size = _price_type_cached_byte_size_.load(std::memory_order_relaxed);
    if (byte_size > 0) {
      target = stream->WriteInt32Packed(
          8, _internal_price_type(), byte_size, target);
    }
  }

  // repeated int32 status = 9 [json_name = "status"];
  {
    int byte_size = _status_cached_byte_size_.load(std::memory_order_relaxed);
    if (byte_size > 0) {
      target = stream->WriteInt32Packed(
          9, _internal_status(), byte_size, target);
    }
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridge.quote.v1.FilterConfig)
  return target;
}

size_t FilterConfig::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridge.quote.v1.FilterConfig)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated int32 type = 5 [json_name = "type"];
  {
    size_t data_size = ::_pbi::WireFormatLite::
      Int32Size(this->type_);
    if (data_size > 0) {
      total_size += 1 +
        ::_pbi::WireFormatLite::Int32Size(static_cast<int32_t>(data_size));
    }
    int cached_size = ::_pbi::ToCachedSize(data_size);
    _type_cached_byte_size_.store(cached_size,
                                    std::memory_order_relaxed);
    total_size += data_size;
  }

  // repeated int32 issuer = 6 [json_name = "issuer"];
  {
    size_t data_size = ::_pbi::WireFormatLite::
      Int32Size(this->issuer_);
    if (data_size > 0) {
      total_size += 1 +
        ::_pbi::WireFormatLite::Int32Size(static_cast<int32_t>(data_size));
    }
    int cached_size = ::_pbi::ToCachedSize(data_size);
    _issuer_cached_byte_size_.store(cached_size,
                                    std::memory_order_relaxed);
    total_size += data_size;
  }

  // repeated int32 expiry_date = 7 [json_name = "expiryDate"];
  {
    size_t data_size = ::_pbi::WireFormatLite::
      Int32Size(this->expiry_date_);
    if (data_size > 0) {
      total_size += 1 +
        ::_pbi::WireFormatLite::Int32Size(static_cast<int32_t>(data_size));
    }
    int cached_size = ::_pbi::ToCachedSize(data_size);
    _expiry_date_cached_byte_size_.store(cached_size,
                                    std::memory_order_relaxed);
    total_size += data_size;
  }

  // repeated int32 price_type = 8 [json_name = "priceType"];
  {
    size_t data_size = ::_pbi::WireFormatLite::
      Int32Size(this->price_type_);
    if (data_size > 0) {
      total_size += 1 +
        ::_pbi::WireFormatLite::Int32Size(static_cast<int32_t>(data_size));
    }
    int cached_size = ::_pbi::ToCachedSize(data_size);
    _price_type_cached_byte_size_.store(cached_size,
                                    std::memory_order_relaxed);
    total_size += data_size;
  }

  // repeated int32 status = 9 [json_name = "status"];
  {
    size_t data_size = ::_pbi::WireFormatLite::
      Int32Size(this->status_);
    if (data_size > 0) {
      total_size += 1 +
        ::_pbi::WireFormatLite::Int32Size(static_cast<int32_t>(data_size));
    }
    int cached_size = ::_pbi::ToCachedSize(data_size);
    _status_cached_byte_size_.store(cached_size,
                                    std::memory_order_relaxed);
    total_size += data_size;
  }

  // int32 sort_by = 1 [json_name = "sortBy"];
  if (this->_internal_sort_by() != 0) {
    total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(this->_internal_sort_by());
  }

  // int32 sort_order = 2 [json_name = "sortOrder"];
  if (this->_internal_sort_order() != 0) {
    total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(this->_internal_sort_order());
  }

  // int32 sort_offset = 3 [json_name = "sortOffset"];
  if (this->_internal_sort_offset() != 0) {
    total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(this->_internal_sort_offset());
  }

  // int32 sort_count = 4 [json_name = "sortCount"];
  if (this->_internal_sort_count() != 0) {
    total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(this->_internal_sort_count());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData FilterConfig::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    FilterConfig::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*FilterConfig::GetClassData() const { return &_class_data_; }

void FilterConfig::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<FilterConfig *>(to)->MergeFrom(
      static_cast<const FilterConfig &>(from));
}


void FilterConfig::MergeFrom(const FilterConfig& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:longbridge.quote.v1.FilterConfig)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  type_.MergeFrom(from.type_);
  issuer_.MergeFrom(from.issuer_);
  expiry_date_.MergeFrom(from.expiry_date_);
  price_type_.MergeFrom(from.price_type_);
  status_.MergeFrom(from.status_);
  if (from._internal_sort_by() != 0) {
    _internal_set_sort_by(from._internal_sort_by());
  }
  if (from._internal_sort_order() != 0) {
    _internal_set_sort_order(from._internal_sort_order());
  }
  if (from._internal_sort_offset() != 0) {
    _internal_set_sort_offset(from._internal_sort_offset());
  }
  if (from._internal_sort_count() != 0) {
    _internal_set_sort_count(from._internal_sort_count());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void FilterConfig::CopyFrom(const FilterConfig& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridge.quote.v1.FilterConfig)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool FilterConfig::IsInitialized() const {
  return true;
}

void FilterConfig::InternalSwap(FilterConfig* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  type_.InternalSwap(&other->type_);
  issuer_.InternalSwap(&other->issuer_);
  expiry_date_.InternalSwap(&other->expiry_date_);
  price_type_.InternalSwap(&other->price_type_);
  status_.InternalSwap(&other->status_);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(FilterConfig, sort_count_)
      + sizeof(FilterConfig::sort_count_)
      - PROTOBUF_FIELD_OFFSET(FilterConfig, sort_by_)>(
          reinterpret_cast<char*>(&sort_by_),
          reinterpret_cast<char*>(&other->sort_by_));
}

::PROTOBUF_NAMESPACE_ID::Metadata FilterConfig::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[35]);
}

// ===================================================================

class WarrantFilterListResponse::_Internal {
 public:
};

WarrantFilterListResponse::WarrantFilterListResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
  warrant_list_(arena) {
  SharedCtor();
  // @@protoc_insertion_point(arena_constructor:longbridge.quote.v1.WarrantFilterListResponse)
}
WarrantFilterListResponse::WarrantFilterListResponse(const WarrantFilterListResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      warrant_list_(from.warrant_list_) {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  total_count_ = from.total_count_;
  // @@protoc_insertion_point(copy_constructor:longbridge.quote.v1.WarrantFilterListResponse)
}

inline void WarrantFilterListResponse::SharedCtor() {
total_count_ = 0;
}

WarrantFilterListResponse::~WarrantFilterListResponse() {
  // @@protoc_insertion_point(destructor:longbridge.quote.v1.WarrantFilterListResponse)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void WarrantFilterListResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
}

void WarrantFilterListResponse::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void WarrantFilterListResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridge.quote.v1.WarrantFilterListResponse)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  warrant_list_.Clear();
  total_count_ = 0;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* WarrantFilterListResponse::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // repeated .longbridge.quote.v1.FilterWarrant warrant_list = 1 [json_name = "warrantList"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_warrant_list(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr));
        } else
          goto handle_unusual;
        continue;
      // int32 total_count = 2 [json_name = "totalCount"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) {
          total_count_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* WarrantFilterListResponse::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridge.quote.v1.WarrantFilterListResponse)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated .longbridge.quote.v1.FilterWarrant warrant_list = 1 [json_name = "warrantList"];
  for (unsigned i = 0,
      n = static_cast<unsigned>(this->_internal_warrant_list_size()); i < n; i++) {
    const auto& repfield = this->_internal_warrant_list(i);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(1, repfield, repfield.GetCachedSize(), target, stream);
  }

  // int32 total_count = 2 [json_name = "totalCount"];
  if (this->_internal_total_count() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt32ToArray(2, this->_internal_total_count(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridge.quote.v1.WarrantFilterListResponse)
  return target;
}

size_t WarrantFilterListResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridge.quote.v1.WarrantFilterListResponse)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated .longbridge.quote.v1.FilterWarrant warrant_list = 1 [json_name = "warrantList"];
  total_size += 1UL * this->_internal_warrant_list_size();
  for (const auto& msg : this->warrant_list_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  // int32 total_count = 2 [json_name = "totalCount"];
  if (this->_internal_total_count() != 0) {
    total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(this->_internal_total_count());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData WarrantFilterListResponse::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    WarrantFilterListResponse::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*WarrantFilterListResponse::GetClassData() const { return &_class_data_; }

void WarrantFilterListResponse::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<WarrantFilterListResponse *>(to)->MergeFrom(
      static_cast<const WarrantFilterListResponse &>(from));
}


void WarrantFilterListResponse::MergeFrom(const WarrantFilterListResponse& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:longbridge.quote.v1.WarrantFilterListResponse)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  warrant_list_.MergeFrom(from.warrant_list_);
  if (from._internal_total_count() != 0) {
    _internal_set_total_count(from._internal_total_count());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void WarrantFilterListResponse::CopyFrom(const WarrantFilterListResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridge.quote.v1.WarrantFilterListResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool WarrantFilterListResponse::IsInitialized() const {
  return true;
}

void WarrantFilterListResponse::InternalSwap(WarrantFilterListResponse* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  warrant_list_.InternalSwap(&other->warrant_list_);
  swap(total_count_, other->total_count_);
}

::PROTOBUF_NAMESPACE_ID::Metadata WarrantFilterListResponse::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[36]);
}

// ===================================================================

class FilterWarrant::_Internal {
 public:
};

FilterWarrant::FilterWarrant(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor();
  // @@protoc_insertion_point(arena_constructor:longbridge.quote.v1.FilterWarrant)
}
FilterWarrant::FilterWarrant(const FilterWarrant& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  symbol_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    symbol_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_symbol().empty()) {
    symbol_.Set(from._internal_symbol(), 
      GetArenaForAllocation());
  }
  name_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    name_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_name().empty()) {
    name_.Set(from._internal_name(), 
      GetArenaForAllocation());
  }
  last_done_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    last_done_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_last_done().empty()) {
    last_done_.Set(from._internal_last_done(), 
      GetArenaForAllocation());
  }
  change_rate_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    change_rate_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_change_rate().empty()) {
    change_rate_.Set(from._internal_change_rate(), 
      GetArenaForAllocation());
  }
  change_val_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    change_val_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_change_val().empty()) {
    change_val_.Set(from._internal_change_val(), 
      GetArenaForAllocation());
  }
  turnover_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    turnover_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_turnover().empty()) {
    turnover_.Set(from._internal_turnover(), 
      GetArenaForAllocation());
  }
  expiry_date_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    expiry_date_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_expiry_date().empty()) {
    expiry_date_.Set(from._internal_expiry_date(), 
      GetArenaForAllocation());
  }
  strike_price_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    strike_price_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_strike_price().empty()) {
    strike_price_.Set(from._internal_strike_price(), 
      GetArenaForAllocation());
  }
  upper_strike_price_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    upper_strike_price_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_upper_strike_price().empty()) {
    upper_strike_price_.Set(from._internal_upper_strike_price(), 
      GetArenaForAllocation());
  }
  lower_strike_price_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    lower_strike_price_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_lower_strike_price().empty()) {
    lower_strike_price_.Set(from._internal_lower_strike_price(), 
      GetArenaForAllocation());
  }
  outstanding_qty_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    outstanding_qty_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_outstanding_qty().empty()) {
    outstanding_qty_.Set(from._internal_outstanding_qty(), 
      GetArenaForAllocation());
  }
  outstanding_ratio_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    outstanding_ratio_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_outstanding_ratio().empty()) {
    outstanding_ratio_.Set(from._internal_outstanding_ratio(), 
      GetArenaForAllocation());
  }
  premium_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    premium_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_premium().empty()) {
    premium_.Set(from._internal_premium(), 
      GetArenaForAllocation());
  }
  itm_otm_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    itm_otm_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_itm_otm().empty()) {
    itm_otm_.Set(from._internal_itm_otm(), 
      GetArenaForAllocation());
  }
  implied_volatility_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    implied_volatility_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_implied_volatility().empty()) {
    implied_volatility_.Set(from._internal_implied_volatility(), 
      GetArenaForAllocation());
  }
  delta_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    delta_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_delta().empty()) {
    delta_.Set(from._internal_delta(), 
      GetArenaForAllocation());
  }
  call_price_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    call_price_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_call_price().empty()) {
    call_price_.Set(from._internal_call_price(), 
      GetArenaForAllocation());
  }
  to_call_price_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    to_call_price_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_to_call_price().empty()) {
    to_call_price_.Set(from._internal_to_call_price(), 
      GetArenaForAllocation());
  }
  effective_leverage_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    effective_leverage_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_effective_leverage().empty()) {
    effective_leverage_.Set(from._internal_effective_leverage(), 
      GetArenaForAllocation());
  }
  leverage_ratio_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    leverage_ratio_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_leverage_ratio().empty()) {
    leverage_ratio_.Set(from._internal_leverage_ratio(), 
      GetArenaForAllocation());
  }
  conversion_ratio_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    conversion_ratio_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_conversion_ratio().empty()) {
    conversion_ratio_.Set(from._internal_conversion_ratio(), 
      GetArenaForAllocation());
  }
  balance_point_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    balance_point_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_balance_point().empty()) {
    balance_point_.Set(from._internal_balance_point(), 
      GetArenaForAllocation());
  }
  ::memcpy(&volume_, &from.volume_,
    static_cast<size_t>(reinterpret_cast<char*>(&type_) -
    reinterpret_cast<char*>(&volume_)) + sizeof(type_));
  // @@protoc_insertion_point(copy_constructor:longbridge.quote.v1.FilterWarrant)
}

inline void FilterWarrant::SharedCtor() {
symbol_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  symbol_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
name_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  name_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
last_done_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  last_done_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
change_rate_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  change_rate_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
change_val_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  change_val_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
turnover_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  turnover_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
expiry_date_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  expiry_date_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
strike_price_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  strike_price_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
upper_strike_price_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  upper_strike_price_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
lower_strike_price_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  lower_strike_price_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
outstanding_qty_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  outstanding_qty_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
outstanding_ratio_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  outstanding_ratio_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
premium_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  premium_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
itm_otm_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  itm_otm_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
implied_volatility_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  implied_volatility_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
delta_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  delta_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
call_price_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  call_price_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
to_call_price_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  to_call_price_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
effective_leverage_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  effective_leverage_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
leverage_ratio_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  leverage_ratio_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
conversion_ratio_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  conversion_ratio_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
balance_point_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  balance_point_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
    reinterpret_cast<char*>(&volume_) - reinterpret_cast<char*>(this)),
    0, static_cast<size_t>(reinterpret_cast<char*>(&type_) -
    reinterpret_cast<char*>(&volume_)) + sizeof(type_));
}

FilterWarrant::~FilterWarrant() {
  // @@protoc_insertion_point(destructor:longbridge.quote.v1.FilterWarrant)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void FilterWarrant::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  symbol_.Destroy();
  name_.Destroy();
  last_done_.Destroy();
  change_rate_.Destroy();
  change_val_.Destroy();
  turnover_.Destroy();
  expiry_date_.Destroy();
  strike_price_.Destroy();
  upper_strike_price_.Destroy();
  lower_strike_price_.Destroy();
  outstanding_qty_.Destroy();
  outstanding_ratio_.Destroy();
  premium_.Destroy();
  itm_otm_.Destroy();
  implied_volatility_.Destroy();
  delta_.Destroy();
  call_price_.Destroy();
  to_call_price_.Destroy();
  effective_leverage_.Destroy();
  leverage_ratio_.Destroy();
  conversion_ratio_.Destroy();
  balance_point_.Destroy();
}

void FilterWarrant::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void FilterWarrant::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridge.quote.v1.FilterWarrant)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  symbol_.ClearToEmpty();
  name_.ClearToEmpty();
  last_done_.ClearToEmpty();
  change_rate_.ClearToEmpty();
  change_val_.ClearToEmpty();
  turnover_.ClearToEmpty();
  expiry_date_.ClearToEmpty();
  strike_price_.ClearToEmpty();
  upper_strike_price_.ClearToEmpty();
  lower_strike_price_.ClearToEmpty();
  outstanding_qty_.ClearToEmpty();
  outstanding_ratio_.ClearToEmpty();
  premium_.ClearToEmpty();
  itm_otm_.ClearToEmpty();
  implied_volatility_.ClearToEmpty();
  delta_.ClearToEmpty();
  call_price_.ClearToEmpty();
  to_call_price_.ClearToEmpty();
  effective_leverage_.ClearToEmpty();
  leverage_ratio_.ClearToEmpty();
  conversion_ratio_.ClearToEmpty();
  balance_point_.ClearToEmpty();
  ::memset(&volume_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&type_) -
      reinterpret_cast<char*>(&volume_)) + sizeof(type_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* FilterWarrant::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string symbol = 1 [json_name = "symbol"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_symbol();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.FilterWarrant.symbol"));
        } else
          goto handle_unusual;
        continue;
      // string name = 2 [json_name = "name"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
          auto str = _internal_mutable_name();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.FilterWarrant.name"));
        } else
          goto handle_unusual;
        continue;
      // string last_done = 3 [json_name = "lastDone"];
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 26)) {
          auto str = _internal_mutable_last_done();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.FilterWarrant.last_done"));
        } else
          goto handle_unusual;
        continue;
      // string change_rate = 4 [json_name = "changeRate"];
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 34)) {
          auto str = _internal_mutable_change_rate();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.FilterWarrant.change_rate"));
        } else
          goto handle_unusual;
        continue;
      // string change_val = 5 [json_name = "changeVal"];
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 42)) {
          auto str = _internal_mutable_change_val();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.FilterWarrant.change_val"));
        } else
          goto handle_unusual;
        continue;
      // int64 volume = 6 [json_name = "volume"];
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 48)) {
          volume_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string turnover = 7 [json_name = "turnover"];
      case 7:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 58)) {
          auto str = _internal_mutable_turnover();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.FilterWarrant.turnover"));
        } else
          goto handle_unusual;
        continue;
      // string expiry_date = 8 [json_name = "expiryDate"];
      case 8:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 66)) {
          auto str = _internal_mutable_expiry_date();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.FilterWarrant.expiry_date"));
        } else
          goto handle_unusual;
        continue;
      // string strike_price = 9 [json_name = "strikePrice"];
      case 9:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 74)) {
          auto str = _internal_mutable_strike_price();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.FilterWarrant.strike_price"));
        } else
          goto handle_unusual;
        continue;
      // string upper_strike_price = 10 [json_name = "upperStrikePrice"];
      case 10:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 82)) {
          auto str = _internal_mutable_upper_strike_price();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.FilterWarrant.upper_strike_price"));
        } else
          goto handle_unusual;
        continue;
      // string lower_strike_price = 11 [json_name = "lowerStrikePrice"];
      case 11:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 90)) {
          auto str = _internal_mutable_lower_strike_price();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.FilterWarrant.lower_strike_price"));
        } else
          goto handle_unusual;
        continue;
      // string outstanding_qty = 12 [json_name = "outstandingQty"];
      case 12:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 98)) {
          auto str = _internal_mutable_outstanding_qty();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.FilterWarrant.outstanding_qty"));
        } else
          goto handle_unusual;
        continue;
      // string outstanding_ratio = 13 [json_name = "outstandingRatio"];
      case 13:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 106)) {
          auto str = _internal_mutable_outstanding_ratio();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.FilterWarrant.outstanding_ratio"));
        } else
          goto handle_unusual;
        continue;
      // string premium = 14 [json_name = "premium"];
      case 14:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 114)) {
          auto str = _internal_mutable_premium();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.FilterWarrant.premium"));
        } else
          goto handle_unusual;
        continue;
      // string itm_otm = 15 [json_name = "itmOtm"];
      case 15:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 122)) {
          auto str = _internal_mutable_itm_otm();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.FilterWarrant.itm_otm"));
        } else
          goto handle_unusual;
        continue;
      // string implied_volatility = 16 [json_name = "impliedVolatility"];
      case 16:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 130)) {
          auto str = _internal_mutable_implied_volatility();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.FilterWarrant.implied_volatility"));
        } else
          goto handle_unusual;
        continue;
      // string delta = 17 [json_name = "delta"];
      case 17:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 138)) {
          auto str = _internal_mutable_delta();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.FilterWarrant.delta"));
        } else
          goto handle_unusual;
        continue;
      // string call_price = 18 [json_name = "callPrice"];
      case 18:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 146)) {
          auto str = _internal_mutable_call_price();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.FilterWarrant.call_price"));
        } else
          goto handle_unusual;
        continue;
      // string to_call_price = 19 [json_name = "toCallPrice"];
      case 19:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 154)) {
          auto str = _internal_mutable_to_call_price();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.FilterWarrant.to_call_price"));
        } else
          goto handle_unusual;
        continue;
      // string effective_leverage = 20 [json_name = "effectiveLeverage"];
      case 20:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 162)) {
          auto str = _internal_mutable_effective_leverage();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.FilterWarrant.effective_leverage"));
        } else
          goto handle_unusual;
        continue;
      // string leverage_ratio = 21 [json_name = "leverageRatio"];
      case 21:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 170)) {
          auto str = _internal_mutable_leverage_ratio();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.FilterWarrant.leverage_ratio"));
        } else
          goto handle_unusual;
        continue;
      // string conversion_ratio = 22 [json_name = "conversionRatio"];
      case 22:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 178)) {
          auto str = _internal_mutable_conversion_ratio();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.FilterWarrant.conversion_ratio"));
        } else
          goto handle_unusual;
        continue;
      // string balance_point = 23 [json_name = "balancePoint"];
      case 23:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 186)) {
          auto str = _internal_mutable_balance_point();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.FilterWarrant.balance_point"));
        } else
          goto handle_unusual;
        continue;
      // int32 status = 24 [json_name = "status"];
      case 24:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 192)) {
          status_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int32 type = 25 [json_name = "type"];
      case 25:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 200)) {
          type_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* FilterWarrant::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridge.quote.v1.FilterWarrant)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_symbol().data(), static_cast<int>(this->_internal_symbol().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.FilterWarrant.symbol");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_symbol(), target);
  }

  // string name = 2 [json_name = "name"];
  if (!this->_internal_name().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_name().data(), static_cast<int>(this->_internal_name().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.FilterWarrant.name");
    target = stream->WriteStringMaybeAliased(
        2, this->_internal_name(), target);
  }

  // string last_done = 3 [json_name = "lastDone"];
  if (!this->_internal_last_done().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_last_done().data(), static_cast<int>(this->_internal_last_done().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.FilterWarrant.last_done");
    target = stream->WriteStringMaybeAliased(
        3, this->_internal_last_done(), target);
  }

  // string change_rate = 4 [json_name = "changeRate"];
  if (!this->_internal_change_rate().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_change_rate().data(), static_cast<int>(this->_internal_change_rate().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.FilterWarrant.change_rate");
    target = stream->WriteStringMaybeAliased(
        4, this->_internal_change_rate(), target);
  }

  // string change_val = 5 [json_name = "changeVal"];
  if (!this->_internal_change_val().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_change_val().data(), static_cast<int>(this->_internal_change_val().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.FilterWarrant.change_val");
    target = stream->WriteStringMaybeAliased(
        5, this->_internal_change_val(), target);
  }

  // int64 volume = 6 [json_name = "volume"];
  if (this->_internal_volume() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt64ToArray(6, this->_internal_volume(), target);
  }

  // string turnover = 7 [json_name = "turnover"];
  if (!this->_internal_turnover().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_turnover().data(), static_cast<int>(this->_internal_turnover().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.FilterWarrant.turnover");
    target = stream->WriteStringMaybeAliased(
        7, this->_internal_turnover(), target);
  }

  // string expiry_date = 8 [json_name = "expiryDate"];
  if (!this->_internal_expiry_date().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_expiry_date().data(), static_cast<int>(this->_internal_expiry_date().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.FilterWarrant.expiry_date");
    target = stream->WriteStringMaybeAliased(
        8, this->_internal_expiry_date(), target);
  }

  // string strike_price = 9 [json_name = "strikePrice"];
  if (!this->_internal_strike_price().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_strike_price().data(), static_cast<int>(this->_internal_strike_price().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.FilterWarrant.strike_price");
    target = stream->WriteStringMaybeAliased(
        9, this->_internal_strike_price(), target);
  }

  // string upper_strike_price = 10 [json_name = "upperStrikePrice"];
  if (!this->_internal_upper_strike_price().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_upper_strike_price().data(), static_cast<int>(this->_internal_upper_strike_price().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.FilterWarrant.upper_strike_price");
    target = stream->WriteStringMaybeAliased(
        10, this->_internal_upper_strike_price(), target);
  }

  // string lower_strike_price = 11 [json_name = "lowerStrikePrice"];
  if (!this->_internal_lower_strike_price().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_lower_strike_price().data(), static_cast<int>(this->_internal_lower_strike_price().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.FilterWarrant.lower_strike_price");
    target = stream->WriteStringMaybeAliased(
        11, this->_internal_lower_strike_price(), target);
  }

  // string outstanding_qty = 12 [json_name = "outstandingQty"];
  if (!this->_internal_outstanding_qty().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_outstanding_qty().data(), static_cast<int>(this->_internal_outstanding_qty().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.FilterWarrant.outstanding_qty");
    target = stream->WriteStringMaybeAliased(
        12, this->_internal_outstanding_qty(), target);
  }

  // string outstanding_ratio = 13 [json_name = "outstandingRatio"];
  if (!this->_internal_outstanding_ratio().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_outstanding_ratio().data(), static_cast<int>(this->_internal_outstanding_ratio().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.FilterWarrant.outstanding_ratio");
    target = stream->WriteStringMaybeAliased(
        13, this->_internal_outstanding_ratio(), target);
  }

  // string premium = 14 [json_name = "premium"];
  if (!this->_internal_premium().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_premium().data(), static_cast<int>(this->_internal_premium().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.FilterWarrant.premium");
    target = stream->WriteStringMaybeAliased(
        14, this->_internal_premium(), target);
  }

  // string itm_otm = 15 [json_name = "itmOtm"];
  if (!this->_internal_itm_otm().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_itm_otm().data(), static_cast<int>(this->_internal_itm_otm().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.FilterWarrant.itm_otm");
    target = stream->WriteStringMaybeAliased(
        15, this->_internal_itm_otm(), target);
  }

  // string implied_volatility = 16 [json_name = "impliedVolatility"];
  if (!this->_internal_implied_volatility().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_implied_volatility().data(), static_cast<int>(this->_internal_implied_volatility().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.FilterWarrant.implied_volatility");
    target = stream->WriteStringMaybeAliased(
        16, this->_internal_implied_volatility(), target);
  }

  // string delta = 17 [json_name = "delta"];
  if (!this->_internal_delta().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_delta().data(), static_cast<int>(this->_internal_delta().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.FilterWarrant.delta");
    target = stream->WriteStringMaybeAliased(
        17, this->_internal_delta(), target);
  }

  // string call_price = 18 [json_name = "callPrice"];
  if (!this->_internal_call_price().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_call_price().data(), static_cast<int>(this->_internal_call_price().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.FilterWarrant.call_price");
    target = stream->WriteStringMaybeAliased(
        18, this->_internal_call_price(), target);
  }

  // string to_call_price = 19 [json_name = "toCallPrice"];
  if (!this->_internal_to_call_price().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_to_call_price().data(), static_cast<int>(this->_internal_to_call_price().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.FilterWarrant.to_call_price");
    target = stream->WriteStringMaybeAliased(
        19, this->_internal_to_call_price(), target);
  }

  // string effective_leverage = 20 [json_name = "effectiveLeverage"];
  if (!this->_internal_effective_leverage().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_effective_leverage().data(), static_cast<int>(this->_internal_effective_leverage().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.FilterWarrant.effective_leverage");
    target = stream->WriteStringMaybeAliased(
        20, this->_internal_effective_leverage(), target);
  }

  // string leverage_ratio = 21 [json_name = "leverageRatio"];
  if (!this->_internal_leverage_ratio().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_leverage_ratio().data(), static_cast<int>(this->_internal_leverage_ratio().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.FilterWarrant.leverage_ratio");
    target = stream->WriteStringMaybeAliased(
        21, this->_internal_leverage_ratio(), target);
  }

  // string conversion_ratio = 22 [json_name = "conversionRatio"];
  if (!this->_internal_conversion_ratio().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_conversion_ratio().data(), static_cast<int>(this->_internal_conversion_ratio().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.FilterWarrant.conversion_ratio");
    target = stream->WriteStringMaybeAliased(
        22, this->_internal_conversion_ratio(), target);
  }

  // string balance_point = 23 [json_name = "balancePoint"];
  if (!this->_internal_balance_point().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_balance_point().data(), static_cast<int>(this->_internal_balance_point().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.FilterWarrant.balance_point");
    target = stream->WriteStringMaybeAliased(
        23, this->_internal_balance_point(), target);
  }

  // int32 status = 24 [json_name = "status"];
  if (this->_internal_status() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt32ToArray(24, this->_internal_status(), target);
  }

  // int32 type = 25 [json_name = "type"];
  if (this->_internal_type() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt32ToArray(25, this->_internal_type(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridge.quote.v1.FilterWarrant)
  return target;
}

size_t FilterWarrant::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridge.quote.v1.FilterWarrant)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_symbol());
  }

  // string name = 2 [json_name = "name"];
  if (!this->_internal_name().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_name());
  }

  // string last_done = 3 [json_name = "lastDone"];
  if (!this->_internal_last_done().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_last_done());
  }

  // string change_rate = 4 [json_name = "changeRate"];
  if (!this->_internal_change_rate().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_change_rate());
  }

  // string change_val = 5 [json_name = "changeVal"];
  if (!this->_internal_change_val().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_change_val());
  }

  // string turnover = 7 [json_name = "turnover"];
  if (!this->_internal_turnover().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_turnover());
  }

  // string expiry_date = 8 [json_name = "expiryDate"];
  if (!this->_internal_expiry_date().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_expiry_date());
  }

  // string strike_price = 9 [json_name = "strikePrice"];
  if (!this->_internal_strike_price().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_strike_price());
  }

  // string upper_strike_price = 10 [json_name = "upperStrikePrice"];
  if (!this->_internal_upper_strike_price().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_upper_strike_price());
  }

  // string lower_strike_price = 11 [json_name = "lowerStrikePrice"];
  if (!this->_internal_lower_strike_price().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_lower_strike_price());
  }

  // string outstanding_qty = 12 [json_name = "outstandingQty"];
  if (!this->_internal_outstanding_qty().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_outstanding_qty());
  }

  // string outstanding_ratio = 13 [json_name = "outstandingRatio"];
  if (!this->_internal_outstanding_ratio().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_outstanding_ratio());
  }

  // string premium = 14 [json_name = "premium"];
  if (!this->_internal_premium().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_premium());
  }

  // string itm_otm = 15 [json_name = "itmOtm"];
  if (!this->_internal_itm_otm().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_itm_otm());
  }

  // string implied_volatility = 16 [json_name = "impliedVolatility"];
  if (!this->_internal_implied_volatility().empty()) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_implied_volatility());
  }

  // string delta = 17 [json_name = "delta"];
  if (!this->_internal_delta().empty()) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_delta());
  }

  // string call_price = 18 [json_name = "callPrice"];
  if (!this->_internal_call_price().empty()) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_call_price());
  }

  // string to_call_price = 19 [json_name = "toCallPrice"];
  if (!this->_internal_to_call_price().empty()) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_to_call_price());
  }

  // string effective_leverage = 20 [json_name = "effectiveLeverage"];
  if (!this->_internal_effective_leverage().empty()) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_effective_leverage());
  }

  // string leverage_ratio = 21 [json_name = "leverageRatio"];
  if (!this->_internal_leverage_ratio().empty()) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_leverage_ratio());
  }

  // string conversion_ratio = 22 [json_name = "conversionRatio"];
  if (!this->_internal_conversion_ratio().empty()) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_conversion_ratio());
  }

  // string balance_point = 23 [json_name = "balancePoint"];
  if (!this->_internal_balance_point().empty()) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_balance_point());
  }

  // int64 volume = 6 [json_name = "volume"];
  if (this->_internal_volume() != 0) {
    total_size += ::_pbi::WireFormatLite::Int64SizePlusOne(this->_internal_volume());
  }

  // int32 status = 24 [json_name = "status"];
  if (this->_internal_status() != 0) {
    total_size += 2 +
      ::_pbi::WireFormatLite::Int32Size(
        this->_internal_status());
  }

  // int32 type = 25 [json_name = "type"];
  if (this->_internal_type() != 0) {
    total_size += 2 +
      ::_pbi::WireFormatLite::Int32Size(
        this->_internal_type());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData FilterWarrant::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    FilterWarrant::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*FilterWarrant::GetClassData() const { return &_class_data_; }

void FilterWarrant::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<FilterWarrant *>(to)->MergeFrom(
      static_cast<const FilterWarrant &>(from));
}


void FilterWarrant::MergeFrom(const FilterWarrant& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:longbridge.quote.v1.FilterWarrant)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (!from._internal_symbol().empty()) {
    _internal_set_symbol(from._internal_symbol());
  }
  if (!from._internal_name().empty()) {
    _internal_set_name(from._internal_name());
  }
  if (!from._internal_last_done().empty()) {
    _internal_set_last_done(from._internal_last_done());
  }
  if (!from._internal_change_rate().empty()) {
    _internal_set_change_rate(from._internal_change_rate());
  }
  if (!from._internal_change_val().empty()) {
    _internal_set_change_val(from._internal_change_val());
  }
  if (!from._internal_turnover().empty()) {
    _internal_set_turnover(from._internal_turnover());
  }
  if (!from._internal_expiry_date().empty()) {
    _internal_set_expiry_date(from._internal_expiry_date());
  }
  if (!from._internal_strike_price().empty()) {
    _internal_set_strike_price(from._internal_strike_price());
  }
  if (!from._internal_upper_strike_price().empty()) {
    _internal_set_upper_strike_price(from._internal_upper_strike_price());
  }
  if (!from._internal_lower_strike_price().empty()) {
    _internal_set_lower_strike_price(from._internal_lower_strike_price());
  }
  if (!from._internal_outstanding_qty().empty()) {
    _internal_set_outstanding_qty(from._internal_outstanding_qty());
  }
  if (!from._internal_outstanding_ratio().empty()) {
    _internal_set_outstanding_ratio(from._internal_outstanding_ratio());
  }
  if (!from._internal_premium().empty()) {
    _internal_set_premium(from._internal_premium());
  }
  if (!from._internal_itm_otm().empty()) {
    _internal_set_itm_otm(from._internal_itm_otm());
  }
  if (!from._internal_implied_volatility().empty()) {
    _internal_set_implied_volatility(from._internal_implied_volatility());
  }
  if (!from._internal_delta().empty()) {
    _internal_set_delta(from._internal_delta());
  }
  if (!from._internal_call_price().empty()) {
    _internal_set_call_price(from._internal_call_price());
  }
  if (!from._internal_to_call_price().empty()) {
    _internal_set_to_call_price(from._internal_to_call_price());
  }
  if (!from._internal_effective_leverage().empty()) {
    _internal_set_effective_leverage(from._internal_effective_leverage());
  }
  if (!from._internal_leverage_ratio().empty()) {
    _internal_set_leverage_ratio(from._internal_leverage_ratio());
  }
  if (!from._internal_conversion_ratio().empty()) {
    _internal_set_conversion_ratio(from._internal_conversion_ratio());
  }
  if (!from._internal_balance_point().empty()) {
    _internal_set_balance_point(from._internal_balance_point());
  }
  if (from._internal_volume() != 0) {
    _internal_set_volume(from._internal_volume());
  }
  if (from._internal_status() != 0) {
    _internal_set_status(from._internal_status());
  }
  if (from._internal_type() != 0) {
    _internal_set_type(from._internal_type());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void FilterWarrant::CopyFrom(const FilterWarrant& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridge.quote.v1.FilterWarrant)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool FilterWarrant::IsInitialized() const {
  return true;
}

void FilterWarrant::InternalSwap(FilterWarrant* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &symbol_, lhs_arena,
      &other->symbol_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &name_, lhs_arena,
      &other->name_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &last_done_, lhs_arena,
      &other->last_done_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &change_rate_, lhs_arena,
      &other->change_rate_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &change_val_, lhs_arena,
      &other->change_val_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &turnover_, lhs_arena,
      &other->turnover_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &expiry_date_, lhs_arena,
      &other->expiry_date_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &strike_price_, lhs_arena,
      &other->strike_price_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &upper_strike_price_, lhs_arena,
      &other->upper_strike_price_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &lower_strike_price_, lhs_arena,
      &other->lower_strike_price_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &outstanding_qty_, lhs_arena,
      &other->outstanding_qty_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &outstanding_ratio_, lhs_arena,
      &other->outstanding_ratio_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &premium_, lhs_arena,
      &other->premium_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &itm_otm_, lhs_arena,
      &other->itm_otm_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &implied_volatility_, lhs_arena,
      &other->implied_volatility_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &delta_, lhs_arena,
      &other->delta_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &call_price_, lhs_arena,
      &other->call_price_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &to_call_price_, lhs_arena,
      &other->to_call_price_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &effective_leverage_, lhs_arena,
      &other->effective_leverage_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &leverage_ratio_, lhs_arena,
      &other->leverage_ratio_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &conversion_ratio_, lhs_arena,
      &other->conversion_ratio_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &balance_point_, lhs_arena,
      &other->balance_point_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(FilterWarrant, type_)
      + sizeof(FilterWarrant::type_)
      - PROTOBUF_FIELD_OFFSET(FilterWarrant, volume_)>(
          reinterpret_cast<char*>(&volume_),
          reinterpret_cast<char*>(&other->volume_));
}

::PROTOBUF_NAMESPACE_ID::Metadata FilterWarrant::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[37]);
}

// ===================================================================

class MarketTradePeriodResponse::_Internal {
 public:
};

MarketTradePeriodResponse::MarketTradePeriodResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
  market_trade_session_(arena) {
  SharedCtor();
  // @@protoc_insertion_point(arena_constructor:longbridge.quote.v1.MarketTradePeriodResponse)
}
MarketTradePeriodResponse::MarketTradePeriodResponse(const MarketTradePeriodResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      market_trade_session_(from.market_trade_session_) {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:longbridge.quote.v1.MarketTradePeriodResponse)
}

inline void MarketTradePeriodResponse::SharedCtor() {
}

MarketTradePeriodResponse::~MarketTradePeriodResponse() {
  // @@protoc_insertion_point(destructor:longbridge.quote.v1.MarketTradePeriodResponse)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void MarketTradePeriodResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
}

void MarketTradePeriodResponse::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void MarketTradePeriodResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridge.quote.v1.MarketTradePeriodResponse)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  market_trade_session_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* MarketTradePeriodResponse::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // repeated .longbridge.quote.v1.MarketTradePeriod market_trade_session = 1 [json_name = "marketTradeSession"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_market_trade_session(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* MarketTradePeriodResponse::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridge.quote.v1.MarketTradePeriodResponse)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated .longbridge.quote.v1.MarketTradePeriod market_trade_session = 1 [json_name = "marketTradeSession"];
  for (unsigned i = 0,
      n = static_cast<unsigned>(this->_internal_market_trade_session_size()); i < n; i++) {
    const auto& repfield = this->_internal_market_trade_session(i);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(1, repfield, repfield.GetCachedSize(), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridge.quote.v1.MarketTradePeriodResponse)
  return target;
}

size_t MarketTradePeriodResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridge.quote.v1.MarketTradePeriodResponse)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated .longbridge.quote.v1.MarketTradePeriod market_trade_session = 1 [json_name = "marketTradeSession"];
  total_size += 1UL * this->_internal_market_trade_session_size();
  for (const auto& msg : this->market_trade_session_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData MarketTradePeriodResponse::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    MarketTradePeriodResponse::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*MarketTradePeriodResponse::GetClassData() const { return &_class_data_; }

void MarketTradePeriodResponse::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<MarketTradePeriodResponse *>(to)->MergeFrom(
      static_cast<const MarketTradePeriodResponse &>(from));
}


void MarketTradePeriodResponse::MergeFrom(const MarketTradePeriodResponse& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:longbridge.quote.v1.MarketTradePeriodResponse)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  market_trade_session_.MergeFrom(from.market_trade_session_);
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void MarketTradePeriodResponse::CopyFrom(const MarketTradePeriodResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridge.quote.v1.MarketTradePeriodResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool MarketTradePeriodResponse::IsInitialized() const {
  return true;
}

void MarketTradePeriodResponse::InternalSwap(MarketTradePeriodResponse* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  market_trade_session_.InternalSwap(&other->market_trade_session_);
}

::PROTOBUF_NAMESPACE_ID::Metadata MarketTradePeriodResponse::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[38]);
}

// ===================================================================

class MarketTradePeriod::_Internal {
 public:
};

MarketTradePeriod::MarketTradePeriod(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
  trade_session_(arena) {
  SharedCtor();
  // @@protoc_insertion_point(arena_constructor:longbridge.quote.v1.MarketTradePeriod)
}
MarketTradePeriod::MarketTradePeriod(const MarketTradePeriod& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      trade_session_(from.trade_session_) {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  market_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    market_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_market().empty()) {
    market_.Set(from._internal_market(), 
      GetArenaForAllocation());
  }
  // @@protoc_insertion_point(copy_constructor:longbridge.quote.v1.MarketTradePeriod)
}

inline void MarketTradePeriod::SharedCtor() {
market_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  market_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
}

MarketTradePeriod::~MarketTradePeriod() {
  // @@protoc_insertion_point(destructor:longbridge.quote.v1.MarketTradePeriod)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void MarketTradePeriod::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  market_.Destroy();
}

void MarketTradePeriod::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void MarketTradePeriod::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridge.quote.v1.MarketTradePeriod)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  trade_session_.Clear();
  market_.ClearToEmpty();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* MarketTradePeriod::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string market = 1 [json_name = "market"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_market();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.MarketTradePeriod.market"));
        } else
          goto handle_unusual;
        continue;
      // repeated .longbridge.quote.v1.TradePeriod trade_session = 2 [json_name = "tradeSession"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_trade_session(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<18>(ptr));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* MarketTradePeriod::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridge.quote.v1.MarketTradePeriod)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string market = 1 [json_name = "market"];
  if (!this->_internal_market().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_market().data(), static_cast<int>(this->_internal_market().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.MarketTradePeriod.market");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_market(), target);
  }

  // repeated .longbridge.quote.v1.TradePeriod trade_session = 2 [json_name = "tradeSession"];
  for (unsigned i = 0,
      n = static_cast<unsigned>(this->_internal_trade_session_size()); i < n; i++) {
    const auto& repfield = this->_internal_trade_session(i);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(2, repfield, repfield.GetCachedSize(), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridge.quote.v1.MarketTradePeriod)
  return target;
}

size_t MarketTradePeriod::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridge.quote.v1.MarketTradePeriod)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated .longbridge.quote.v1.TradePeriod trade_session = 2 [json_name = "tradeSession"];
  total_size += 1UL * this->_internal_trade_session_size();
  for (const auto& msg : this->trade_session_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  // string market = 1 [json_name = "market"];
  if (!this->_internal_market().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_market());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData MarketTradePeriod::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    MarketTradePeriod::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*MarketTradePeriod::GetClassData() const { return &_class_data_; }

void MarketTradePeriod::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<MarketTradePeriod *>(to)->MergeFrom(
      static_cast<const MarketTradePeriod &>(from));
}


void MarketTradePeriod::MergeFrom(const MarketTradePeriod& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:longbridge.quote.v1.MarketTradePeriod)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  trade_session_.MergeFrom(from.trade_session_);
  if (!from._internal_market().empty()) {
    _internal_set_market(from._internal_market());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void MarketTradePeriod::CopyFrom(const MarketTradePeriod& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridge.quote.v1.MarketTradePeriod)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool MarketTradePeriod::IsInitialized() const {
  return true;
}

void MarketTradePeriod::InternalSwap(MarketTradePeriod* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  trade_session_.InternalSwap(&other->trade_session_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &market_, lhs_arena,
      &other->market_, rhs_arena
  );
}

::PROTOBUF_NAMESPACE_ID::Metadata MarketTradePeriod::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[39]);
}

// ===================================================================

class TradePeriod::_Internal {
 public:
};

TradePeriod::TradePeriod(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor();
  // @@protoc_insertion_point(arena_constructor:longbridge.quote.v1.TradePeriod)
}
TradePeriod::TradePeriod(const TradePeriod& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::memcpy(&beg_time_, &from.beg_time_,
    static_cast<size_t>(reinterpret_cast<char*>(&trade_session_) -
    reinterpret_cast<char*>(&beg_time_)) + sizeof(trade_session_));
  // @@protoc_insertion_point(copy_constructor:longbridge.quote.v1.TradePeriod)
}

inline void TradePeriod::SharedCtor() {
::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
    reinterpret_cast<char*>(&beg_time_) - reinterpret_cast<char*>(this)),
    0, static_cast<size_t>(reinterpret_cast<char*>(&trade_session_) -
    reinterpret_cast<char*>(&beg_time_)) + sizeof(trade_session_));
}

TradePeriod::~TradePeriod() {
  // @@protoc_insertion_point(destructor:longbridge.quote.v1.TradePeriod)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void TradePeriod::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
}

void TradePeriod::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void TradePeriod::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridge.quote.v1.TradePeriod)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  ::memset(&beg_time_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&trade_session_) -
      reinterpret_cast<char*>(&beg_time_)) + sizeof(trade_session_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* TradePeriod::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // int32 beg_time = 1 [json_name = "begTime"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 8)) {
          beg_time_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int32 end_time = 2 [json_name = "endTime"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) {
          end_time_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // .longbridge.quote.v1.TradeSession trade_session = 3 [json_name = "tradeSession"];
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 24)) {
          uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          _internal_set_trade_session(static_cast<::longbridge::quote::v1::TradeSession>(val));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* TradePeriod::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridge.quote.v1.TradePeriod)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // int32 beg_time = 1 [json_name = "begTime"];
  if (this->_internal_beg_time() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt32ToArray(1, this->_internal_beg_time(), target);
  }

  // int32 end_time = 2 [json_name = "endTime"];
  if (this->_internal_end_time() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt32ToArray(2, this->_internal_end_time(), target);
  }

  // .longbridge.quote.v1.TradeSession trade_session = 3 [json_name = "tradeSession"];
  if (this->_internal_trade_session() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
      3, this->_internal_trade_session(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridge.quote.v1.TradePeriod)
  return target;
}

size_t TradePeriod::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridge.quote.v1.TradePeriod)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // int32 beg_time = 1 [json_name = "begTime"];
  if (this->_internal_beg_time() != 0) {
    total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(this->_internal_beg_time());
  }

  // int32 end_time = 2 [json_name = "endTime"];
  if (this->_internal_end_time() != 0) {
    total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(this->_internal_end_time());
  }

  // .longbridge.quote.v1.TradeSession trade_session = 3 [json_name = "tradeSession"];
  if (this->_internal_trade_session() != 0) {
    total_size += 1 +
      ::_pbi::WireFormatLite::EnumSize(this->_internal_trade_session());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData TradePeriod::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    TradePeriod::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*TradePeriod::GetClassData() const { return &_class_data_; }

void TradePeriod::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<TradePeriod *>(to)->MergeFrom(
      static_cast<const TradePeriod &>(from));
}


void TradePeriod::MergeFrom(const TradePeriod& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:longbridge.quote.v1.TradePeriod)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (from._internal_beg_time() != 0) {
    _internal_set_beg_time(from._internal_beg_time());
  }
  if (from._internal_end_time() != 0) {
    _internal_set_end_time(from._internal_end_time());
  }
  if (from._internal_trade_session() != 0) {
    _internal_set_trade_session(from._internal_trade_session());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void TradePeriod::CopyFrom(const TradePeriod& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridge.quote.v1.TradePeriod)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool TradePeriod::IsInitialized() const {
  return true;
}

void TradePeriod::InternalSwap(TradePeriod* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(TradePeriod, trade_session_)
      + sizeof(TradePeriod::trade_session_)
      - PROTOBUF_FIELD_OFFSET(TradePeriod, beg_time_)>(
          reinterpret_cast<char*>(&beg_time_),
          reinterpret_cast<char*>(&other->beg_time_));
}

::PROTOBUF_NAMESPACE_ID::Metadata TradePeriod::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[40]);
}

// ===================================================================

class SubscriptionRequest::_Internal {
 public:
};

SubscriptionRequest::SubscriptionRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase(arena, is_message_owned) {
  // @@protoc_insertion_point(arena_constructor:longbridge.quote.v1.SubscriptionRequest)
}
SubscriptionRequest::SubscriptionRequest(const SubscriptionRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:longbridge.quote.v1.SubscriptionRequest)
}





const ::PROTOBUF_NAMESPACE_ID::Message::ClassData SubscriptionRequest::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase::CopyImpl,
    ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase::MergeImpl,
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*SubscriptionRequest::GetClassData() const { return &_class_data_; }







::PROTOBUF_NAMESPACE_ID::Metadata SubscriptionRequest::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[41]);
}

// ===================================================================

class SubscriptionResponse::_Internal {
 public:
};

SubscriptionResponse::SubscriptionResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
  sub_list_(arena) {
  SharedCtor();
  // @@protoc_insertion_point(arena_constructor:longbridge.quote.v1.SubscriptionResponse)
}
SubscriptionResponse::SubscriptionResponse(const SubscriptionResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      sub_list_(from.sub_list_) {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:longbridge.quote.v1.SubscriptionResponse)
}

inline void SubscriptionResponse::SharedCtor() {
}

SubscriptionResponse::~SubscriptionResponse() {
  // @@protoc_insertion_point(destructor:longbridge.quote.v1.SubscriptionResponse)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void SubscriptionResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
}

void SubscriptionResponse::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void SubscriptionResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridge.quote.v1.SubscriptionResponse)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  sub_list_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* SubscriptionResponse::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // repeated .longbridge.quote.v1.SubTypeList sub_list = 1 [json_name = "subList"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_sub_list(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* SubscriptionResponse::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridge.quote.v1.SubscriptionResponse)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated .longbridge.quote.v1.SubTypeList sub_list = 1 [json_name = "subList"];
  for (unsigned i = 0,
      n = static_cast<unsigned>(this->_internal_sub_list_size()); i < n; i++) {
    const auto& repfield = this->_internal_sub_list(i);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(1, repfield, repfield.GetCachedSize(), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridge.quote.v1.SubscriptionResponse)
  return target;
}

size_t SubscriptionResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridge.quote.v1.SubscriptionResponse)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated .longbridge.quote.v1.SubTypeList sub_list = 1 [json_name = "subList"];
  total_size += 1UL * this->_internal_sub_list_size();
  for (const auto& msg : this->sub_list_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData SubscriptionResponse::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    SubscriptionResponse::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*SubscriptionResponse::GetClassData() const { return &_class_data_; }

void SubscriptionResponse::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<SubscriptionResponse *>(to)->MergeFrom(
      static_cast<const SubscriptionResponse &>(from));
}


void SubscriptionResponse::MergeFrom(const SubscriptionResponse& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:longbridge.quote.v1.SubscriptionResponse)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  sub_list_.MergeFrom(from.sub_list_);
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void SubscriptionResponse::CopyFrom(const SubscriptionResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridge.quote.v1.SubscriptionResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool SubscriptionResponse::IsInitialized() const {
  return true;
}

void SubscriptionResponse::InternalSwap(SubscriptionResponse* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  sub_list_.InternalSwap(&other->sub_list_);
}

::PROTOBUF_NAMESPACE_ID::Metadata SubscriptionResponse::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[42]);
}

// ===================================================================

class SubTypeList::_Internal {
 public:
};

SubTypeList::SubTypeList(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
  sub_type_(arena) {
  SharedCtor();
  // @@protoc_insertion_point(arena_constructor:longbridge.quote.v1.SubTypeList)
}
SubTypeList::SubTypeList(const SubTypeList& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      sub_type_(from.sub_type_) {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  symbol_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    symbol_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_symbol().empty()) {
    symbol_.Set(from._internal_symbol(), 
      GetArenaForAllocation());
  }
  // @@protoc_insertion_point(copy_constructor:longbridge.quote.v1.SubTypeList)
}

inline void SubTypeList::SharedCtor() {
symbol_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  symbol_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
}

SubTypeList::~SubTypeList() {
  // @@protoc_insertion_point(destructor:longbridge.quote.v1.SubTypeList)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void SubTypeList::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  symbol_.Destroy();
}

void SubTypeList::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void SubTypeList::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridge.quote.v1.SubTypeList)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  sub_type_.Clear();
  symbol_.ClearToEmpty();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* SubTypeList::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string symbol = 1 [json_name = "symbol"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_symbol();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.SubTypeList.symbol"));
        } else
          goto handle_unusual;
        continue;
      // repeated .longbridge.quote.v1.SubType sub_type = 2 [json_name = "subType"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedEnumParser(_internal_mutable_sub_type(), ptr, ctx);
          CHK_(ptr);
        } else if (static_cast<uint8_t>(tag) == 16) {
          uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          _internal_add_sub_type(static_cast<::longbridge::quote::v1::SubType>(val));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* SubTypeList::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridge.quote.v1.SubTypeList)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_symbol().data(), static_cast<int>(this->_internal_symbol().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.SubTypeList.symbol");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_symbol(), target);
  }

  // repeated .longbridge.quote.v1.SubType sub_type = 2 [json_name = "subType"];
  {
    int byte_size = _sub_type_cached_byte_size_.load(std::memory_order_relaxed);
    if (byte_size > 0) {
      target = stream->WriteEnumPacked(
          2, sub_type_, byte_size, target);
    }
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridge.quote.v1.SubTypeList)
  return target;
}

size_t SubTypeList::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridge.quote.v1.SubTypeList)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated .longbridge.quote.v1.SubType sub_type = 2 [json_name = "subType"];
  {
    size_t data_size = 0;
    unsigned int count = static_cast<unsigned int>(this->_internal_sub_type_size());for (unsigned int i = 0; i < count; i++) {
      data_size += ::_pbi::WireFormatLite::EnumSize(
        this->_internal_sub_type(static_cast<int>(i)));
    }
    if (data_size > 0) {
      total_size += 1 +
        ::_pbi::WireFormatLite::Int32Size(static_cast<int32_t>(data_size));
    }
    int cached_size = ::_pbi::ToCachedSize(data_size);
    _sub_type_cached_byte_size_.store(cached_size,
                                    std::memory_order_relaxed);
    total_size += data_size;
  }

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_symbol());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData SubTypeList::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    SubTypeList::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*SubTypeList::GetClassData() const { return &_class_data_; }

void SubTypeList::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<SubTypeList *>(to)->MergeFrom(
      static_cast<const SubTypeList &>(from));
}


void SubTypeList::MergeFrom(const SubTypeList& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:longbridge.quote.v1.SubTypeList)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  sub_type_.MergeFrom(from.sub_type_);
  if (!from._internal_symbol().empty()) {
    _internal_set_symbol(from._internal_symbol());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void SubTypeList::CopyFrom(const SubTypeList& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridge.quote.v1.SubTypeList)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool SubTypeList::IsInitialized() const {
  return true;
}

void SubTypeList::InternalSwap(SubTypeList* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  sub_type_.InternalSwap(&other->sub_type_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &symbol_, lhs_arena,
      &other->symbol_, rhs_arena
  );
}

::PROTOBUF_NAMESPACE_ID::Metadata SubTypeList::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[43]);
}

// ===================================================================

class SubscribeRequest::_Internal {
 public:
};

SubscribeRequest::SubscribeRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
  symbol_(arena),
  sub_type_(arena) {
  SharedCtor();
  // @@protoc_insertion_point(arena_constructor:longbridge.quote.v1.SubscribeRequest)
}
SubscribeRequest::SubscribeRequest(const SubscribeRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      symbol_(from.symbol_),
      sub_type_(from.sub_type_) {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  is_first_push_ = from.is_first_push_;
  // @@protoc_insertion_point(copy_constructor:longbridge.quote.v1.SubscribeRequest)
}

inline void SubscribeRequest::SharedCtor() {
is_first_push_ = false;
}

SubscribeRequest::~SubscribeRequest() {
  // @@protoc_insertion_point(destructor:longbridge.quote.v1.SubscribeRequest)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void SubscribeRequest::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
}

void SubscribeRequest::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void SubscribeRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridge.quote.v1.SubscribeRequest)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  symbol_.Clear();
  sub_type_.Clear();
  is_first_push_ = false;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* SubscribeRequest::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // repeated string symbol = 1 [json_name = "symbol"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          ptr -= 1;
          do {
            ptr += 1;
            auto str = _internal_add_symbol();
            ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
            CHK_(ptr);
            CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.SubscribeRequest.symbol"));
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr));
        } else
          goto handle_unusual;
        continue;
      // repeated .longbridge.quote.v1.SubType sub_type = 2 [json_name = "subType"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedEnumParser(_internal_mutable_sub_type(), ptr, ctx);
          CHK_(ptr);
        } else if (static_cast<uint8_t>(tag) == 16) {
          uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          _internal_add_sub_type(static_cast<::longbridge::quote::v1::SubType>(val));
        } else
          goto handle_unusual;
        continue;
      // bool is_first_push = 3 [json_name = "isFirstPush"];
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 24)) {
          is_first_push_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* SubscribeRequest::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridge.quote.v1.SubscribeRequest)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated string symbol = 1 [json_name = "symbol"];
  for (int i = 0, n = this->_internal_symbol_size(); i < n; i++) {
    const auto& s = this->_internal_symbol(i);
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      s.data(), static_cast<int>(s.length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.SubscribeRequest.symbol");
    target = stream->WriteString(1, s, target);
  }

  // repeated .longbridge.quote.v1.SubType sub_type = 2 [json_name = "subType"];
  {
    int byte_size = _sub_type_cached_byte_size_.load(std::memory_order_relaxed);
    if (byte_size > 0) {
      target = stream->WriteEnumPacked(
          2, sub_type_, byte_size, target);
    }
  }

  // bool is_first_push = 3 [json_name = "isFirstPush"];
  if (this->_internal_is_first_push() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(3, this->_internal_is_first_push(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridge.quote.v1.SubscribeRequest)
  return target;
}

size_t SubscribeRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridge.quote.v1.SubscribeRequest)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated string symbol = 1 [json_name = "symbol"];
  total_size += 1 *
      ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(symbol_.size());
  for (int i = 0, n = symbol_.size(); i < n; i++) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
      symbol_.Get(i));
  }

  // repeated .longbridge.quote.v1.SubType sub_type = 2 [json_name = "subType"];
  {
    size_t data_size = 0;
    unsigned int count = static_cast<unsigned int>(this->_internal_sub_type_size());for (unsigned int i = 0; i < count; i++) {
      data_size += ::_pbi::WireFormatLite::EnumSize(
        this->_internal_sub_type(static_cast<int>(i)));
    }
    if (data_size > 0) {
      total_size += 1 +
        ::_pbi::WireFormatLite::Int32Size(static_cast<int32_t>(data_size));
    }
    int cached_size = ::_pbi::ToCachedSize(data_size);
    _sub_type_cached_byte_size_.store(cached_size,
                                    std::memory_order_relaxed);
    total_size += data_size;
  }

  // bool is_first_push = 3 [json_name = "isFirstPush"];
  if (this->_internal_is_first_push() != 0) {
    total_size += 1 + 1;
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData SubscribeRequest::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    SubscribeRequest::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*SubscribeRequest::GetClassData() const { return &_class_data_; }

void SubscribeRequest::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<SubscribeRequest *>(to)->MergeFrom(
      static_cast<const SubscribeRequest &>(from));
}


void SubscribeRequest::MergeFrom(const SubscribeRequest& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:longbridge.quote.v1.SubscribeRequest)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  symbol_.MergeFrom(from.symbol_);
  sub_type_.MergeFrom(from.sub_type_);
  if (from._internal_is_first_push() != 0) {
    _internal_set_is_first_push(from._internal_is_first_push());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void SubscribeRequest::CopyFrom(const SubscribeRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridge.quote.v1.SubscribeRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool SubscribeRequest::IsInitialized() const {
  return true;
}

void SubscribeRequest::InternalSwap(SubscribeRequest* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  symbol_.InternalSwap(&other->symbol_);
  sub_type_.InternalSwap(&other->sub_type_);
  swap(is_first_push_, other->is_first_push_);
}

::PROTOBUF_NAMESPACE_ID::Metadata SubscribeRequest::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[44]);
}

// ===================================================================

class UnsubscribeRequest::_Internal {
 public:
};

UnsubscribeRequest::UnsubscribeRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
  symbol_(arena),
  sub_type_(arena) {
  SharedCtor();
  // @@protoc_insertion_point(arena_constructor:longbridge.quote.v1.UnsubscribeRequest)
}
UnsubscribeRequest::UnsubscribeRequest(const UnsubscribeRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      symbol_(from.symbol_),
      sub_type_(from.sub_type_) {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  unsub_all_ = from.unsub_all_;
  // @@protoc_insertion_point(copy_constructor:longbridge.quote.v1.UnsubscribeRequest)
}

inline void UnsubscribeRequest::SharedCtor() {
unsub_all_ = false;
}

UnsubscribeRequest::~UnsubscribeRequest() {
  // @@protoc_insertion_point(destructor:longbridge.quote.v1.UnsubscribeRequest)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void UnsubscribeRequest::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
}

void UnsubscribeRequest::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void UnsubscribeRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridge.quote.v1.UnsubscribeRequest)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  symbol_.Clear();
  sub_type_.Clear();
  unsub_all_ = false;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* UnsubscribeRequest::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // repeated string symbol = 1 [json_name = "symbol"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          ptr -= 1;
          do {
            ptr += 1;
            auto str = _internal_add_symbol();
            ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
            CHK_(ptr);
            CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.UnsubscribeRequest.symbol"));
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr));
        } else
          goto handle_unusual;
        continue;
      // repeated .longbridge.quote.v1.SubType sub_type = 2 [json_name = "subType"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedEnumParser(_internal_mutable_sub_type(), ptr, ctx);
          CHK_(ptr);
        } else if (static_cast<uint8_t>(tag) == 16) {
          uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          _internal_add_sub_type(static_cast<::longbridge::quote::v1::SubType>(val));
        } else
          goto handle_unusual;
        continue;
      // bool unsub_all = 3 [json_name = "unsubAll"];
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 24)) {
          unsub_all_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* UnsubscribeRequest::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridge.quote.v1.UnsubscribeRequest)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated string symbol = 1 [json_name = "symbol"];
  for (int i = 0, n = this->_internal_symbol_size(); i < n; i++) {
    const auto& s = this->_internal_symbol(i);
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      s.data(), static_cast<int>(s.length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.UnsubscribeRequest.symbol");
    target = stream->WriteString(1, s, target);
  }

  // repeated .longbridge.quote.v1.SubType sub_type = 2 [json_name = "subType"];
  {
    int byte_size = _sub_type_cached_byte_size_.load(std::memory_order_relaxed);
    if (byte_size > 0) {
      target = stream->WriteEnumPacked(
          2, sub_type_, byte_size, target);
    }
  }

  // bool unsub_all = 3 [json_name = "unsubAll"];
  if (this->_internal_unsub_all() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(3, this->_internal_unsub_all(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridge.quote.v1.UnsubscribeRequest)
  return target;
}

size_t UnsubscribeRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridge.quote.v1.UnsubscribeRequest)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated string symbol = 1 [json_name = "symbol"];
  total_size += 1 *
      ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(symbol_.size());
  for (int i = 0, n = symbol_.size(); i < n; i++) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
      symbol_.Get(i));
  }

  // repeated .longbridge.quote.v1.SubType sub_type = 2 [json_name = "subType"];
  {
    size_t data_size = 0;
    unsigned int count = static_cast<unsigned int>(this->_internal_sub_type_size());for (unsigned int i = 0; i < count; i++) {
      data_size += ::_pbi::WireFormatLite::EnumSize(
        this->_internal_sub_type(static_cast<int>(i)));
    }
    if (data_size > 0) {
      total_size += 1 +
        ::_pbi::WireFormatLite::Int32Size(static_cast<int32_t>(data_size));
    }
    int cached_size = ::_pbi::ToCachedSize(data_size);
    _sub_type_cached_byte_size_.store(cached_size,
                                    std::memory_order_relaxed);
    total_size += data_size;
  }

  // bool unsub_all = 3 [json_name = "unsubAll"];
  if (this->_internal_unsub_all() != 0) {
    total_size += 1 + 1;
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData UnsubscribeRequest::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    UnsubscribeRequest::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*UnsubscribeRequest::GetClassData() const { return &_class_data_; }

void UnsubscribeRequest::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<UnsubscribeRequest *>(to)->MergeFrom(
      static_cast<const UnsubscribeRequest &>(from));
}


void UnsubscribeRequest::MergeFrom(const UnsubscribeRequest& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:longbridge.quote.v1.UnsubscribeRequest)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  symbol_.MergeFrom(from.symbol_);
  sub_type_.MergeFrom(from.sub_type_);
  if (from._internal_unsub_all() != 0) {
    _internal_set_unsub_all(from._internal_unsub_all());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void UnsubscribeRequest::CopyFrom(const UnsubscribeRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridge.quote.v1.UnsubscribeRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool UnsubscribeRequest::IsInitialized() const {
  return true;
}

void UnsubscribeRequest::InternalSwap(UnsubscribeRequest* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  symbol_.InternalSwap(&other->symbol_);
  sub_type_.InternalSwap(&other->sub_type_);
  swap(unsub_all_, other->unsub_all_);
}

::PROTOBUF_NAMESPACE_ID::Metadata UnsubscribeRequest::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[45]);
}

// ===================================================================

class UnsubscribeResponse::_Internal {
 public:
};

UnsubscribeResponse::UnsubscribeResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase(arena, is_message_owned) {
  // @@protoc_insertion_point(arena_constructor:longbridge.quote.v1.UnsubscribeResponse)
}
UnsubscribeResponse::UnsubscribeResponse(const UnsubscribeResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:longbridge.quote.v1.UnsubscribeResponse)
}





const ::PROTOBUF_NAMESPACE_ID::Message::ClassData UnsubscribeResponse::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase::CopyImpl,
    ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase::MergeImpl,
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*UnsubscribeResponse::GetClassData() const { return &_class_data_; }







::PROTOBUF_NAMESPACE_ID::Metadata UnsubscribeResponse::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[46]);
}

// ===================================================================

class PushQuote::_Internal {
 public:
};

PushQuote::PushQuote(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor();
  // @@protoc_insertion_point(arena_constructor:longbridge.quote.v1.PushQuote)
}
PushQuote::PushQuote(const PushQuote& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  symbol_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    symbol_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_symbol().empty()) {
    symbol_.Set(from._internal_symbol(), 
      GetArenaForAllocation());
  }
  last_done_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    last_done_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_last_done().empty()) {
    last_done_.Set(from._internal_last_done(), 
      GetArenaForAllocation());
  }
  open_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    open_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_open().empty()) {
    open_.Set(from._internal_open(), 
      GetArenaForAllocation());
  }
  high_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    high_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_high().empty()) {
    high_.Set(from._internal_high(), 
      GetArenaForAllocation());
  }
  low_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    low_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_low().empty()) {
    low_.Set(from._internal_low(), 
      GetArenaForAllocation());
  }
  turnover_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    turnover_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_turnover().empty()) {
    turnover_.Set(from._internal_turnover(), 
      GetArenaForAllocation());
  }
  current_turnover_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    current_turnover_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_current_turnover().empty()) {
    current_turnover_.Set(from._internal_current_turnover(), 
      GetArenaForAllocation());
  }
  ::memcpy(&sequence_, &from.sequence_,
    static_cast<size_t>(reinterpret_cast<char*>(&tag_) -
    reinterpret_cast<char*>(&sequence_)) + sizeof(tag_));
  // @@protoc_insertion_point(copy_constructor:longbridge.quote.v1.PushQuote)
}

inline void PushQuote::SharedCtor() {
symbol_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  symbol_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
last_done_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  last_done_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
open_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  open_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
high_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  high_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
low_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  low_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
turnover_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  turnover_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
current_turnover_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  current_turnover_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
    reinterpret_cast<char*>(&sequence_) - reinterpret_cast<char*>(this)),
    0, static_cast<size_t>(reinterpret_cast<char*>(&tag_) -
    reinterpret_cast<char*>(&sequence_)) + sizeof(tag_));
}

PushQuote::~PushQuote() {
  // @@protoc_insertion_point(destructor:longbridge.quote.v1.PushQuote)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void PushQuote::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  symbol_.Destroy();
  last_done_.Destroy();
  open_.Destroy();
  high_.Destroy();
  low_.Destroy();
  turnover_.Destroy();
  current_turnover_.Destroy();
}

void PushQuote::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void PushQuote::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridge.quote.v1.PushQuote)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  symbol_.ClearToEmpty();
  last_done_.ClearToEmpty();
  open_.ClearToEmpty();
  high_.ClearToEmpty();
  low_.ClearToEmpty();
  turnover_.ClearToEmpty();
  current_turnover_.ClearToEmpty();
  ::memset(&sequence_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&tag_) -
      reinterpret_cast<char*>(&sequence_)) + sizeof(tag_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* PushQuote::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string symbol = 1 [json_name = "symbol"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_symbol();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.PushQuote.symbol"));
        } else
          goto handle_unusual;
        continue;
      // int64 sequence = 2 [json_name = "sequence"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) {
          sequence_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string last_done = 3 [json_name = "lastDone"];
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 26)) {
          auto str = _internal_mutable_last_done();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.PushQuote.last_done"));
        } else
          goto handle_unusual;
        continue;
      // string open = 4 [json_name = "open"];
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 34)) {
          auto str = _internal_mutable_open();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.PushQuote.open"));
        } else
          goto handle_unusual;
        continue;
      // string high = 5 [json_name = "high"];
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 42)) {
          auto str = _internal_mutable_high();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.PushQuote.high"));
        } else
          goto handle_unusual;
        continue;
      // string low = 6 [json_name = "low"];
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 50)) {
          auto str = _internal_mutable_low();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.PushQuote.low"));
        } else
          goto handle_unusual;
        continue;
      // int64 timestamp = 7 [json_name = "timestamp"];
      case 7:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 56)) {
          timestamp_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int64 volume = 8 [json_name = "volume"];
      case 8:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 64)) {
          volume_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string turnover = 9 [json_name = "turnover"];
      case 9:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 74)) {
          auto str = _internal_mutable_turnover();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.PushQuote.turnover"));
        } else
          goto handle_unusual;
        continue;
      // .longbridge.quote.v1.TradeStatus trade_status = 10 [json_name = "tradeStatus"];
      case 10:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 80)) {
          uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          _internal_set_trade_status(static_cast<::longbridge::quote::v1::TradeStatus>(val));
        } else
          goto handle_unusual;
        continue;
      // .longbridge.quote.v1.TradeSession trade_session = 11 [json_name = "tradeSession"];
      case 11:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 88)) {
          uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          _internal_set_trade_session(static_cast<::longbridge::quote::v1::TradeSession>(val));
        } else
          goto handle_unusual;
        continue;
      // int64 current_volume = 12 [json_name = "currentVolume"];
      case 12:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 96)) {
          current_volume_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string current_turnover = 13 [json_name = "currentTurnover"];
      case 13:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 106)) {
          auto str = _internal_mutable_current_turnover();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.PushQuote.current_turnover"));
        } else
          goto handle_unusual;
        continue;
      // .longbridge.quote.v1.PushQuoteTag tag = 14 [json_name = "tag"];
      case 14:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 112)) {
          uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          _internal_set_tag(static_cast<::longbridge::quote::v1::PushQuoteTag>(val));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* PushQuote::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridge.quote.v1.PushQuote)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_symbol().data(), static_cast<int>(this->_internal_symbol().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.PushQuote.symbol");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_symbol(), target);
  }

  // int64 sequence = 2 [json_name = "sequence"];
  if (this->_internal_sequence() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt64ToArray(2, this->_internal_sequence(), target);
  }

  // string last_done = 3 [json_name = "lastDone"];
  if (!this->_internal_last_done().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_last_done().data(), static_cast<int>(this->_internal_last_done().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.PushQuote.last_done");
    target = stream->WriteStringMaybeAliased(
        3, this->_internal_last_done(), target);
  }

  // string open = 4 [json_name = "open"];
  if (!this->_internal_open().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_open().data(), static_cast<int>(this->_internal_open().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.PushQuote.open");
    target = stream->WriteStringMaybeAliased(
        4, this->_internal_open(), target);
  }

  // string high = 5 [json_name = "high"];
  if (!this->_internal_high().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_high().data(), static_cast<int>(this->_internal_high().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.PushQuote.high");
    target = stream->WriteStringMaybeAliased(
        5, this->_internal_high(), target);
  }

  // string low = 6 [json_name = "low"];
  if (!this->_internal_low().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_low().data(), static_cast<int>(this->_internal_low().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.PushQuote.low");
    target = stream->WriteStringMaybeAliased(
        6, this->_internal_low(), target);
  }

  // int64 timestamp = 7 [json_name = "timestamp"];
  if (this->_internal_timestamp() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt64ToArray(7, this->_internal_timestamp(), target);
  }

  // int64 volume = 8 [json_name = "volume"];
  if (this->_internal_volume() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt64ToArray(8, this->_internal_volume(), target);
  }

  // string turnover = 9 [json_name = "turnover"];
  if (!this->_internal_turnover().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_turnover().data(), static_cast<int>(this->_internal_turnover().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.PushQuote.turnover");
    target = stream->WriteStringMaybeAliased(
        9, this->_internal_turnover(), target);
  }

  // .longbridge.quote.v1.TradeStatus trade_status = 10 [json_name = "tradeStatus"];
  if (this->_internal_trade_status() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
      10, this->_internal_trade_status(), target);
  }

  // .longbridge.quote.v1.TradeSession trade_session = 11 [json_name = "tradeSession"];
  if (this->_internal_trade_session() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
      11, this->_internal_trade_session(), target);
  }

  // int64 current_volume = 12 [json_name = "currentVolume"];
  if (this->_internal_current_volume() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt64ToArray(12, this->_internal_current_volume(), target);
  }

  // string current_turnover = 13 [json_name = "currentTurnover"];
  if (!this->_internal_current_turnover().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_current_turnover().data(), static_cast<int>(this->_internal_current_turnover().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.PushQuote.current_turnover");
    target = stream->WriteStringMaybeAliased(
        13, this->_internal_current_turnover(), target);
  }

  // .longbridge.quote.v1.PushQuoteTag tag = 14 [json_name = "tag"];
  if (this->_internal_tag() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
      14, this->_internal_tag(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridge.quote.v1.PushQuote)
  return target;
}

size_t PushQuote::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridge.quote.v1.PushQuote)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_symbol());
  }

  // string last_done = 3 [json_name = "lastDone"];
  if (!this->_internal_last_done().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_last_done());
  }

  // string open = 4 [json_name = "open"];
  if (!this->_internal_open().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_open());
  }

  // string high = 5 [json_name = "high"];
  if (!this->_internal_high().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_high());
  }

  // string low = 6 [json_name = "low"];
  if (!this->_internal_low().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_low());
  }

  // string turnover = 9 [json_name = "turnover"];
  if (!this->_internal_turnover().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_turnover());
  }

  // string current_turnover = 13 [json_name = "currentTurnover"];
  if (!this->_internal_current_turnover().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_current_turnover());
  }

  // int64 sequence = 2 [json_name = "sequence"];
  if (this->_internal_sequence() != 0) {
    total_size += ::_pbi::WireFormatLite::Int64SizePlusOne(this->_internal_sequence());
  }

  // int64 timestamp = 7 [json_name = "timestamp"];
  if (this->_internal_timestamp() != 0) {
    total_size += ::_pbi::WireFormatLite::Int64SizePlusOne(this->_internal_timestamp());
  }

  // int64 volume = 8 [json_name = "volume"];
  if (this->_internal_volume() != 0) {
    total_size += ::_pbi::WireFormatLite::Int64SizePlusOne(this->_internal_volume());
  }

  // .longbridge.quote.v1.TradeStatus trade_status = 10 [json_name = "tradeStatus"];
  if (this->_internal_trade_status() != 0) {
    total_size += 1 +
      ::_pbi::WireFormatLite::EnumSize(this->_internal_trade_status());
  }

  // .longbridge.quote.v1.TradeSession trade_session = 11 [json_name = "tradeSession"];
  if (this->_internal_trade_session() != 0) {
    total_size += 1 +
      ::_pbi::WireFormatLite::EnumSize(this->_internal_trade_session());
  }

  // int64 current_volume = 12 [json_name = "currentVolume"];
  if (this->_internal_current_volume() != 0) {
    total_size += ::_pbi::WireFormatLite::Int64SizePlusOne(this->_internal_current_volume());
  }

  // .longbridge.quote.v1.PushQuoteTag tag = 14 [json_name = "tag"];
  if (this->_internal_tag() != 0) {
    total_size += 1 +
      ::_pbi::WireFormatLite::EnumSize(this->_internal_tag());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData PushQuote::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    PushQuote::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*PushQuote::GetClassData() const { return &_class_data_; }

void PushQuote::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<PushQuote *>(to)->MergeFrom(
      static_cast<const PushQuote &>(from));
}


void PushQuote::MergeFrom(const PushQuote& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:longbridge.quote.v1.PushQuote)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (!from._internal_symbol().empty()) {
    _internal_set_symbol(from._internal_symbol());
  }
  if (!from._internal_last_done().empty()) {
    _internal_set_last_done(from._internal_last_done());
  }
  if (!from._internal_open().empty()) {
    _internal_set_open(from._internal_open());
  }
  if (!from._internal_high().empty()) {
    _internal_set_high(from._internal_high());
  }
  if (!from._internal_low().empty()) {
    _internal_set_low(from._internal_low());
  }
  if (!from._internal_turnover().empty()) {
    _internal_set_turnover(from._internal_turnover());
  }
  if (!from._internal_current_turnover().empty()) {
    _internal_set_current_turnover(from._internal_current_turnover());
  }
  if (from._internal_sequence() != 0) {
    _internal_set_sequence(from._internal_sequence());
  }
  if (from._internal_timestamp() != 0) {
    _internal_set_timestamp(from._internal_timestamp());
  }
  if (from._internal_volume() != 0) {
    _internal_set_volume(from._internal_volume());
  }
  if (from._internal_trade_status() != 0) {
    _internal_set_trade_status(from._internal_trade_status());
  }
  if (from._internal_trade_session() != 0) {
    _internal_set_trade_session(from._internal_trade_session());
  }
  if (from._internal_current_volume() != 0) {
    _internal_set_current_volume(from._internal_current_volume());
  }
  if (from._internal_tag() != 0) {
    _internal_set_tag(from._internal_tag());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void PushQuote::CopyFrom(const PushQuote& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridge.quote.v1.PushQuote)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool PushQuote::IsInitialized() const {
  return true;
}

void PushQuote::InternalSwap(PushQuote* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &symbol_, lhs_arena,
      &other->symbol_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &last_done_, lhs_arena,
      &other->last_done_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &open_, lhs_arena,
      &other->open_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &high_, lhs_arena,
      &other->high_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &low_, lhs_arena,
      &other->low_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &turnover_, lhs_arena,
      &other->turnover_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &current_turnover_, lhs_arena,
      &other->current_turnover_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(PushQuote, tag_)
      + sizeof(PushQuote::tag_)
      - PROTOBUF_FIELD_OFFSET(PushQuote, sequence_)>(
          reinterpret_cast<char*>(&sequence_),
          reinterpret_cast<char*>(&other->sequence_));
}

::PROTOBUF_NAMESPACE_ID::Metadata PushQuote::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[47]);
}

// ===================================================================

class PushDepth::_Internal {
 public:
};

PushDepth::PushDepth(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
  ask_(arena),
  bid_(arena) {
  SharedCtor();
  // @@protoc_insertion_point(arena_constructor:longbridge.quote.v1.PushDepth)
}
PushDepth::PushDepth(const PushDepth& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      ask_(from.ask_),
      bid_(from.bid_) {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  symbol_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    symbol_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_symbol().empty()) {
    symbol_.Set(from._internal_symbol(), 
      GetArenaForAllocation());
  }
  sequence_ = from.sequence_;
  // @@protoc_insertion_point(copy_constructor:longbridge.quote.v1.PushDepth)
}

inline void PushDepth::SharedCtor() {
symbol_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  symbol_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
sequence_ = int64_t{0};
}

PushDepth::~PushDepth() {
  // @@protoc_insertion_point(destructor:longbridge.quote.v1.PushDepth)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void PushDepth::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  symbol_.Destroy();
}

void PushDepth::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void PushDepth::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridge.quote.v1.PushDepth)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  ask_.Clear();
  bid_.Clear();
  symbol_.ClearToEmpty();
  sequence_ = int64_t{0};
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* PushDepth::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string symbol = 1 [json_name = "symbol"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_symbol();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.PushDepth.symbol"));
        } else
          goto handle_unusual;
        continue;
      // int64 sequence = 2 [json_name = "sequence"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) {
          sequence_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // repeated .longbridge.quote.v1.Depth ask = 3 [json_name = "ask"];
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 26)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_ask(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<26>(ptr));
        } else
          goto handle_unusual;
        continue;
      // repeated .longbridge.quote.v1.Depth bid = 4 [json_name = "bid"];
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 34)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_bid(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<34>(ptr));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* PushDepth::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridge.quote.v1.PushDepth)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_symbol().data(), static_cast<int>(this->_internal_symbol().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.PushDepth.symbol");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_symbol(), target);
  }

  // int64 sequence = 2 [json_name = "sequence"];
  if (this->_internal_sequence() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt64ToArray(2, this->_internal_sequence(), target);
  }

  // repeated .longbridge.quote.v1.Depth ask = 3 [json_name = "ask"];
  for (unsigned i = 0,
      n = static_cast<unsigned>(this->_internal_ask_size()); i < n; i++) {
    const auto& repfield = this->_internal_ask(i);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(3, repfield, repfield.GetCachedSize(), target, stream);
  }

  // repeated .longbridge.quote.v1.Depth bid = 4 [json_name = "bid"];
  for (unsigned i = 0,
      n = static_cast<unsigned>(this->_internal_bid_size()); i < n; i++) {
    const auto& repfield = this->_internal_bid(i);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(4, repfield, repfield.GetCachedSize(), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridge.quote.v1.PushDepth)
  return target;
}

size_t PushDepth::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridge.quote.v1.PushDepth)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated .longbridge.quote.v1.Depth ask = 3 [json_name = "ask"];
  total_size += 1UL * this->_internal_ask_size();
  for (const auto& msg : this->ask_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  // repeated .longbridge.quote.v1.Depth bid = 4 [json_name = "bid"];
  total_size += 1UL * this->_internal_bid_size();
  for (const auto& msg : this->bid_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_symbol());
  }

  // int64 sequence = 2 [json_name = "sequence"];
  if (this->_internal_sequence() != 0) {
    total_size += ::_pbi::WireFormatLite::Int64SizePlusOne(this->_internal_sequence());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData PushDepth::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    PushDepth::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*PushDepth::GetClassData() const { return &_class_data_; }

void PushDepth::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<PushDepth *>(to)->MergeFrom(
      static_cast<const PushDepth &>(from));
}


void PushDepth::MergeFrom(const PushDepth& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:longbridge.quote.v1.PushDepth)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  ask_.MergeFrom(from.ask_);
  bid_.MergeFrom(from.bid_);
  if (!from._internal_symbol().empty()) {
    _internal_set_symbol(from._internal_symbol());
  }
  if (from._internal_sequence() != 0) {
    _internal_set_sequence(from._internal_sequence());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void PushDepth::CopyFrom(const PushDepth& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridge.quote.v1.PushDepth)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool PushDepth::IsInitialized() const {
  return true;
}

void PushDepth::InternalSwap(PushDepth* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ask_.InternalSwap(&other->ask_);
  bid_.InternalSwap(&other->bid_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &symbol_, lhs_arena,
      &other->symbol_, rhs_arena
  );
  swap(sequence_, other->sequence_);
}

::PROTOBUF_NAMESPACE_ID::Metadata PushDepth::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[48]);
}

// ===================================================================

class PushBrokers::_Internal {
 public:
};

PushBrokers::PushBrokers(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
  ask_brokers_(arena),
  bid_brokers_(arena) {
  SharedCtor();
  // @@protoc_insertion_point(arena_constructor:longbridge.quote.v1.PushBrokers)
}
PushBrokers::PushBrokers(const PushBrokers& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      ask_brokers_(from.ask_brokers_),
      bid_brokers_(from.bid_brokers_) {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  symbol_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    symbol_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_symbol().empty()) {
    symbol_.Set(from._internal_symbol(), 
      GetArenaForAllocation());
  }
  sequence_ = from.sequence_;
  // @@protoc_insertion_point(copy_constructor:longbridge.quote.v1.PushBrokers)
}

inline void PushBrokers::SharedCtor() {
symbol_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  symbol_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
sequence_ = int64_t{0};
}

PushBrokers::~PushBrokers() {
  // @@protoc_insertion_point(destructor:longbridge.quote.v1.PushBrokers)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void PushBrokers::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  symbol_.Destroy();
}

void PushBrokers::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void PushBrokers::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridge.quote.v1.PushBrokers)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  ask_brokers_.Clear();
  bid_brokers_.Clear();
  symbol_.ClearToEmpty();
  sequence_ = int64_t{0};
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* PushBrokers::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string symbol = 1 [json_name = "symbol"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_symbol();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.PushBrokers.symbol"));
        } else
          goto handle_unusual;
        continue;
      // int64 sequence = 2 [json_name = "sequence"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) {
          sequence_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // repeated .longbridge.quote.v1.Brokers ask_brokers = 3 [json_name = "askBrokers"];
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 26)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_ask_brokers(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<26>(ptr));
        } else
          goto handle_unusual;
        continue;
      // repeated .longbridge.quote.v1.Brokers bid_brokers = 4 [json_name = "bidBrokers"];
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 34)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_bid_brokers(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<34>(ptr));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* PushBrokers::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridge.quote.v1.PushBrokers)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_symbol().data(), static_cast<int>(this->_internal_symbol().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.PushBrokers.symbol");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_symbol(), target);
  }

  // int64 sequence = 2 [json_name = "sequence"];
  if (this->_internal_sequence() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt64ToArray(2, this->_internal_sequence(), target);
  }

  // repeated .longbridge.quote.v1.Brokers ask_brokers = 3 [json_name = "askBrokers"];
  for (unsigned i = 0,
      n = static_cast<unsigned>(this->_internal_ask_brokers_size()); i < n; i++) {
    const auto& repfield = this->_internal_ask_brokers(i);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(3, repfield, repfield.GetCachedSize(), target, stream);
  }

  // repeated .longbridge.quote.v1.Brokers bid_brokers = 4 [json_name = "bidBrokers"];
  for (unsigned i = 0,
      n = static_cast<unsigned>(this->_internal_bid_brokers_size()); i < n; i++) {
    const auto& repfield = this->_internal_bid_brokers(i);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(4, repfield, repfield.GetCachedSize(), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridge.quote.v1.PushBrokers)
  return target;
}

size_t PushBrokers::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridge.quote.v1.PushBrokers)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated .longbridge.quote.v1.Brokers ask_brokers = 3 [json_name = "askBrokers"];
  total_size += 1UL * this->_internal_ask_brokers_size();
  for (const auto& msg : this->ask_brokers_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  // repeated .longbridge.quote.v1.Brokers bid_brokers = 4 [json_name = "bidBrokers"];
  total_size += 1UL * this->_internal_bid_brokers_size();
  for (const auto& msg : this->bid_brokers_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_symbol());
  }

  // int64 sequence = 2 [json_name = "sequence"];
  if (this->_internal_sequence() != 0) {
    total_size += ::_pbi::WireFormatLite::Int64SizePlusOne(this->_internal_sequence());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData PushBrokers::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    PushBrokers::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*PushBrokers::GetClassData() const { return &_class_data_; }

void PushBrokers::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<PushBrokers *>(to)->MergeFrom(
      static_cast<const PushBrokers &>(from));
}


void PushBrokers::MergeFrom(const PushBrokers& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:longbridge.quote.v1.PushBrokers)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  ask_brokers_.MergeFrom(from.ask_brokers_);
  bid_brokers_.MergeFrom(from.bid_brokers_);
  if (!from._internal_symbol().empty()) {
    _internal_set_symbol(from._internal_symbol());
  }
  if (from._internal_sequence() != 0) {
    _internal_set_sequence(from._internal_sequence());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void PushBrokers::CopyFrom(const PushBrokers& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridge.quote.v1.PushBrokers)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool PushBrokers::IsInitialized() const {
  return true;
}

void PushBrokers::InternalSwap(PushBrokers* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ask_brokers_.InternalSwap(&other->ask_brokers_);
  bid_brokers_.InternalSwap(&other->bid_brokers_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &symbol_, lhs_arena,
      &other->symbol_, rhs_arena
  );
  swap(sequence_, other->sequence_);
}

::PROTOBUF_NAMESPACE_ID::Metadata PushBrokers::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[49]);
}

// ===================================================================

class PushTrade::_Internal {
 public:
};

PushTrade::PushTrade(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
  trade_(arena) {
  SharedCtor();
  // @@protoc_insertion_point(arena_constructor:longbridge.quote.v1.PushTrade)
}
PushTrade::PushTrade(const PushTrade& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      trade_(from.trade_) {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  symbol_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    symbol_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_symbol().empty()) {
    symbol_.Set(from._internal_symbol(), 
      GetArenaForAllocation());
  }
  sequence_ = from.sequence_;
  // @@protoc_insertion_point(copy_constructor:longbridge.quote.v1.PushTrade)
}

inline void PushTrade::SharedCtor() {
symbol_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  symbol_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
sequence_ = int64_t{0};
}

PushTrade::~PushTrade() {
  // @@protoc_insertion_point(destructor:longbridge.quote.v1.PushTrade)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void PushTrade::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  symbol_.Destroy();
}

void PushTrade::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void PushTrade::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridge.quote.v1.PushTrade)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  trade_.Clear();
  symbol_.ClearToEmpty();
  sequence_ = int64_t{0};
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* PushTrade::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string symbol = 1 [json_name = "symbol"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_symbol();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.PushTrade.symbol"));
        } else
          goto handle_unusual;
        continue;
      // int64 sequence = 2 [json_name = "sequence"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) {
          sequence_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // repeated .longbridge.quote.v1.Trade trade = 3 [json_name = "trade"];
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 26)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_trade(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<26>(ptr));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* PushTrade::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridge.quote.v1.PushTrade)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_symbol().data(), static_cast<int>(this->_internal_symbol().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.PushTrade.symbol");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_symbol(), target);
  }

  // int64 sequence = 2 [json_name = "sequence"];
  if (this->_internal_sequence() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt64ToArray(2, this->_internal_sequence(), target);
  }

  // repeated .longbridge.quote.v1.Trade trade = 3 [json_name = "trade"];
  for (unsigned i = 0,
      n = static_cast<unsigned>(this->_internal_trade_size()); i < n; i++) {
    const auto& repfield = this->_internal_trade(i);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(3, repfield, repfield.GetCachedSize(), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridge.quote.v1.PushTrade)
  return target;
}

size_t PushTrade::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridge.quote.v1.PushTrade)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated .longbridge.quote.v1.Trade trade = 3 [json_name = "trade"];
  total_size += 1UL * this->_internal_trade_size();
  for (const auto& msg : this->trade_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_symbol());
  }

  // int64 sequence = 2 [json_name = "sequence"];
  if (this->_internal_sequence() != 0) {
    total_size += ::_pbi::WireFormatLite::Int64SizePlusOne(this->_internal_sequence());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData PushTrade::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    PushTrade::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*PushTrade::GetClassData() const { return &_class_data_; }

void PushTrade::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<PushTrade *>(to)->MergeFrom(
      static_cast<const PushTrade &>(from));
}


void PushTrade::MergeFrom(const PushTrade& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:longbridge.quote.v1.PushTrade)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  trade_.MergeFrom(from.trade_);
  if (!from._internal_symbol().empty()) {
    _internal_set_symbol(from._internal_symbol());
  }
  if (from._internal_sequence() != 0) {
    _internal_set_sequence(from._internal_sequence());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void PushTrade::CopyFrom(const PushTrade& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridge.quote.v1.PushTrade)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool PushTrade::IsInitialized() const {
  return true;
}

void PushTrade::InternalSwap(PushTrade* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  trade_.InternalSwap(&other->trade_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &symbol_, lhs_arena,
      &other->symbol_, rhs_arena
  );
  swap(sequence_, other->sequence_);
}

::PROTOBUF_NAMESPACE_ID::Metadata PushTrade::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[50]);
}

// ===================================================================

class MarketTradeDayRequest::_Internal {
 public:
};

MarketTradeDayRequest::MarketTradeDayRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor();
  // @@protoc_insertion_point(arena_constructor:longbridge.quote.v1.MarketTradeDayRequest)
}
MarketTradeDayRequest::MarketTradeDayRequest(const MarketTradeDayRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  market_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    market_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_market().empty()) {
    market_.Set(from._internal_market(), 
      GetArenaForAllocation());
  }
  beg_day_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    beg_day_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_beg_day().empty()) {
    beg_day_.Set(from._internal_beg_day(), 
      GetArenaForAllocation());
  }
  end_day_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    end_day_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_end_day().empty()) {
    end_day_.Set(from._internal_end_day(), 
      GetArenaForAllocation());
  }
  // @@protoc_insertion_point(copy_constructor:longbridge.quote.v1.MarketTradeDayRequest)
}

inline void MarketTradeDayRequest::SharedCtor() {
market_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  market_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
beg_day_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  beg_day_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
end_day_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  end_day_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
}

MarketTradeDayRequest::~MarketTradeDayRequest() {
  // @@protoc_insertion_point(destructor:longbridge.quote.v1.MarketTradeDayRequest)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void MarketTradeDayRequest::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  market_.Destroy();
  beg_day_.Destroy();
  end_day_.Destroy();
}

void MarketTradeDayRequest::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void MarketTradeDayRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridge.quote.v1.MarketTradeDayRequest)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  market_.ClearToEmpty();
  beg_day_.ClearToEmpty();
  end_day_.ClearToEmpty();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* MarketTradeDayRequest::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string market = 1 [json_name = "market"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_market();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.MarketTradeDayRequest.market"));
        } else
          goto handle_unusual;
        continue;
      // string beg_day = 2 [json_name = "begDay"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
          auto str = _internal_mutable_beg_day();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.MarketTradeDayRequest.beg_day"));
        } else
          goto handle_unusual;
        continue;
      // string end_day = 3 [json_name = "endDay"];
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 26)) {
          auto str = _internal_mutable_end_day();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.MarketTradeDayRequest.end_day"));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* MarketTradeDayRequest::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridge.quote.v1.MarketTradeDayRequest)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string market = 1 [json_name = "market"];
  if (!this->_internal_market().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_market().data(), static_cast<int>(this->_internal_market().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.MarketTradeDayRequest.market");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_market(), target);
  }

  // string beg_day = 2 [json_name = "begDay"];
  if (!this->_internal_beg_day().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_beg_day().data(), static_cast<int>(this->_internal_beg_day().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.MarketTradeDayRequest.beg_day");
    target = stream->WriteStringMaybeAliased(
        2, this->_internal_beg_day(), target);
  }

  // string end_day = 3 [json_name = "endDay"];
  if (!this->_internal_end_day().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_end_day().data(), static_cast<int>(this->_internal_end_day().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.MarketTradeDayRequest.end_day");
    target = stream->WriteStringMaybeAliased(
        3, this->_internal_end_day(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridge.quote.v1.MarketTradeDayRequest)
  return target;
}

size_t MarketTradeDayRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridge.quote.v1.MarketTradeDayRequest)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string market = 1 [json_name = "market"];
  if (!this->_internal_market().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_market());
  }

  // string beg_day = 2 [json_name = "begDay"];
  if (!this->_internal_beg_day().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_beg_day());
  }

  // string end_day = 3 [json_name = "endDay"];
  if (!this->_internal_end_day().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_end_day());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData MarketTradeDayRequest::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    MarketTradeDayRequest::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*MarketTradeDayRequest::GetClassData() const { return &_class_data_; }

void MarketTradeDayRequest::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<MarketTradeDayRequest *>(to)->MergeFrom(
      static_cast<const MarketTradeDayRequest &>(from));
}


void MarketTradeDayRequest::MergeFrom(const MarketTradeDayRequest& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:longbridge.quote.v1.MarketTradeDayRequest)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (!from._internal_market().empty()) {
    _internal_set_market(from._internal_market());
  }
  if (!from._internal_beg_day().empty()) {
    _internal_set_beg_day(from._internal_beg_day());
  }
  if (!from._internal_end_day().empty()) {
    _internal_set_end_day(from._internal_end_day());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void MarketTradeDayRequest::CopyFrom(const MarketTradeDayRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridge.quote.v1.MarketTradeDayRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool MarketTradeDayRequest::IsInitialized() const {
  return true;
}

void MarketTradeDayRequest::InternalSwap(MarketTradeDayRequest* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &market_, lhs_arena,
      &other->market_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &beg_day_, lhs_arena,
      &other->beg_day_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &end_day_, lhs_arena,
      &other->end_day_, rhs_arena
  );
}

::PROTOBUF_NAMESPACE_ID::Metadata MarketTradeDayRequest::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[51]);
}

// ===================================================================

class MarketTradeDayResponse::_Internal {
 public:
};

MarketTradeDayResponse::MarketTradeDayResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
  trade_day_(arena),
  half_trade_day_(arena) {
  SharedCtor();
  // @@protoc_insertion_point(arena_constructor:longbridge.quote.v1.MarketTradeDayResponse)
}
MarketTradeDayResponse::MarketTradeDayResponse(const MarketTradeDayResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      trade_day_(from.trade_day_),
      half_trade_day_(from.half_trade_day_) {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:longbridge.quote.v1.MarketTradeDayResponse)
}

inline void MarketTradeDayResponse::SharedCtor() {
}

MarketTradeDayResponse::~MarketTradeDayResponse() {
  // @@protoc_insertion_point(destructor:longbridge.quote.v1.MarketTradeDayResponse)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void MarketTradeDayResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
}

void MarketTradeDayResponse::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void MarketTradeDayResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridge.quote.v1.MarketTradeDayResponse)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  trade_day_.Clear();
  half_trade_day_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* MarketTradeDayResponse::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // repeated string trade_day = 1 [json_name = "tradeDay"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          ptr -= 1;
          do {
            ptr += 1;
            auto str = _internal_add_trade_day();
            ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
            CHK_(ptr);
            CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.MarketTradeDayResponse.trade_day"));
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr));
        } else
          goto handle_unusual;
        continue;
      // repeated string half_trade_day = 2 [json_name = "halfTradeDay"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
          ptr -= 1;
          do {
            ptr += 1;
            auto str = _internal_add_half_trade_day();
            ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
            CHK_(ptr);
            CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.MarketTradeDayResponse.half_trade_day"));
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<18>(ptr));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* MarketTradeDayResponse::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridge.quote.v1.MarketTradeDayResponse)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated string trade_day = 1 [json_name = "tradeDay"];
  for (int i = 0, n = this->_internal_trade_day_size(); i < n; i++) {
    const auto& s = this->_internal_trade_day(i);
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      s.data(), static_cast<int>(s.length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.MarketTradeDayResponse.trade_day");
    target = stream->WriteString(1, s, target);
  }

  // repeated string half_trade_day = 2 [json_name = "halfTradeDay"];
  for (int i = 0, n = this->_internal_half_trade_day_size(); i < n; i++) {
    const auto& s = this->_internal_half_trade_day(i);
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      s.data(), static_cast<int>(s.length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.MarketTradeDayResponse.half_trade_day");
    target = stream->WriteString(2, s, target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridge.quote.v1.MarketTradeDayResponse)
  return target;
}

size_t MarketTradeDayResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridge.quote.v1.MarketTradeDayResponse)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated string trade_day = 1 [json_name = "tradeDay"];
  total_size += 1 *
      ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(trade_day_.size());
  for (int i = 0, n = trade_day_.size(); i < n; i++) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
      trade_day_.Get(i));
  }

  // repeated string half_trade_day = 2 [json_name = "halfTradeDay"];
  total_size += 1 *
      ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(half_trade_day_.size());
  for (int i = 0, n = half_trade_day_.size(); i < n; i++) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
      half_trade_day_.Get(i));
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData MarketTradeDayResponse::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    MarketTradeDayResponse::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*MarketTradeDayResponse::GetClassData() const { return &_class_data_; }

void MarketTradeDayResponse::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<MarketTradeDayResponse *>(to)->MergeFrom(
      static_cast<const MarketTradeDayResponse &>(from));
}


void MarketTradeDayResponse::MergeFrom(const MarketTradeDayResponse& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:longbridge.quote.v1.MarketTradeDayResponse)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  trade_day_.MergeFrom(from.trade_day_);
  half_trade_day_.MergeFrom(from.half_trade_day_);
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void MarketTradeDayResponse::CopyFrom(const MarketTradeDayResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridge.quote.v1.MarketTradeDayResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool MarketTradeDayResponse::IsInitialized() const {
  return true;
}

void MarketTradeDayResponse::InternalSwap(MarketTradeDayResponse* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  trade_day_.InternalSwap(&other->trade_day_);
  half_trade_day_.InternalSwap(&other->half_trade_day_);
}

::PROTOBUF_NAMESPACE_ID::Metadata MarketTradeDayResponse::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[52]);
}

// ===================================================================

class CapitalFlowIntradayRequest::_Internal {
 public:
};

CapitalFlowIntradayRequest::CapitalFlowIntradayRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor();
  // @@protoc_insertion_point(arena_constructor:longbridge.quote.v1.CapitalFlowIntradayRequest)
}
CapitalFlowIntradayRequest::CapitalFlowIntradayRequest(const CapitalFlowIntradayRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  symbol_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    symbol_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_symbol().empty()) {
    symbol_.Set(from._internal_symbol(), 
      GetArenaForAllocation());
  }
  // @@protoc_insertion_point(copy_constructor:longbridge.quote.v1.CapitalFlowIntradayRequest)
}

inline void CapitalFlowIntradayRequest::SharedCtor() {
symbol_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  symbol_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
}

CapitalFlowIntradayRequest::~CapitalFlowIntradayRequest() {
  // @@protoc_insertion_point(destructor:longbridge.quote.v1.CapitalFlowIntradayRequest)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void CapitalFlowIntradayRequest::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  symbol_.Destroy();
}

void CapitalFlowIntradayRequest::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void CapitalFlowIntradayRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridge.quote.v1.CapitalFlowIntradayRequest)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  symbol_.ClearToEmpty();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* CapitalFlowIntradayRequest::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string symbol = 1 [json_name = "symbol"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_symbol();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.CapitalFlowIntradayRequest.symbol"));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* CapitalFlowIntradayRequest::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridge.quote.v1.CapitalFlowIntradayRequest)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_symbol().data(), static_cast<int>(this->_internal_symbol().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.CapitalFlowIntradayRequest.symbol");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_symbol(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridge.quote.v1.CapitalFlowIntradayRequest)
  return target;
}

size_t CapitalFlowIntradayRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridge.quote.v1.CapitalFlowIntradayRequest)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_symbol());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData CapitalFlowIntradayRequest::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    CapitalFlowIntradayRequest::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*CapitalFlowIntradayRequest::GetClassData() const { return &_class_data_; }

void CapitalFlowIntradayRequest::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<CapitalFlowIntradayRequest *>(to)->MergeFrom(
      static_cast<const CapitalFlowIntradayRequest &>(from));
}


void CapitalFlowIntradayRequest::MergeFrom(const CapitalFlowIntradayRequest& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:longbridge.quote.v1.CapitalFlowIntradayRequest)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (!from._internal_symbol().empty()) {
    _internal_set_symbol(from._internal_symbol());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void CapitalFlowIntradayRequest::CopyFrom(const CapitalFlowIntradayRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridge.quote.v1.CapitalFlowIntradayRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool CapitalFlowIntradayRequest::IsInitialized() const {
  return true;
}

void CapitalFlowIntradayRequest::InternalSwap(CapitalFlowIntradayRequest* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &symbol_, lhs_arena,
      &other->symbol_, rhs_arena
  );
}

::PROTOBUF_NAMESPACE_ID::Metadata CapitalFlowIntradayRequest::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[53]);
}

// ===================================================================

class CapitalFlowIntradayResponse_CapitalFlowLine::_Internal {
 public:
};

CapitalFlowIntradayResponse_CapitalFlowLine::CapitalFlowIntradayResponse_CapitalFlowLine(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor();
  // @@protoc_insertion_point(arena_constructor:longbridge.quote.v1.CapitalFlowIntradayResponse.CapitalFlowLine)
}
CapitalFlowIntradayResponse_CapitalFlowLine::CapitalFlowIntradayResponse_CapitalFlowLine(const CapitalFlowIntradayResponse_CapitalFlowLine& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  inflow_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    inflow_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_inflow().empty()) {
    inflow_.Set(from._internal_inflow(), 
      GetArenaForAllocation());
  }
  timestamp_ = from.timestamp_;
  // @@protoc_insertion_point(copy_constructor:longbridge.quote.v1.CapitalFlowIntradayResponse.CapitalFlowLine)
}

inline void CapitalFlowIntradayResponse_CapitalFlowLine::SharedCtor() {
inflow_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  inflow_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
timestamp_ = int64_t{0};
}

CapitalFlowIntradayResponse_CapitalFlowLine::~CapitalFlowIntradayResponse_CapitalFlowLine() {
  // @@protoc_insertion_point(destructor:longbridge.quote.v1.CapitalFlowIntradayResponse.CapitalFlowLine)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void CapitalFlowIntradayResponse_CapitalFlowLine::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  inflow_.Destroy();
}

void CapitalFlowIntradayResponse_CapitalFlowLine::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void CapitalFlowIntradayResponse_CapitalFlowLine::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridge.quote.v1.CapitalFlowIntradayResponse.CapitalFlowLine)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  inflow_.ClearToEmpty();
  timestamp_ = int64_t{0};
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* CapitalFlowIntradayResponse_CapitalFlowLine::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string inflow = 1 [json_name = "inflow"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_inflow();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.CapitalFlowIntradayResponse.CapitalFlowLine.inflow"));
        } else
          goto handle_unusual;
        continue;
      // int64 timestamp = 2 [json_name = "timestamp"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) {
          timestamp_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* CapitalFlowIntradayResponse_CapitalFlowLine::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridge.quote.v1.CapitalFlowIntradayResponse.CapitalFlowLine)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string inflow = 1 [json_name = "inflow"];
  if (!this->_internal_inflow().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_inflow().data(), static_cast<int>(this->_internal_inflow().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.CapitalFlowIntradayResponse.CapitalFlowLine.inflow");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_inflow(), target);
  }

  // int64 timestamp = 2 [json_name = "timestamp"];
  if (this->_internal_timestamp() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt64ToArray(2, this->_internal_timestamp(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridge.quote.v1.CapitalFlowIntradayResponse.CapitalFlowLine)
  return target;
}

size_t CapitalFlowIntradayResponse_CapitalFlowLine::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridge.quote.v1.CapitalFlowIntradayResponse.CapitalFlowLine)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string inflow = 1 [json_name = "inflow"];
  if (!this->_internal_inflow().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_inflow());
  }

  // int64 timestamp = 2 [json_name = "timestamp"];
  if (this->_internal_timestamp() != 0) {
    total_size += ::_pbi::WireFormatLite::Int64SizePlusOne(this->_internal_timestamp());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData CapitalFlowIntradayResponse_CapitalFlowLine::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    CapitalFlowIntradayResponse_CapitalFlowLine::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*CapitalFlowIntradayResponse_CapitalFlowLine::GetClassData() const { return &_class_data_; }

void CapitalFlowIntradayResponse_CapitalFlowLine::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<CapitalFlowIntradayResponse_CapitalFlowLine *>(to)->MergeFrom(
      static_cast<const CapitalFlowIntradayResponse_CapitalFlowLine &>(from));
}


void CapitalFlowIntradayResponse_CapitalFlowLine::MergeFrom(const CapitalFlowIntradayResponse_CapitalFlowLine& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:longbridge.quote.v1.CapitalFlowIntradayResponse.CapitalFlowLine)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (!from._internal_inflow().empty()) {
    _internal_set_inflow(from._internal_inflow());
  }
  if (from._internal_timestamp() != 0) {
    _internal_set_timestamp(from._internal_timestamp());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void CapitalFlowIntradayResponse_CapitalFlowLine::CopyFrom(const CapitalFlowIntradayResponse_CapitalFlowLine& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridge.quote.v1.CapitalFlowIntradayResponse.CapitalFlowLine)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool CapitalFlowIntradayResponse_CapitalFlowLine::IsInitialized() const {
  return true;
}

void CapitalFlowIntradayResponse_CapitalFlowLine::InternalSwap(CapitalFlowIntradayResponse_CapitalFlowLine* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &inflow_, lhs_arena,
      &other->inflow_, rhs_arena
  );
  swap(timestamp_, other->timestamp_);
}

::PROTOBUF_NAMESPACE_ID::Metadata CapitalFlowIntradayResponse_CapitalFlowLine::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[54]);
}

// ===================================================================

class CapitalFlowIntradayResponse::_Internal {
 public:
};

CapitalFlowIntradayResponse::CapitalFlowIntradayResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
  capital_flow_lines_(arena) {
  SharedCtor();
  // @@protoc_insertion_point(arena_constructor:longbridge.quote.v1.CapitalFlowIntradayResponse)
}
CapitalFlowIntradayResponse::CapitalFlowIntradayResponse(const CapitalFlowIntradayResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      capital_flow_lines_(from.capital_flow_lines_) {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  symbol_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    symbol_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_symbol().empty()) {
    symbol_.Set(from._internal_symbol(), 
      GetArenaForAllocation());
  }
  // @@protoc_insertion_point(copy_constructor:longbridge.quote.v1.CapitalFlowIntradayResponse)
}

inline void CapitalFlowIntradayResponse::SharedCtor() {
symbol_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  symbol_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
}

CapitalFlowIntradayResponse::~CapitalFlowIntradayResponse() {
  // @@protoc_insertion_point(destructor:longbridge.quote.v1.CapitalFlowIntradayResponse)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void CapitalFlowIntradayResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  symbol_.Destroy();
}

void CapitalFlowIntradayResponse::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void CapitalFlowIntradayResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridge.quote.v1.CapitalFlowIntradayResponse)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  capital_flow_lines_.Clear();
  symbol_.ClearToEmpty();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* CapitalFlowIntradayResponse::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string symbol = 1 [json_name = "symbol"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_symbol();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.CapitalFlowIntradayResponse.symbol"));
        } else
          goto handle_unusual;
        continue;
      // repeated .longbridge.quote.v1.CapitalFlowIntradayResponse.CapitalFlowLine capital_flow_lines = 2 [json_name = "capitalFlowLines"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_capital_flow_lines(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<18>(ptr));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* CapitalFlowIntradayResponse::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridge.quote.v1.CapitalFlowIntradayResponse)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_symbol().data(), static_cast<int>(this->_internal_symbol().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.CapitalFlowIntradayResponse.symbol");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_symbol(), target);
  }

  // repeated .longbridge.quote.v1.CapitalFlowIntradayResponse.CapitalFlowLine capital_flow_lines = 2 [json_name = "capitalFlowLines"];
  for (unsigned i = 0,
      n = static_cast<unsigned>(this->_internal_capital_flow_lines_size()); i < n; i++) {
    const auto& repfield = this->_internal_capital_flow_lines(i);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(2, repfield, repfield.GetCachedSize(), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridge.quote.v1.CapitalFlowIntradayResponse)
  return target;
}

size_t CapitalFlowIntradayResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridge.quote.v1.CapitalFlowIntradayResponse)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated .longbridge.quote.v1.CapitalFlowIntradayResponse.CapitalFlowLine capital_flow_lines = 2 [json_name = "capitalFlowLines"];
  total_size += 1UL * this->_internal_capital_flow_lines_size();
  for (const auto& msg : this->capital_flow_lines_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_symbol());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData CapitalFlowIntradayResponse::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    CapitalFlowIntradayResponse::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*CapitalFlowIntradayResponse::GetClassData() const { return &_class_data_; }

void CapitalFlowIntradayResponse::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<CapitalFlowIntradayResponse *>(to)->MergeFrom(
      static_cast<const CapitalFlowIntradayResponse &>(from));
}


void CapitalFlowIntradayResponse::MergeFrom(const CapitalFlowIntradayResponse& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:longbridge.quote.v1.CapitalFlowIntradayResponse)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  capital_flow_lines_.MergeFrom(from.capital_flow_lines_);
  if (!from._internal_symbol().empty()) {
    _internal_set_symbol(from._internal_symbol());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void CapitalFlowIntradayResponse::CopyFrom(const CapitalFlowIntradayResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridge.quote.v1.CapitalFlowIntradayResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool CapitalFlowIntradayResponse::IsInitialized() const {
  return true;
}

void CapitalFlowIntradayResponse::InternalSwap(CapitalFlowIntradayResponse* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  capital_flow_lines_.InternalSwap(&other->capital_flow_lines_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &symbol_, lhs_arena,
      &other->symbol_, rhs_arena
  );
}

::PROTOBUF_NAMESPACE_ID::Metadata CapitalFlowIntradayResponse::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[55]);
}

// ===================================================================

class CapitalDistributionResponse_CapitalDistribution::_Internal {
 public:
};

CapitalDistributionResponse_CapitalDistribution::CapitalDistributionResponse_CapitalDistribution(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor();
  // @@protoc_insertion_point(arena_constructor:longbridge.quote.v1.CapitalDistributionResponse.CapitalDistribution)
}
CapitalDistributionResponse_CapitalDistribution::CapitalDistributionResponse_CapitalDistribution(const CapitalDistributionResponse_CapitalDistribution& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  large_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    large_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_large().empty()) {
    large_.Set(from._internal_large(), 
      GetArenaForAllocation());
  }
  medium_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    medium_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_medium().empty()) {
    medium_.Set(from._internal_medium(), 
      GetArenaForAllocation());
  }
  small_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    small_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_small().empty()) {
    small_.Set(from._internal_small(), 
      GetArenaForAllocation());
  }
  // @@protoc_insertion_point(copy_constructor:longbridge.quote.v1.CapitalDistributionResponse.CapitalDistribution)
}

inline void CapitalDistributionResponse_CapitalDistribution::SharedCtor() {
large_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  large_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
medium_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  medium_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
small_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  small_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
}

CapitalDistributionResponse_CapitalDistribution::~CapitalDistributionResponse_CapitalDistribution() {
  // @@protoc_insertion_point(destructor:longbridge.quote.v1.CapitalDistributionResponse.CapitalDistribution)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void CapitalDistributionResponse_CapitalDistribution::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  large_.Destroy();
  medium_.Destroy();
  small_.Destroy();
}

void CapitalDistributionResponse_CapitalDistribution::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void CapitalDistributionResponse_CapitalDistribution::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridge.quote.v1.CapitalDistributionResponse.CapitalDistribution)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  large_.ClearToEmpty();
  medium_.ClearToEmpty();
  small_.ClearToEmpty();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* CapitalDistributionResponse_CapitalDistribution::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string large = 1 [json_name = "large"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_large();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.CapitalDistributionResponse.CapitalDistribution.large"));
        } else
          goto handle_unusual;
        continue;
      // string medium = 2 [json_name = "medium"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
          auto str = _internal_mutable_medium();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.CapitalDistributionResponse.CapitalDistribution.medium"));
        } else
          goto handle_unusual;
        continue;
      // string small = 3 [json_name = "small"];
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 26)) {
          auto str = _internal_mutable_small();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.CapitalDistributionResponse.CapitalDistribution.small"));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* CapitalDistributionResponse_CapitalDistribution::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridge.quote.v1.CapitalDistributionResponse.CapitalDistribution)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string large = 1 [json_name = "large"];
  if (!this->_internal_large().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_large().data(), static_cast<int>(this->_internal_large().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.CapitalDistributionResponse.CapitalDistribution.large");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_large(), target);
  }

  // string medium = 2 [json_name = "medium"];
  if (!this->_internal_medium().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_medium().data(), static_cast<int>(this->_internal_medium().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.CapitalDistributionResponse.CapitalDistribution.medium");
    target = stream->WriteStringMaybeAliased(
        2, this->_internal_medium(), target);
  }

  // string small = 3 [json_name = "small"];
  if (!this->_internal_small().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_small().data(), static_cast<int>(this->_internal_small().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.CapitalDistributionResponse.CapitalDistribution.small");
    target = stream->WriteStringMaybeAliased(
        3, this->_internal_small(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridge.quote.v1.CapitalDistributionResponse.CapitalDistribution)
  return target;
}

size_t CapitalDistributionResponse_CapitalDistribution::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridge.quote.v1.CapitalDistributionResponse.CapitalDistribution)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string large = 1 [json_name = "large"];
  if (!this->_internal_large().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_large());
  }

  // string medium = 2 [json_name = "medium"];
  if (!this->_internal_medium().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_medium());
  }

  // string small = 3 [json_name = "small"];
  if (!this->_internal_small().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_small());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData CapitalDistributionResponse_CapitalDistribution::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    CapitalDistributionResponse_CapitalDistribution::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*CapitalDistributionResponse_CapitalDistribution::GetClassData() const { return &_class_data_; }

void CapitalDistributionResponse_CapitalDistribution::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<CapitalDistributionResponse_CapitalDistribution *>(to)->MergeFrom(
      static_cast<const CapitalDistributionResponse_CapitalDistribution &>(from));
}


void CapitalDistributionResponse_CapitalDistribution::MergeFrom(const CapitalDistributionResponse_CapitalDistribution& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:longbridge.quote.v1.CapitalDistributionResponse.CapitalDistribution)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (!from._internal_large().empty()) {
    _internal_set_large(from._internal_large());
  }
  if (!from._internal_medium().empty()) {
    _internal_set_medium(from._internal_medium());
  }
  if (!from._internal_small().empty()) {
    _internal_set_small(from._internal_small());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void CapitalDistributionResponse_CapitalDistribution::CopyFrom(const CapitalDistributionResponse_CapitalDistribution& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridge.quote.v1.CapitalDistributionResponse.CapitalDistribution)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool CapitalDistributionResponse_CapitalDistribution::IsInitialized() const {
  return true;
}

void CapitalDistributionResponse_CapitalDistribution::InternalSwap(CapitalDistributionResponse_CapitalDistribution* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &large_, lhs_arena,
      &other->large_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &medium_, lhs_arena,
      &other->medium_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &small_, lhs_arena,
      &other->small_, rhs_arena
  );
}

::PROTOBUF_NAMESPACE_ID::Metadata CapitalDistributionResponse_CapitalDistribution::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[56]);
}

// ===================================================================

class CapitalDistributionResponse::_Internal {
 public:
  static const ::longbridge::quote::v1::CapitalDistributionResponse_CapitalDistribution& capital_in(const CapitalDistributionResponse* msg);
  static const ::longbridge::quote::v1::CapitalDistributionResponse_CapitalDistribution& capital_out(const CapitalDistributionResponse* msg);
};

const ::longbridge::quote::v1::CapitalDistributionResponse_CapitalDistribution&
CapitalDistributionResponse::_Internal::capital_in(const CapitalDistributionResponse* msg) {
  return *msg->capital_in_;
}
const ::longbridge::quote::v1::CapitalDistributionResponse_CapitalDistribution&
CapitalDistributionResponse::_Internal::capital_out(const CapitalDistributionResponse* msg) {
  return *msg->capital_out_;
}
CapitalDistributionResponse::CapitalDistributionResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor();
  // @@protoc_insertion_point(arena_constructor:longbridge.quote.v1.CapitalDistributionResponse)
}
CapitalDistributionResponse::CapitalDistributionResponse(const CapitalDistributionResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  symbol_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    symbol_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_symbol().empty()) {
    symbol_.Set(from._internal_symbol(), 
      GetArenaForAllocation());
  }
  if (from._internal_has_capital_in()) {
    capital_in_ = new ::longbridge::quote::v1::CapitalDistributionResponse_CapitalDistribution(*from.capital_in_);
  } else {
    capital_in_ = nullptr;
  }
  if (from._internal_has_capital_out()) {
    capital_out_ = new ::longbridge::quote::v1::CapitalDistributionResponse_CapitalDistribution(*from.capital_out_);
  } else {
    capital_out_ = nullptr;
  }
  timestamp_ = from.timestamp_;
  // @@protoc_insertion_point(copy_constructor:longbridge.quote.v1.CapitalDistributionResponse)
}

inline void CapitalDistributionResponse::SharedCtor() {
symbol_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  symbol_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
    reinterpret_cast<char*>(&capital_in_) - reinterpret_cast<char*>(this)),
    0, static_cast<size_t>(reinterpret_cast<char*>(&timestamp_) -
    reinterpret_cast<char*>(&capital_in_)) + sizeof(timestamp_));
}

CapitalDistributionResponse::~CapitalDistributionResponse() {
  // @@protoc_insertion_point(destructor:longbridge.quote.v1.CapitalDistributionResponse)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void CapitalDistributionResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  symbol_.Destroy();
  if (this != internal_default_instance()) delete capital_in_;
  if (this != internal_default_instance()) delete capital_out_;
}

void CapitalDistributionResponse::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void CapitalDistributionResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridge.quote.v1.CapitalDistributionResponse)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  symbol_.ClearToEmpty();
  if (GetArenaForAllocation() == nullptr && capital_in_ != nullptr) {
    delete capital_in_;
  }
  capital_in_ = nullptr;
  if (GetArenaForAllocation() == nullptr && capital_out_ != nullptr) {
    delete capital_out_;
  }
  capital_out_ = nullptr;
  timestamp_ = int64_t{0};
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* CapitalDistributionResponse::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string symbol = 1 [json_name = "symbol"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_symbol();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.CapitalDistributionResponse.symbol"));
        } else
          goto handle_unusual;
        continue;
      // int64 timestamp = 2 [json_name = "timestamp"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) {
          timestamp_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // .longbridge.quote.v1.CapitalDistributionResponse.CapitalDistribution capital_in = 3 [json_name = "capitalIn"];
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 26)) {
          ptr = ctx->ParseMessage(_internal_mutable_capital_in(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // .longbridge.quote.v1.CapitalDistributionResponse.CapitalDistribution capital_out = 4 [json_name = "capitalOut"];
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 34)) {
          ptr = ctx->ParseMessage(_internal_mutable_capital_out(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* CapitalDistributionResponse::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridge.quote.v1.CapitalDistributionResponse)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_symbol().data(), static_cast<int>(this->_internal_symbol().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.CapitalDistributionResponse.symbol");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_symbol(), target);
  }

  // int64 timestamp = 2 [json_name = "timestamp"];
  if (this->_internal_timestamp() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt64ToArray(2, this->_internal_timestamp(), target);
  }

  // .longbridge.quote.v1.CapitalDistributionResponse.CapitalDistribution capital_in = 3 [json_name = "capitalIn"];
  if (this->_internal_has_capital_in()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(3, _Internal::capital_in(this),
        _Internal::capital_in(this).GetCachedSize(), target, stream);
  }

  // .longbridge.quote.v1.CapitalDistributionResponse.CapitalDistribution capital_out = 4 [json_name = "capitalOut"];
  if (this->_internal_has_capital_out()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(4, _Internal::capital_out(this),
        _Internal::capital_out(this).GetCachedSize(), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridge.quote.v1.CapitalDistributionResponse)
  return target;
}

size_t CapitalDistributionResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridge.quote.v1.CapitalDistributionResponse)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_symbol());
  }

  // .longbridge.quote.v1.CapitalDistributionResponse.CapitalDistribution capital_in = 3 [json_name = "capitalIn"];
  if (this->_internal_has_capital_in()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *capital_in_);
  }

  // .longbridge.quote.v1.CapitalDistributionResponse.CapitalDistribution capital_out = 4 [json_name = "capitalOut"];
  if (this->_internal_has_capital_out()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *capital_out_);
  }

  // int64 timestamp = 2 [json_name = "timestamp"];
  if (this->_internal_timestamp() != 0) {
    total_size += ::_pbi::WireFormatLite::Int64SizePlusOne(this->_internal_timestamp());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData CapitalDistributionResponse::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    CapitalDistributionResponse::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*CapitalDistributionResponse::GetClassData() const { return &_class_data_; }

void CapitalDistributionResponse::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<CapitalDistributionResponse *>(to)->MergeFrom(
      static_cast<const CapitalDistributionResponse &>(from));
}


void CapitalDistributionResponse::MergeFrom(const CapitalDistributionResponse& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:longbridge.quote.v1.CapitalDistributionResponse)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (!from._internal_symbol().empty()) {
    _internal_set_symbol(from._internal_symbol());
  }
  if (from._internal_has_capital_in()) {
    _internal_mutable_capital_in()->::longbridge::quote::v1::CapitalDistributionResponse_CapitalDistribution::MergeFrom(from._internal_capital_in());
  }
  if (from._internal_has_capital_out()) {
    _internal_mutable_capital_out()->::longbridge::quote::v1::CapitalDistributionResponse_CapitalDistribution::MergeFrom(from._internal_capital_out());
  }
  if (from._internal_timestamp() != 0) {
    _internal_set_timestamp(from._internal_timestamp());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void CapitalDistributionResponse::CopyFrom(const CapitalDistributionResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridge.quote.v1.CapitalDistributionResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool CapitalDistributionResponse::IsInitialized() const {
  return true;
}

void CapitalDistributionResponse::InternalSwap(CapitalDistributionResponse* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &symbol_, lhs_arena,
      &other->symbol_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(CapitalDistributionResponse, timestamp_)
      + sizeof(CapitalDistributionResponse::timestamp_)
      - PROTOBUF_FIELD_OFFSET(CapitalDistributionResponse, capital_in_)>(
          reinterpret_cast<char*>(&capital_in_),
          reinterpret_cast<char*>(&other->capital_in_));
}

::PROTOBUF_NAMESPACE_ID::Metadata CapitalDistributionResponse::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[57]);
}

// ===================================================================

class SecurityCalcQuoteRequest::_Internal {
 public:
};

SecurityCalcQuoteRequest::SecurityCalcQuoteRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
  symbols_(arena),
  calc_index_(arena) {
  SharedCtor();
  // @@protoc_insertion_point(arena_constructor:longbridge.quote.v1.SecurityCalcQuoteRequest)
}
SecurityCalcQuoteRequest::SecurityCalcQuoteRequest(const SecurityCalcQuoteRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      symbols_(from.symbols_),
      calc_index_(from.calc_index_) {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:longbridge.quote.v1.SecurityCalcQuoteRequest)
}

inline void SecurityCalcQuoteRequest::SharedCtor() {
}

SecurityCalcQuoteRequest::~SecurityCalcQuoteRequest() {
  // @@protoc_insertion_point(destructor:longbridge.quote.v1.SecurityCalcQuoteRequest)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void SecurityCalcQuoteRequest::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
}

void SecurityCalcQuoteRequest::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void SecurityCalcQuoteRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridge.quote.v1.SecurityCalcQuoteRequest)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  symbols_.Clear();
  calc_index_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* SecurityCalcQuoteRequest::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // repeated string symbols = 1 [json_name = "symbols"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          ptr -= 1;
          do {
            ptr += 1;
            auto str = _internal_add_symbols();
            ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
            CHK_(ptr);
            CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.SecurityCalcQuoteRequest.symbols"));
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr));
        } else
          goto handle_unusual;
        continue;
      // repeated .longbridge.quote.v1.CalcIndex calc_index = 2 [json_name = "calcIndex"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedEnumParser(_internal_mutable_calc_index(), ptr, ctx);
          CHK_(ptr);
        } else if (static_cast<uint8_t>(tag) == 16) {
          uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          _internal_add_calc_index(static_cast<::longbridge::quote::v1::CalcIndex>(val));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* SecurityCalcQuoteRequest::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridge.quote.v1.SecurityCalcQuoteRequest)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated string symbols = 1 [json_name = "symbols"];
  for (int i = 0, n = this->_internal_symbols_size(); i < n; i++) {
    const auto& s = this->_internal_symbols(i);
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      s.data(), static_cast<int>(s.length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.SecurityCalcQuoteRequest.symbols");
    target = stream->WriteString(1, s, target);
  }

  // repeated .longbridge.quote.v1.CalcIndex calc_index = 2 [json_name = "calcIndex"];
  {
    int byte_size = _calc_index_cached_byte_size_.load(std::memory_order_relaxed);
    if (byte_size > 0) {
      target = stream->WriteEnumPacked(
          2, calc_index_, byte_size, target);
    }
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridge.quote.v1.SecurityCalcQuoteRequest)
  return target;
}

size_t SecurityCalcQuoteRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridge.quote.v1.SecurityCalcQuoteRequest)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated string symbols = 1 [json_name = "symbols"];
  total_size += 1 *
      ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(symbols_.size());
  for (int i = 0, n = symbols_.size(); i < n; i++) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
      symbols_.Get(i));
  }

  // repeated .longbridge.quote.v1.CalcIndex calc_index = 2 [json_name = "calcIndex"];
  {
    size_t data_size = 0;
    unsigned int count = static_cast<unsigned int>(this->_internal_calc_index_size());for (unsigned int i = 0; i < count; i++) {
      data_size += ::_pbi::WireFormatLite::EnumSize(
        this->_internal_calc_index(static_cast<int>(i)));
    }
    if (data_size > 0) {
      total_size += 1 +
        ::_pbi::WireFormatLite::Int32Size(static_cast<int32_t>(data_size));
    }
    int cached_size = ::_pbi::ToCachedSize(data_size);
    _calc_index_cached_byte_size_.store(cached_size,
                                    std::memory_order_relaxed);
    total_size += data_size;
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData SecurityCalcQuoteRequest::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    SecurityCalcQuoteRequest::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*SecurityCalcQuoteRequest::GetClassData() const { return &_class_data_; }

void SecurityCalcQuoteRequest::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<SecurityCalcQuoteRequest *>(to)->MergeFrom(
      static_cast<const SecurityCalcQuoteRequest &>(from));
}


void SecurityCalcQuoteRequest::MergeFrom(const SecurityCalcQuoteRequest& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:longbridge.quote.v1.SecurityCalcQuoteRequest)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  symbols_.MergeFrom(from.symbols_);
  calc_index_.MergeFrom(from.calc_index_);
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void SecurityCalcQuoteRequest::CopyFrom(const SecurityCalcQuoteRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridge.quote.v1.SecurityCalcQuoteRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool SecurityCalcQuoteRequest::IsInitialized() const {
  return true;
}

void SecurityCalcQuoteRequest::InternalSwap(SecurityCalcQuoteRequest* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  symbols_.InternalSwap(&other->symbols_);
  calc_index_.InternalSwap(&other->calc_index_);
}

::PROTOBUF_NAMESPACE_ID::Metadata SecurityCalcQuoteRequest::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[58]);
}

// ===================================================================

class SecurityCalcIndex::_Internal {
 public:
};

SecurityCalcIndex::SecurityCalcIndex(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor();
  // @@protoc_insertion_point(arena_constructor:longbridge.quote.v1.SecurityCalcIndex)
}
SecurityCalcIndex::SecurityCalcIndex(const SecurityCalcIndex& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  symbol_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    symbol_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_symbol().empty()) {
    symbol_.Set(from._internal_symbol(), 
      GetArenaForAllocation());
  }
  last_done_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    last_done_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_last_done().empty()) {
    last_done_.Set(from._internal_last_done(), 
      GetArenaForAllocation());
  }
  change_val_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    change_val_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_change_val().empty()) {
    change_val_.Set(from._internal_change_val(), 
      GetArenaForAllocation());
  }
  change_rate_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    change_rate_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_change_rate().empty()) {
    change_rate_.Set(from._internal_change_rate(), 
      GetArenaForAllocation());
  }
  turnover_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    turnover_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_turnover().empty()) {
    turnover_.Set(from._internal_turnover(), 
      GetArenaForAllocation());
  }
  ytd_change_rate_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    ytd_change_rate_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_ytd_change_rate().empty()) {
    ytd_change_rate_.Set(from._internal_ytd_change_rate(), 
      GetArenaForAllocation());
  }
  turnover_rate_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    turnover_rate_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_turnover_rate().empty()) {
    turnover_rate_.Set(from._internal_turnover_rate(), 
      GetArenaForAllocation());
  }
  total_market_value_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    total_market_value_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_total_market_value().empty()) {
    total_market_value_.Set(from._internal_total_market_value(), 
      GetArenaForAllocation());
  }
  capital_flow_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    capital_flow_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_capital_flow().empty()) {
    capital_flow_.Set(from._internal_capital_flow(), 
      GetArenaForAllocation());
  }
  amplitude_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    amplitude_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_amplitude().empty()) {
    amplitude_.Set(from._internal_amplitude(), 
      GetArenaForAllocation());
  }
  volume_ratio_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    volume_ratio_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_volume_ratio().empty()) {
    volume_ratio_.Set(from._internal_volume_ratio(), 
      GetArenaForAllocation());
  }
  pe_ttm_ratio_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    pe_ttm_ratio_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_pe_ttm_ratio().empty()) {
    pe_ttm_ratio_.Set(from._internal_pe_ttm_ratio(), 
      GetArenaForAllocation());
  }
  pb_ratio_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    pb_ratio_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_pb_ratio().empty()) {
    pb_ratio_.Set(from._internal_pb_ratio(), 
      GetArenaForAllocation());
  }
  dividend_ratio_ttm_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    dividend_ratio_ttm_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_dividend_ratio_ttm().empty()) {
    dividend_ratio_ttm_.Set(from._internal_dividend_ratio_ttm(), 
      GetArenaForAllocation());
  }
  five_day_change_rate_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    five_day_change_rate_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_five_day_change_rate().empty()) {
    five_day_change_rate_.Set(from._internal_five_day_change_rate(), 
      GetArenaForAllocation());
  }
  ten_day_change_rate_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    ten_day_change_rate_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_ten_day_change_rate().empty()) {
    ten_day_change_rate_.Set(from._internal_ten_day_change_rate(), 
      GetArenaForAllocation());
  }
  half_year_change_rate_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    half_year_change_rate_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_half_year_change_rate().empty()) {
    half_year_change_rate_.Set(from._internal_half_year_change_rate(), 
      GetArenaForAllocation());
  }
  five_minutes_change_rate_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    five_minutes_change_rate_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_five_minutes_change_rate().empty()) {
    five_minutes_change_rate_.Set(from._internal_five_minutes_change_rate(), 
      GetArenaForAllocation());
  }
  expiry_date_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    expiry_date_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_expiry_date().empty()) {
    expiry_date_.Set(from._internal_expiry_date(), 
      GetArenaForAllocation());
  }
  strike_price_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    strike_price_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_strike_price().empty()) {
    strike_price_.Set(from._internal_strike_price(), 
      GetArenaForAllocation());
  }
  upper_strike_price_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    upper_strike_price_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_upper_strike_price().empty()) {
    upper_strike_price_.Set(from._internal_upper_strike_price(), 
      GetArenaForAllocation());
  }
  lower_strike_price_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    lower_strike_price_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_lower_strike_price().empty()) {
    lower_strike_price_.Set(from._internal_lower_strike_price(), 
      GetArenaForAllocation());
  }
  outstanding_ratio_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    outstanding_ratio_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_outstanding_ratio().empty()) {
    outstanding_ratio_.Set(from._internal_outstanding_ratio(), 
      GetArenaForAllocation());
  }
  premium_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    premium_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_premium().empty()) {
    premium_.Set(from._internal_premium(), 
      GetArenaForAllocation());
  }
  itm_otm_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    itm_otm_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_itm_otm().empty()) {
    itm_otm_.Set(from._internal_itm_otm(), 
      GetArenaForAllocation());
  }
  implied_volatility_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    implied_volatility_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_implied_volatility().empty()) {
    implied_volatility_.Set(from._internal_implied_volatility(), 
      GetArenaForAllocation());
  }
  warrant_delta_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    warrant_delta_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_warrant_delta().empty()) {
    warrant_delta_.Set(from._internal_warrant_delta(), 
      GetArenaForAllocation());
  }
  call_price_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    call_price_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_call_price().empty()) {
    call_price_.Set(from._internal_call_price(), 
      GetArenaForAllocation());
  }
  to_call_price_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    to_call_price_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_to_call_price().empty()) {
    to_call_price_.Set(from._internal_to_call_price(), 
      GetArenaForAllocation());
  }
  effective_leverage_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    effective_leverage_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_effective_leverage().empty()) {
    effective_leverage_.Set(from._internal_effective_leverage(), 
      GetArenaForAllocation());
  }
  leverage_ratio_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    leverage_ratio_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_leverage_ratio().empty()) {
    leverage_ratio_.Set(from._internal_leverage_ratio(), 
      GetArenaForAllocation());
  }
  conversion_ratio_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    conversion_ratio_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_conversion_ratio().empty()) {
    conversion_ratio_.Set(from._internal_conversion_ratio(), 
      GetArenaForAllocation());
  }
  balance_point_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    balance_point_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_balance_point().empty()) {
    balance_point_.Set(from._internal_balance_point(), 
      GetArenaForAllocation());
  }
  delta_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    delta_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_delta().empty()) {
    delta_.Set(from._internal_delta(), 
      GetArenaForAllocation());
  }
  gamma_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    gamma_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_gamma().empty()) {
    gamma_.Set(from._internal_gamma(), 
      GetArenaForAllocation());
  }
  theta_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    theta_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_theta().empty()) {
    theta_.Set(from._internal_theta(), 
      GetArenaForAllocation());
  }
  vega_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    vega_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_vega().empty()) {
    vega_.Set(from._internal_vega(), 
      GetArenaForAllocation());
  }
  rho_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    rho_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_rho().empty()) {
    rho_.Set(from._internal_rho(), 
      GetArenaForAllocation());
  }
  ::memcpy(&volume_, &from.volume_,
    static_cast<size_t>(reinterpret_cast<char*>(&open_interest_) -
    reinterpret_cast<char*>(&volume_)) + sizeof(open_interest_));
  // @@protoc_insertion_point(copy_constructor:longbridge.quote.v1.SecurityCalcIndex)
}

inline void SecurityCalcIndex::SharedCtor() {
symbol_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  symbol_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
last_done_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  last_done_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
change_val_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  change_val_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
change_rate_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  change_rate_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
turnover_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  turnover_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
ytd_change_rate_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  ytd_change_rate_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
turnover_rate_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  turnover_rate_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
total_market_value_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  total_market_value_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
capital_flow_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  capital_flow_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
amplitude_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  amplitude_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
volume_ratio_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  volume_ratio_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
pe_ttm_ratio_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  pe_ttm_ratio_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
pb_ratio_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  pb_ratio_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
dividend_ratio_ttm_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  dividend_ratio_ttm_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
five_day_change_rate_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  five_day_change_rate_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
ten_day_change_rate_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  ten_day_change_rate_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
half_year_change_rate_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  half_year_change_rate_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
five_minutes_change_rate_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  five_minutes_change_rate_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
expiry_date_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  expiry_date_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
strike_price_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  strike_price_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
upper_strike_price_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  upper_strike_price_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
lower_strike_price_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  lower_strike_price_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
outstanding_ratio_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  outstanding_ratio_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
premium_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  premium_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
itm_otm_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  itm_otm_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
implied_volatility_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  implied_volatility_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
warrant_delta_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  warrant_delta_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
call_price_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  call_price_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
to_call_price_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  to_call_price_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
effective_leverage_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  effective_leverage_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
leverage_ratio_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  leverage_ratio_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
conversion_ratio_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  conversion_ratio_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
balance_point_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  balance_point_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
delta_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  delta_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
gamma_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  gamma_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
theta_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  theta_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
vega_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  vega_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
rho_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  rho_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
    reinterpret_cast<char*>(&volume_) - reinterpret_cast<char*>(this)),
    0, static_cast<size_t>(reinterpret_cast<char*>(&open_interest_) -
    reinterpret_cast<char*>(&volume_)) + sizeof(open_interest_));
}

SecurityCalcIndex::~SecurityCalcIndex() {
  // @@protoc_insertion_point(destructor:longbridge.quote.v1.SecurityCalcIndex)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void SecurityCalcIndex::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  symbol_.Destroy();
  last_done_.Destroy();
  change_val_.Destroy();
  change_rate_.Destroy();
  turnover_.Destroy();
  ytd_change_rate_.Destroy();
  turnover_rate_.Destroy();
  total_market_value_.Destroy();
  capital_flow_.Destroy();
  amplitude_.Destroy();
  volume_ratio_.Destroy();
  pe_ttm_ratio_.Destroy();
  pb_ratio_.Destroy();
  dividend_ratio_ttm_.Destroy();
  five_day_change_rate_.Destroy();
  ten_day_change_rate_.Destroy();
  half_year_change_rate_.Destroy();
  five_minutes_change_rate_.Destroy();
  expiry_date_.Destroy();
  strike_price_.Destroy();
  upper_strike_price_.Destroy();
  lower_strike_price_.Destroy();
  outstanding_ratio_.Destroy();
  premium_.Destroy();
  itm_otm_.Destroy();
  implied_volatility_.Destroy();
  warrant_delta_.Destroy();
  call_price_.Destroy();
  to_call_price_.Destroy();
  effective_leverage_.Destroy();
  leverage_ratio_.Destroy();
  conversion_ratio_.Destroy();
  balance_point_.Destroy();
  delta_.Destroy();
  gamma_.Destroy();
  theta_.Destroy();
  vega_.Destroy();
  rho_.Destroy();
}

void SecurityCalcIndex::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void SecurityCalcIndex::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridge.quote.v1.SecurityCalcIndex)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  symbol_.ClearToEmpty();
  last_done_.ClearToEmpty();
  change_val_.ClearToEmpty();
  change_rate_.ClearToEmpty();
  turnover_.ClearToEmpty();
  ytd_change_rate_.ClearToEmpty();
  turnover_rate_.ClearToEmpty();
  total_market_value_.ClearToEmpty();
  capital_flow_.ClearToEmpty();
  amplitude_.ClearToEmpty();
  volume_ratio_.ClearToEmpty();
  pe_ttm_ratio_.ClearToEmpty();
  pb_ratio_.ClearToEmpty();
  dividend_ratio_ttm_.ClearToEmpty();
  five_day_change_rate_.ClearToEmpty();
  ten_day_change_rate_.ClearToEmpty();
  half_year_change_rate_.ClearToEmpty();
  five_minutes_change_rate_.ClearToEmpty();
  expiry_date_.ClearToEmpty();
  strike_price_.ClearToEmpty();
  upper_strike_price_.ClearToEmpty();
  lower_strike_price_.ClearToEmpty();
  outstanding_ratio_.ClearToEmpty();
  premium_.ClearToEmpty();
  itm_otm_.ClearToEmpty();
  implied_volatility_.ClearToEmpty();
  warrant_delta_.ClearToEmpty();
  call_price_.ClearToEmpty();
  to_call_price_.ClearToEmpty();
  effective_leverage_.ClearToEmpty();
  leverage_ratio_.ClearToEmpty();
  conversion_ratio_.ClearToEmpty();
  balance_point_.ClearToEmpty();
  delta_.ClearToEmpty();
  gamma_.ClearToEmpty();
  theta_.ClearToEmpty();
  vega_.ClearToEmpty();
  rho_.ClearToEmpty();
  ::memset(&volume_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&open_interest_) -
      reinterpret_cast<char*>(&volume_)) + sizeof(open_interest_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* SecurityCalcIndex::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string symbol = 1 [json_name = "symbol"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_symbol();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.SecurityCalcIndex.symbol"));
        } else
          goto handle_unusual;
        continue;
      // string last_done = 2 [json_name = "lastDone"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
          auto str = _internal_mutable_last_done();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.SecurityCalcIndex.last_done"));
        } else
          goto handle_unusual;
        continue;
      // string change_val = 3 [json_name = "changeVal"];
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 26)) {
          auto str = _internal_mutable_change_val();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.SecurityCalcIndex.change_val"));
        } else
          goto handle_unusual;
        continue;
      // string change_rate = 4 [json_name = "changeRate"];
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 34)) {
          auto str = _internal_mutable_change_rate();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.SecurityCalcIndex.change_rate"));
        } else
          goto handle_unusual;
        continue;
      // int64 volume = 5 [json_name = "volume"];
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 40)) {
          volume_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string turnover = 6 [json_name = "turnover"];
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 50)) {
          auto str = _internal_mutable_turnover();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.SecurityCalcIndex.turnover"));
        } else
          goto handle_unusual;
        continue;
      // string ytd_change_rate = 7 [json_name = "ytdChangeRate"];
      case 7:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 58)) {
          auto str = _internal_mutable_ytd_change_rate();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.SecurityCalcIndex.ytd_change_rate"));
        } else
          goto handle_unusual;
        continue;
      // string turnover_rate = 8 [json_name = "turnoverRate"];
      case 8:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 66)) {
          auto str = _internal_mutable_turnover_rate();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.SecurityCalcIndex.turnover_rate"));
        } else
          goto handle_unusual;
        continue;
      // string total_market_value = 9 [json_name = "totalMarketValue"];
      case 9:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 74)) {
          auto str = _internal_mutable_total_market_value();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.SecurityCalcIndex.total_market_value"));
        } else
          goto handle_unusual;
        continue;
      // string capital_flow = 10 [json_name = "capitalFlow"];
      case 10:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 82)) {
          auto str = _internal_mutable_capital_flow();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.SecurityCalcIndex.capital_flow"));
        } else
          goto handle_unusual;
        continue;
      // string amplitude = 11 [json_name = "amplitude"];
      case 11:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 90)) {
          auto str = _internal_mutable_amplitude();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.SecurityCalcIndex.amplitude"));
        } else
          goto handle_unusual;
        continue;
      // string volume_ratio = 12 [json_name = "volumeRatio"];
      case 12:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 98)) {
          auto str = _internal_mutable_volume_ratio();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.SecurityCalcIndex.volume_ratio"));
        } else
          goto handle_unusual;
        continue;
      // string pe_ttm_ratio = 13 [json_name = "peTtmRatio"];
      case 13:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 106)) {
          auto str = _internal_mutable_pe_ttm_ratio();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.SecurityCalcIndex.pe_ttm_ratio"));
        } else
          goto handle_unusual;
        continue;
      // string pb_ratio = 14 [json_name = "pbRatio"];
      case 14:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 114)) {
          auto str = _internal_mutable_pb_ratio();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.SecurityCalcIndex.pb_ratio"));
        } else
          goto handle_unusual;
        continue;
      // string dividend_ratio_ttm = 15 [json_name = "dividendRatioTtm"];
      case 15:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 122)) {
          auto str = _internal_mutable_dividend_ratio_ttm();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.SecurityCalcIndex.dividend_ratio_ttm"));
        } else
          goto handle_unusual;
        continue;
      // string five_day_change_rate = 16 [json_name = "fiveDayChangeRate"];
      case 16:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 130)) {
          auto str = _internal_mutable_five_day_change_rate();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.SecurityCalcIndex.five_day_change_rate"));
        } else
          goto handle_unusual;
        continue;
      // string ten_day_change_rate = 17 [json_name = "tenDayChangeRate"];
      case 17:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 138)) {
          auto str = _internal_mutable_ten_day_change_rate();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.SecurityCalcIndex.ten_day_change_rate"));
        } else
          goto handle_unusual;
        continue;
      // string half_year_change_rate = 18 [json_name = "halfYearChangeRate"];
      case 18:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 146)) {
          auto str = _internal_mutable_half_year_change_rate();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.SecurityCalcIndex.half_year_change_rate"));
        } else
          goto handle_unusual;
        continue;
      // string five_minutes_change_rate = 19 [json_name = "fiveMinutesChangeRate"];
      case 19:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 154)) {
          auto str = _internal_mutable_five_minutes_change_rate();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.SecurityCalcIndex.five_minutes_change_rate"));
        } else
          goto handle_unusual;
        continue;
      // string expiry_date = 20 [json_name = "expiryDate"];
      case 20:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 162)) {
          auto str = _internal_mutable_expiry_date();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.SecurityCalcIndex.expiry_date"));
        } else
          goto handle_unusual;
        continue;
      // string strike_price = 21 [json_name = "strikePrice"];
      case 21:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 170)) {
          auto str = _internal_mutable_strike_price();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.SecurityCalcIndex.strike_price"));
        } else
          goto handle_unusual;
        continue;
      // string upper_strike_price = 22 [json_name = "upperStrikePrice"];
      case 22:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 178)) {
          auto str = _internal_mutable_upper_strike_price();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.SecurityCalcIndex.upper_strike_price"));
        } else
          goto handle_unusual;
        continue;
      // string lower_strike_price = 23 [json_name = "lowerStrikePrice"];
      case 23:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 186)) {
          auto str = _internal_mutable_lower_strike_price();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.SecurityCalcIndex.lower_strike_price"));
        } else
          goto handle_unusual;
        continue;
      // int64 outstanding_qty = 24 [json_name = "outstandingQty"];
      case 24:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 192)) {
          outstanding_qty_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string outstanding_ratio = 25 [json_name = "outstandingRatio"];
      case 25:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 202)) {
          auto str = _internal_mutable_outstanding_ratio();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.SecurityCalcIndex.outstanding_ratio"));
        } else
          goto handle_unusual;
        continue;
      // string premium = 26 [json_name = "premium"];
      case 26:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 210)) {
          auto str = _internal_mutable_premium();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.SecurityCalcIndex.premium"));
        } else
          goto handle_unusual;
        continue;
      // string itm_otm = 27 [json_name = "itmOtm"];
      case 27:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 218)) {
          auto str = _internal_mutable_itm_otm();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.SecurityCalcIndex.itm_otm"));
        } else
          goto handle_unusual;
        continue;
      // string implied_volatility = 28 [json_name = "impliedVolatility"];
      case 28:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 226)) {
          auto str = _internal_mutable_implied_volatility();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.SecurityCalcIndex.implied_volatility"));
        } else
          goto handle_unusual;
        continue;
      // string warrant_delta = 29 [json_name = "warrantDelta"];
      case 29:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 234)) {
          auto str = _internal_mutable_warrant_delta();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.SecurityCalcIndex.warrant_delta"));
        } else
          goto handle_unusual;
        continue;
      // string call_price = 30 [json_name = "callPrice"];
      case 30:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 242)) {
          auto str = _internal_mutable_call_price();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.SecurityCalcIndex.call_price"));
        } else
          goto handle_unusual;
        continue;
      // string to_call_price = 31 [json_name = "toCallPrice"];
      case 31:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 250)) {
          auto str = _internal_mutable_to_call_price();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.SecurityCalcIndex.to_call_price"));
        } else
          goto handle_unusual;
        continue;
      // string effective_leverage = 32 [json_name = "effectiveLeverage"];
      case 32:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 2)) {
          auto str = _internal_mutable_effective_leverage();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.SecurityCalcIndex.effective_leverage"));
        } else
          goto handle_unusual;
        continue;
      // string leverage_ratio = 33 [json_name = "leverageRatio"];
      case 33:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_leverage_ratio();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.SecurityCalcIndex.leverage_ratio"));
        } else
          goto handle_unusual;
        continue;
      // string conversion_ratio = 34 [json_name = "conversionRatio"];
      case 34:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
          auto str = _internal_mutable_conversion_ratio();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.SecurityCalcIndex.conversion_ratio"));
        } else
          goto handle_unusual;
        continue;
      // string balance_point = 35 [json_name = "balancePoint"];
      case 35:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 26)) {
          auto str = _internal_mutable_balance_point();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.SecurityCalcIndex.balance_point"));
        } else
          goto handle_unusual;
        continue;
      // int64 open_interest = 36 [json_name = "openInterest"];
      case 36:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 32)) {
          open_interest_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string delta = 37 [json_name = "delta"];
      case 37:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 42)) {
          auto str = _internal_mutable_delta();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.SecurityCalcIndex.delta"));
        } else
          goto handle_unusual;
        continue;
      // string gamma = 38 [json_name = "gamma"];
      case 38:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 50)) {
          auto str = _internal_mutable_gamma();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.SecurityCalcIndex.gamma"));
        } else
          goto handle_unusual;
        continue;
      // string theta = 39 [json_name = "theta"];
      case 39:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 58)) {
          auto str = _internal_mutable_theta();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.SecurityCalcIndex.theta"));
        } else
          goto handle_unusual;
        continue;
      // string vega = 40 [json_name = "vega"];
      case 40:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 66)) {
          auto str = _internal_mutable_vega();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.SecurityCalcIndex.vega"));
        } else
          goto handle_unusual;
        continue;
      // string rho = 41 [json_name = "rho"];
      case 41:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 74)) {
          auto str = _internal_mutable_rho();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.SecurityCalcIndex.rho"));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* SecurityCalcIndex::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridge.quote.v1.SecurityCalcIndex)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_symbol().data(), static_cast<int>(this->_internal_symbol().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.SecurityCalcIndex.symbol");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_symbol(), target);
  }

  // string last_done = 2 [json_name = "lastDone"];
  if (!this->_internal_last_done().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_last_done().data(), static_cast<int>(this->_internal_last_done().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.SecurityCalcIndex.last_done");
    target = stream->WriteStringMaybeAliased(
        2, this->_internal_last_done(), target);
  }

  // string change_val = 3 [json_name = "changeVal"];
  if (!this->_internal_change_val().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_change_val().data(), static_cast<int>(this->_internal_change_val().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.SecurityCalcIndex.change_val");
    target = stream->WriteStringMaybeAliased(
        3, this->_internal_change_val(), target);
  }

  // string change_rate = 4 [json_name = "changeRate"];
  if (!this->_internal_change_rate().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_change_rate().data(), static_cast<int>(this->_internal_change_rate().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.SecurityCalcIndex.change_rate");
    target = stream->WriteStringMaybeAliased(
        4, this->_internal_change_rate(), target);
  }

  // int64 volume = 5 [json_name = "volume"];
  if (this->_internal_volume() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt64ToArray(5, this->_internal_volume(), target);
  }

  // string turnover = 6 [json_name = "turnover"];
  if (!this->_internal_turnover().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_turnover().data(), static_cast<int>(this->_internal_turnover().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.SecurityCalcIndex.turnover");
    target = stream->WriteStringMaybeAliased(
        6, this->_internal_turnover(), target);
  }

  // string ytd_change_rate = 7 [json_name = "ytdChangeRate"];
  if (!this->_internal_ytd_change_rate().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_ytd_change_rate().data(), static_cast<int>(this->_internal_ytd_change_rate().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.SecurityCalcIndex.ytd_change_rate");
    target = stream->WriteStringMaybeAliased(
        7, this->_internal_ytd_change_rate(), target);
  }

  // string turnover_rate = 8 [json_name = "turnoverRate"];
  if (!this->_internal_turnover_rate().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_turnover_rate().data(), static_cast<int>(this->_internal_turnover_rate().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.SecurityCalcIndex.turnover_rate");
    target = stream->WriteStringMaybeAliased(
        8, this->_internal_turnover_rate(), target);
  }

  // string total_market_value = 9 [json_name = "totalMarketValue"];
  if (!this->_internal_total_market_value().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_total_market_value().data(), static_cast<int>(this->_internal_total_market_value().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.SecurityCalcIndex.total_market_value");
    target = stream->WriteStringMaybeAliased(
        9, this->_internal_total_market_value(), target);
  }

  // string capital_flow = 10 [json_name = "capitalFlow"];
  if (!this->_internal_capital_flow().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_capital_flow().data(), static_cast<int>(this->_internal_capital_flow().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.SecurityCalcIndex.capital_flow");
    target = stream->WriteStringMaybeAliased(
        10, this->_internal_capital_flow(), target);
  }

  // string amplitude = 11 [json_name = "amplitude"];
  if (!this->_internal_amplitude().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_amplitude().data(), static_cast<int>(this->_internal_amplitude().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.SecurityCalcIndex.amplitude");
    target = stream->WriteStringMaybeAliased(
        11, this->_internal_amplitude(), target);
  }

  // string volume_ratio = 12 [json_name = "volumeRatio"];
  if (!this->_internal_volume_ratio().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_volume_ratio().data(), static_cast<int>(this->_internal_volume_ratio().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.SecurityCalcIndex.volume_ratio");
    target = stream->WriteStringMaybeAliased(
        12, this->_internal_volume_ratio(), target);
  }

  // string pe_ttm_ratio = 13 [json_name = "peTtmRatio"];
  if (!this->_internal_pe_ttm_ratio().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_pe_ttm_ratio().data(), static_cast<int>(this->_internal_pe_ttm_ratio().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.SecurityCalcIndex.pe_ttm_ratio");
    target = stream->WriteStringMaybeAliased(
        13, this->_internal_pe_ttm_ratio(), target);
  }

  // string pb_ratio = 14 [json_name = "pbRatio"];
  if (!this->_internal_pb_ratio().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_pb_ratio().data(), static_cast<int>(this->_internal_pb_ratio().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.SecurityCalcIndex.pb_ratio");
    target = stream->WriteStringMaybeAliased(
        14, this->_internal_pb_ratio(), target);
  }

  // string dividend_ratio_ttm = 15 [json_name = "dividendRatioTtm"];
  if (!this->_internal_dividend_ratio_ttm().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_dividend_ratio_ttm().data(), static_cast<int>(this->_internal_dividend_ratio_ttm().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.SecurityCalcIndex.dividend_ratio_ttm");
    target = stream->WriteStringMaybeAliased(
        15, this->_internal_dividend_ratio_ttm(), target);
  }

  // string five_day_change_rate = 16 [json_name = "fiveDayChangeRate"];
  if (!this->_internal_five_day_change_rate().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_five_day_change_rate().data(), static_cast<int>(this->_internal_five_day_change_rate().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.SecurityCalcIndex.five_day_change_rate");
    target = stream->WriteStringMaybeAliased(
        16, this->_internal_five_day_change_rate(), target);
  }

  // string ten_day_change_rate = 17 [json_name = "tenDayChangeRate"];
  if (!this->_internal_ten_day_change_rate().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_ten_day_change_rate().data(), static_cast<int>(this->_internal_ten_day_change_rate().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.SecurityCalcIndex.ten_day_change_rate");
    target = stream->WriteStringMaybeAliased(
        17, this->_internal_ten_day_change_rate(), target);
  }

  // string half_year_change_rate = 18 [json_name = "halfYearChangeRate"];
  if (!this->_internal_half_year_change_rate().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_half_year_change_rate().data(), static_cast<int>(this->_internal_half_year_change_rate().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.SecurityCalcIndex.half_year_change_rate");
    target = stream->WriteStringMaybeAliased(
        18, this->_internal_half_year_change_rate(), target);
  }

  // string five_minutes_change_rate = 19 [json_name = "fiveMinutesChangeRate"];
  if (!this->_internal_five_minutes_change_rate().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_five_minutes_change_rate().data(), static_cast<int>(this->_internal_five_minutes_change_rate().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.SecurityCalcIndex.five_minutes_change_rate");
    target = stream->WriteStringMaybeAliased(
        19, this->_internal_five_minutes_change_rate(), target);
  }

  // string expiry_date = 20 [json_name = "expiryDate"];
  if (!this->_internal_expiry_date().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_expiry_date().data(), static_cast<int>(this->_internal_expiry_date().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.SecurityCalcIndex.expiry_date");
    target = stream->WriteStringMaybeAliased(
        20, this->_internal_expiry_date(), target);
  }

  // string strike_price = 21 [json_name = "strikePrice"];
  if (!this->_internal_strike_price().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_strike_price().data(), static_cast<int>(this->_internal_strike_price().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.SecurityCalcIndex.strike_price");
    target = stream->WriteStringMaybeAliased(
        21, this->_internal_strike_price(), target);
  }

  // string upper_strike_price = 22 [json_name = "upperStrikePrice"];
  if (!this->_internal_upper_strike_price().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_upper_strike_price().data(), static_cast<int>(this->_internal_upper_strike_price().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.SecurityCalcIndex.upper_strike_price");
    target = stream->WriteStringMaybeAliased(
        22, this->_internal_upper_strike_price(), target);
  }

  // string lower_strike_price = 23 [json_name = "lowerStrikePrice"];
  if (!this->_internal_lower_strike_price().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_lower_strike_price().data(), static_cast<int>(this->_internal_lower_strike_price().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.SecurityCalcIndex.lower_strike_price");
    target = stream->WriteStringMaybeAliased(
        23, this->_internal_lower_strike_price(), target);
  }

  // int64 outstanding_qty = 24 [json_name = "outstandingQty"];
  if (this->_internal_outstanding_qty() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt64ToArray(24, this->_internal_outstanding_qty(), target);
  }

  // string outstanding_ratio = 25 [json_name = "outstandingRatio"];
  if (!this->_internal_outstanding_ratio().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_outstanding_ratio().data(), static_cast<int>(this->_internal_outstanding_ratio().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.SecurityCalcIndex.outstanding_ratio");
    target = stream->WriteStringMaybeAliased(
        25, this->_internal_outstanding_ratio(), target);
  }

  // string premium = 26 [json_name = "premium"];
  if (!this->_internal_premium().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_premium().data(), static_cast<int>(this->_internal_premium().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.SecurityCalcIndex.premium");
    target = stream->WriteStringMaybeAliased(
        26, this->_internal_premium(), target);
  }

  // string itm_otm = 27 [json_name = "itmOtm"];
  if (!this->_internal_itm_otm().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_itm_otm().data(), static_cast<int>(this->_internal_itm_otm().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.SecurityCalcIndex.itm_otm");
    target = stream->WriteStringMaybeAliased(
        27, this->_internal_itm_otm(), target);
  }

  // string implied_volatility = 28 [json_name = "impliedVolatility"];
  if (!this->_internal_implied_volatility().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_implied_volatility().data(), static_cast<int>(this->_internal_implied_volatility().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.SecurityCalcIndex.implied_volatility");
    target = stream->WriteStringMaybeAliased(
        28, this->_internal_implied_volatility(), target);
  }

  // string warrant_delta = 29 [json_name = "warrantDelta"];
  if (!this->_internal_warrant_delta().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_warrant_delta().data(), static_cast<int>(this->_internal_warrant_delta().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.SecurityCalcIndex.warrant_delta");
    target = stream->WriteStringMaybeAliased(
        29, this->_internal_warrant_delta(), target);
  }

  // string call_price = 30 [json_name = "callPrice"];
  if (!this->_internal_call_price().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_call_price().data(), static_cast<int>(this->_internal_call_price().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.SecurityCalcIndex.call_price");
    target = stream->WriteStringMaybeAliased(
        30, this->_internal_call_price(), target);
  }

  // string to_call_price = 31 [json_name = "toCallPrice"];
  if (!this->_internal_to_call_price().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_to_call_price().data(), static_cast<int>(this->_internal_to_call_price().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.SecurityCalcIndex.to_call_price");
    target = stream->WriteStringMaybeAliased(
        31, this->_internal_to_call_price(), target);
  }

  // string effective_leverage = 32 [json_name = "effectiveLeverage"];
  if (!this->_internal_effective_leverage().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_effective_leverage().data(), static_cast<int>(this->_internal_effective_leverage().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.SecurityCalcIndex.effective_leverage");
    target = stream->WriteStringMaybeAliased(
        32, this->_internal_effective_leverage(), target);
  }

  // string leverage_ratio = 33 [json_name = "leverageRatio"];
  if (!this->_internal_leverage_ratio().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_leverage_ratio().data(), static_cast<int>(this->_internal_leverage_ratio().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.SecurityCalcIndex.leverage_ratio");
    target = stream->WriteStringMaybeAliased(
        33, this->_internal_leverage_ratio(), target);
  }

  // string conversion_ratio = 34 [json_name = "conversionRatio"];
  if (!this->_internal_conversion_ratio().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_conversion_ratio().data(), static_cast<int>(this->_internal_conversion_ratio().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.SecurityCalcIndex.conversion_ratio");
    target = stream->WriteStringMaybeAliased(
        34, this->_internal_conversion_ratio(), target);
  }

  // string balance_point = 35 [json_name = "balancePoint"];
  if (!this->_internal_balance_point().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_balance_point().data(), static_cast<int>(this->_internal_balance_point().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.SecurityCalcIndex.balance_point");
    target = stream->WriteStringMaybeAliased(
        35, this->_internal_balance_point(), target);
  }

  // int64 open_interest = 36 [json_name = "openInterest"];
  if (this->_internal_open_interest() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt64ToArray(36, this->_internal_open_interest(), target);
  }

  // string delta = 37 [json_name = "delta"];
  if (!this->_internal_delta().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_delta().data(), static_cast<int>(this->_internal_delta().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.SecurityCalcIndex.delta");
    target = stream->WriteStringMaybeAliased(
        37, this->_internal_delta(), target);
  }

  // string gamma = 38 [json_name = "gamma"];
  if (!this->_internal_gamma().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_gamma().data(), static_cast<int>(this->_internal_gamma().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.SecurityCalcIndex.gamma");
    target = stream->WriteStringMaybeAliased(
        38, this->_internal_gamma(), target);
  }

  // string theta = 39 [json_name = "theta"];
  if (!this->_internal_theta().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_theta().data(), static_cast<int>(this->_internal_theta().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.SecurityCalcIndex.theta");
    target = stream->WriteStringMaybeAliased(
        39, this->_internal_theta(), target);
  }

  // string vega = 40 [json_name = "vega"];
  if (!this->_internal_vega().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_vega().data(), static_cast<int>(this->_internal_vega().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.SecurityCalcIndex.vega");
    target = stream->WriteStringMaybeAliased(
        40, this->_internal_vega(), target);
  }

  // string rho = 41 [json_name = "rho"];
  if (!this->_internal_rho().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_rho().data(), static_cast<int>(this->_internal_rho().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.SecurityCalcIndex.rho");
    target = stream->WriteStringMaybeAliased(
        41, this->_internal_rho(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridge.quote.v1.SecurityCalcIndex)
  return target;
}

size_t SecurityCalcIndex::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridge.quote.v1.SecurityCalcIndex)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_symbol());
  }

  // string last_done = 2 [json_name = "lastDone"];
  if (!this->_internal_last_done().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_last_done());
  }

  // string change_val = 3 [json_name = "changeVal"];
  if (!this->_internal_change_val().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_change_val());
  }

  // string change_rate = 4 [json_name = "changeRate"];
  if (!this->_internal_change_rate().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_change_rate());
  }

  // string turnover = 6 [json_name = "turnover"];
  if (!this->_internal_turnover().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_turnover());
  }

  // string ytd_change_rate = 7 [json_name = "ytdChangeRate"];
  if (!this->_internal_ytd_change_rate().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_ytd_change_rate());
  }

  // string turnover_rate = 8 [json_name = "turnoverRate"];
  if (!this->_internal_turnover_rate().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_turnover_rate());
  }

  // string total_market_value = 9 [json_name = "totalMarketValue"];
  if (!this->_internal_total_market_value().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_total_market_value());
  }

  // string capital_flow = 10 [json_name = "capitalFlow"];
  if (!this->_internal_capital_flow().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_capital_flow());
  }

  // string amplitude = 11 [json_name = "amplitude"];
  if (!this->_internal_amplitude().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_amplitude());
  }

  // string volume_ratio = 12 [json_name = "volumeRatio"];
  if (!this->_internal_volume_ratio().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_volume_ratio());
  }

  // string pe_ttm_ratio = 13 [json_name = "peTtmRatio"];
  if (!this->_internal_pe_ttm_ratio().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_pe_ttm_ratio());
  }

  // string pb_ratio = 14 [json_name = "pbRatio"];
  if (!this->_internal_pb_ratio().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_pb_ratio());
  }

  // string dividend_ratio_ttm = 15 [json_name = "dividendRatioTtm"];
  if (!this->_internal_dividend_ratio_ttm().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_dividend_ratio_ttm());
  }

  // string five_day_change_rate = 16 [json_name = "fiveDayChangeRate"];
  if (!this->_internal_five_day_change_rate().empty()) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_five_day_change_rate());
  }

  // string ten_day_change_rate = 17 [json_name = "tenDayChangeRate"];
  if (!this->_internal_ten_day_change_rate().empty()) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_ten_day_change_rate());
  }

  // string half_year_change_rate = 18 [json_name = "halfYearChangeRate"];
  if (!this->_internal_half_year_change_rate().empty()) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_half_year_change_rate());
  }

  // string five_minutes_change_rate = 19 [json_name = "fiveMinutesChangeRate"];
  if (!this->_internal_five_minutes_change_rate().empty()) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_five_minutes_change_rate());
  }

  // string expiry_date = 20 [json_name = "expiryDate"];
  if (!this->_internal_expiry_date().empty()) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_expiry_date());
  }

  // string strike_price = 21 [json_name = "strikePrice"];
  if (!this->_internal_strike_price().empty()) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_strike_price());
  }

  // string upper_strike_price = 22 [json_name = "upperStrikePrice"];
  if (!this->_internal_upper_strike_price().empty()) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_upper_strike_price());
  }

  // string lower_strike_price = 23 [json_name = "lowerStrikePrice"];
  if (!this->_internal_lower_strike_price().empty()) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_lower_strike_price());
  }

  // string outstanding_ratio = 25 [json_name = "outstandingRatio"];
  if (!this->_internal_outstanding_ratio().empty()) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_outstanding_ratio());
  }

  // string premium = 26 [json_name = "premium"];
  if (!this->_internal_premium().empty()) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_premium());
  }

  // string itm_otm = 27 [json_name = "itmOtm"];
  if (!this->_internal_itm_otm().empty()) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_itm_otm());
  }

  // string implied_volatility = 28 [json_name = "impliedVolatility"];
  if (!this->_internal_implied_volatility().empty()) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_implied_volatility());
  }

  // string warrant_delta = 29 [json_name = "warrantDelta"];
  if (!this->_internal_warrant_delta().empty()) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_warrant_delta());
  }

  // string call_price = 30 [json_name = "callPrice"];
  if (!this->_internal_call_price().empty()) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_call_price());
  }

  // string to_call_price = 31 [json_name = "toCallPrice"];
  if (!this->_internal_to_call_price().empty()) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_to_call_price());
  }

  // string effective_leverage = 32 [json_name = "effectiveLeverage"];
  if (!this->_internal_effective_leverage().empty()) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_effective_leverage());
  }

  // string leverage_ratio = 33 [json_name = "leverageRatio"];
  if (!this->_internal_leverage_ratio().empty()) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_leverage_ratio());
  }

  // string conversion_ratio = 34 [json_name = "conversionRatio"];
  if (!this->_internal_conversion_ratio().empty()) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_conversion_ratio());
  }

  // string balance_point = 35 [json_name = "balancePoint"];
  if (!this->_internal_balance_point().empty()) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_balance_point());
  }

  // string delta = 37 [json_name = "delta"];
  if (!this->_internal_delta().empty()) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_delta());
  }

  // string gamma = 38 [json_name = "gamma"];
  if (!this->_internal_gamma().empty()) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_gamma());
  }

  // string theta = 39 [json_name = "theta"];
  if (!this->_internal_theta().empty()) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_theta());
  }

  // string vega = 40 [json_name = "vega"];
  if (!this->_internal_vega().empty()) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_vega());
  }

  // string rho = 41 [json_name = "rho"];
  if (!this->_internal_rho().empty()) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_rho());
  }

  // int64 volume = 5 [json_name = "volume"];
  if (this->_internal_volume() != 0) {
    total_size += ::_pbi::WireFormatLite::Int64SizePlusOne(this->_internal_volume());
  }

  // int64 outstanding_qty = 24 [json_name = "outstandingQty"];
  if (this->_internal_outstanding_qty() != 0) {
    total_size += 2 +
      ::_pbi::WireFormatLite::Int64Size(
        this->_internal_outstanding_qty());
  }

  // int64 open_interest = 36 [json_name = "openInterest"];
  if (this->_internal_open_interest() != 0) {
    total_size += 2 +
      ::_pbi::WireFormatLite::Int64Size(
        this->_internal_open_interest());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData SecurityCalcIndex::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    SecurityCalcIndex::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*SecurityCalcIndex::GetClassData() const { return &_class_data_; }

void SecurityCalcIndex::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<SecurityCalcIndex *>(to)->MergeFrom(
      static_cast<const SecurityCalcIndex &>(from));
}


void SecurityCalcIndex::MergeFrom(const SecurityCalcIndex& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:longbridge.quote.v1.SecurityCalcIndex)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (!from._internal_symbol().empty()) {
    _internal_set_symbol(from._internal_symbol());
  }
  if (!from._internal_last_done().empty()) {
    _internal_set_last_done(from._internal_last_done());
  }
  if (!from._internal_change_val().empty()) {
    _internal_set_change_val(from._internal_change_val());
  }
  if (!from._internal_change_rate().empty()) {
    _internal_set_change_rate(from._internal_change_rate());
  }
  if (!from._internal_turnover().empty()) {
    _internal_set_turnover(from._internal_turnover());
  }
  if (!from._internal_ytd_change_rate().empty()) {
    _internal_set_ytd_change_rate(from._internal_ytd_change_rate());
  }
  if (!from._internal_turnover_rate().empty()) {
    _internal_set_turnover_rate(from._internal_turnover_rate());
  }
  if (!from._internal_total_market_value().empty()) {
    _internal_set_total_market_value(from._internal_total_market_value());
  }
  if (!from._internal_capital_flow().empty()) {
    _internal_set_capital_flow(from._internal_capital_flow());
  }
  if (!from._internal_amplitude().empty()) {
    _internal_set_amplitude(from._internal_amplitude());
  }
  if (!from._internal_volume_ratio().empty()) {
    _internal_set_volume_ratio(from._internal_volume_ratio());
  }
  if (!from._internal_pe_ttm_ratio().empty()) {
    _internal_set_pe_ttm_ratio(from._internal_pe_ttm_ratio());
  }
  if (!from._internal_pb_ratio().empty()) {
    _internal_set_pb_ratio(from._internal_pb_ratio());
  }
  if (!from._internal_dividend_ratio_ttm().empty()) {
    _internal_set_dividend_ratio_ttm(from._internal_dividend_ratio_ttm());
  }
  if (!from._internal_five_day_change_rate().empty()) {
    _internal_set_five_day_change_rate(from._internal_five_day_change_rate());
  }
  if (!from._internal_ten_day_change_rate().empty()) {
    _internal_set_ten_day_change_rate(from._internal_ten_day_change_rate());
  }
  if (!from._internal_half_year_change_rate().empty()) {
    _internal_set_half_year_change_rate(from._internal_half_year_change_rate());
  }
  if (!from._internal_five_minutes_change_rate().empty()) {
    _internal_set_five_minutes_change_rate(from._internal_five_minutes_change_rate());
  }
  if (!from._internal_expiry_date().empty()) {
    _internal_set_expiry_date(from._internal_expiry_date());
  }
  if (!from._internal_strike_price().empty()) {
    _internal_set_strike_price(from._internal_strike_price());
  }
  if (!from._internal_upper_strike_price().empty()) {
    _internal_set_upper_strike_price(from._internal_upper_strike_price());
  }
  if (!from._internal_lower_strike_price().empty()) {
    _internal_set_lower_strike_price(from._internal_lower_strike_price());
  }
  if (!from._internal_outstanding_ratio().empty()) {
    _internal_set_outstanding_ratio(from._internal_outstanding_ratio());
  }
  if (!from._internal_premium().empty()) {
    _internal_set_premium(from._internal_premium());
  }
  if (!from._internal_itm_otm().empty()) {
    _internal_set_itm_otm(from._internal_itm_otm());
  }
  if (!from._internal_implied_volatility().empty()) {
    _internal_set_implied_volatility(from._internal_implied_volatility());
  }
  if (!from._internal_warrant_delta().empty()) {
    _internal_set_warrant_delta(from._internal_warrant_delta());
  }
  if (!from._internal_call_price().empty()) {
    _internal_set_call_price(from._internal_call_price());
  }
  if (!from._internal_to_call_price().empty()) {
    _internal_set_to_call_price(from._internal_to_call_price());
  }
  if (!from._internal_effective_leverage().empty()) {
    _internal_set_effective_leverage(from._internal_effective_leverage());
  }
  if (!from._internal_leverage_ratio().empty()) {
    _internal_set_leverage_ratio(from._internal_leverage_ratio());
  }
  if (!from._internal_conversion_ratio().empty()) {
    _internal_set_conversion_ratio(from._internal_conversion_ratio());
  }
  if (!from._internal_balance_point().empty()) {
    _internal_set_balance_point(from._internal_balance_point());
  }
  if (!from._internal_delta().empty()) {
    _internal_set_delta(from._internal_delta());
  }
  if (!from._internal_gamma().empty()) {
    _internal_set_gamma(from._internal_gamma());
  }
  if (!from._internal_theta().empty()) {
    _internal_set_theta(from._internal_theta());
  }
  if (!from._internal_vega().empty()) {
    _internal_set_vega(from._internal_vega());
  }
  if (!from._internal_rho().empty()) {
    _internal_set_rho(from._internal_rho());
  }
  if (from._internal_volume() != 0) {
    _internal_set_volume(from._internal_volume());
  }
  if (from._internal_outstanding_qty() != 0) {
    _internal_set_outstanding_qty(from._internal_outstanding_qty());
  }
  if (from._internal_open_interest() != 0) {
    _internal_set_open_interest(from._internal_open_interest());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void SecurityCalcIndex::CopyFrom(const SecurityCalcIndex& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridge.quote.v1.SecurityCalcIndex)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool SecurityCalcIndex::IsInitialized() const {
  return true;
}

void SecurityCalcIndex::InternalSwap(SecurityCalcIndex* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &symbol_, lhs_arena,
      &other->symbol_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &last_done_, lhs_arena,
      &other->last_done_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &change_val_, lhs_arena,
      &other->change_val_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &change_rate_, lhs_arena,
      &other->change_rate_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &turnover_, lhs_arena,
      &other->turnover_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &ytd_change_rate_, lhs_arena,
      &other->ytd_change_rate_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &turnover_rate_, lhs_arena,
      &other->turnover_rate_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &total_market_value_, lhs_arena,
      &other->total_market_value_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &capital_flow_, lhs_arena,
      &other->capital_flow_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &amplitude_, lhs_arena,
      &other->amplitude_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &volume_ratio_, lhs_arena,
      &other->volume_ratio_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &pe_ttm_ratio_, lhs_arena,
      &other->pe_ttm_ratio_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &pb_ratio_, lhs_arena,
      &other->pb_ratio_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &dividend_ratio_ttm_, lhs_arena,
      &other->dividend_ratio_ttm_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &five_day_change_rate_, lhs_arena,
      &other->five_day_change_rate_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &ten_day_change_rate_, lhs_arena,
      &other->ten_day_change_rate_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &half_year_change_rate_, lhs_arena,
      &other->half_year_change_rate_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &five_minutes_change_rate_, lhs_arena,
      &other->five_minutes_change_rate_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &expiry_date_, lhs_arena,
      &other->expiry_date_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &strike_price_, lhs_arena,
      &other->strike_price_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &upper_strike_price_, lhs_arena,
      &other->upper_strike_price_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &lower_strike_price_, lhs_arena,
      &other->lower_strike_price_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &outstanding_ratio_, lhs_arena,
      &other->outstanding_ratio_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &premium_, lhs_arena,
      &other->premium_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &itm_otm_, lhs_arena,
      &other->itm_otm_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &implied_volatility_, lhs_arena,
      &other->implied_volatility_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &warrant_delta_, lhs_arena,
      &other->warrant_delta_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &call_price_, lhs_arena,
      &other->call_price_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &to_call_price_, lhs_arena,
      &other->to_call_price_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &effective_leverage_, lhs_arena,
      &other->effective_leverage_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &leverage_ratio_, lhs_arena,
      &other->leverage_ratio_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &conversion_ratio_, lhs_arena,
      &other->conversion_ratio_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &balance_point_, lhs_arena,
      &other->balance_point_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &delta_, lhs_arena,
      &other->delta_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &gamma_, lhs_arena,
      &other->gamma_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &theta_, lhs_arena,
      &other->theta_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &vega_, lhs_arena,
      &other->vega_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &rho_, lhs_arena,
      &other->rho_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(SecurityCalcIndex, open_interest_)
      + sizeof(SecurityCalcIndex::open_interest_)
      - PROTOBUF_FIELD_OFFSET(SecurityCalcIndex, volume_)>(
          reinterpret_cast<char*>(&volume_),
          reinterpret_cast<char*>(&other->volume_));
}

::PROTOBUF_NAMESPACE_ID::Metadata SecurityCalcIndex::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[59]);
}

// ===================================================================

class SecurityCalcQuoteResponse::_Internal {
 public:
};

SecurityCalcQuoteResponse::SecurityCalcQuoteResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
  security_calc_index_(arena) {
  SharedCtor();
  // @@protoc_insertion_point(arena_constructor:longbridge.quote.v1.SecurityCalcQuoteResponse)
}
SecurityCalcQuoteResponse::SecurityCalcQuoteResponse(const SecurityCalcQuoteResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      security_calc_index_(from.security_calc_index_) {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:longbridge.quote.v1.SecurityCalcQuoteResponse)
}

inline void SecurityCalcQuoteResponse::SharedCtor() {
}

SecurityCalcQuoteResponse::~SecurityCalcQuoteResponse() {
  // @@protoc_insertion_point(destructor:longbridge.quote.v1.SecurityCalcQuoteResponse)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void SecurityCalcQuoteResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
}

void SecurityCalcQuoteResponse::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void SecurityCalcQuoteResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridge.quote.v1.SecurityCalcQuoteResponse)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  security_calc_index_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* SecurityCalcQuoteResponse::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // repeated .longbridge.quote.v1.SecurityCalcIndex security_calc_index = 1 [json_name = "securityCalcIndex"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_security_calc_index(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* SecurityCalcQuoteResponse::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridge.quote.v1.SecurityCalcQuoteResponse)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated .longbridge.quote.v1.SecurityCalcIndex security_calc_index = 1 [json_name = "securityCalcIndex"];
  for (unsigned i = 0,
      n = static_cast<unsigned>(this->_internal_security_calc_index_size()); i < n; i++) {
    const auto& repfield = this->_internal_security_calc_index(i);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(1, repfield, repfield.GetCachedSize(), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridge.quote.v1.SecurityCalcQuoteResponse)
  return target;
}

size_t SecurityCalcQuoteResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridge.quote.v1.SecurityCalcQuoteResponse)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated .longbridge.quote.v1.SecurityCalcIndex security_calc_index = 1 [json_name = "securityCalcIndex"];
  total_size += 1UL * this->_internal_security_calc_index_size();
  for (const auto& msg : this->security_calc_index_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData SecurityCalcQuoteResponse::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    SecurityCalcQuoteResponse::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*SecurityCalcQuoteResponse::GetClassData() const { return &_class_data_; }

void SecurityCalcQuoteResponse::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<SecurityCalcQuoteResponse *>(to)->MergeFrom(
      static_cast<const SecurityCalcQuoteResponse &>(from));
}


void SecurityCalcQuoteResponse::MergeFrom(const SecurityCalcQuoteResponse& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:longbridge.quote.v1.SecurityCalcQuoteResponse)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  security_calc_index_.MergeFrom(from.security_calc_index_);
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void SecurityCalcQuoteResponse::CopyFrom(const SecurityCalcQuoteResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridge.quote.v1.SecurityCalcQuoteResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool SecurityCalcQuoteResponse::IsInitialized() const {
  return true;
}

void SecurityCalcQuoteResponse::InternalSwap(SecurityCalcQuoteResponse* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  security_calc_index_.InternalSwap(&other->security_calc_index_);
}

::PROTOBUF_NAMESPACE_ID::Metadata SecurityCalcQuoteResponse::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[60]);
}

// ===================================================================

class SecurityHistoryCandlestickRequest_OffsetQuery::_Internal {
 public:
};

SecurityHistoryCandlestickRequest_OffsetQuery::SecurityHistoryCandlestickRequest_OffsetQuery(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor();
  // @@protoc_insertion_point(arena_constructor:longbridge.quote.v1.SecurityHistoryCandlestickRequest.OffsetQuery)
}
SecurityHistoryCandlestickRequest_OffsetQuery::SecurityHistoryCandlestickRequest_OffsetQuery(const SecurityHistoryCandlestickRequest_OffsetQuery& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  date_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    date_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_date().empty()) {
    date_.Set(from._internal_date(), 
      GetArenaForAllocation());
  }
  minute_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    minute_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_minute().empty()) {
    minute_.Set(from._internal_minute(), 
      GetArenaForAllocation());
  }
  ::memcpy(&direction_, &from.direction_,
    static_cast<size_t>(reinterpret_cast<char*>(&count_) -
    reinterpret_cast<char*>(&direction_)) + sizeof(count_));
  // @@protoc_insertion_point(copy_constructor:longbridge.quote.v1.SecurityHistoryCandlestickRequest.OffsetQuery)
}

inline void SecurityHistoryCandlestickRequest_OffsetQuery::SharedCtor() {
date_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  date_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
minute_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  minute_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
    reinterpret_cast<char*>(&direction_) - reinterpret_cast<char*>(this)),
    0, static_cast<size_t>(reinterpret_cast<char*>(&count_) -
    reinterpret_cast<char*>(&direction_)) + sizeof(count_));
}

SecurityHistoryCandlestickRequest_OffsetQuery::~SecurityHistoryCandlestickRequest_OffsetQuery() {
  // @@protoc_insertion_point(destructor:longbridge.quote.v1.SecurityHistoryCandlestickRequest.OffsetQuery)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void SecurityHistoryCandlestickRequest_OffsetQuery::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  date_.Destroy();
  minute_.Destroy();
}

void SecurityHistoryCandlestickRequest_OffsetQuery::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void SecurityHistoryCandlestickRequest_OffsetQuery::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridge.quote.v1.SecurityHistoryCandlestickRequest.OffsetQuery)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  date_.ClearToEmpty();
  minute_.ClearToEmpty();
  ::memset(&direction_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&count_) -
      reinterpret_cast<char*>(&direction_)) + sizeof(count_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* SecurityHistoryCandlestickRequest_OffsetQuery::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // .longbridge.quote.v1.Direction direction = 1 [json_name = "direction"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 8)) {
          uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          _internal_set_direction(static_cast<::longbridge::quote::v1::Direction>(val));
        } else
          goto handle_unusual;
        continue;
      // string date = 2 [json_name = "date"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
          auto str = _internal_mutable_date();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.SecurityHistoryCandlestickRequest.OffsetQuery.date"));
        } else
          goto handle_unusual;
        continue;
      // string minute = 3 [json_name = "minute"];
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 26)) {
          auto str = _internal_mutable_minute();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.SecurityHistoryCandlestickRequest.OffsetQuery.minute"));
        } else
          goto handle_unusual;
        continue;
      // int32 count = 4 [json_name = "count"];
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 32)) {
          count_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* SecurityHistoryCandlestickRequest_OffsetQuery::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridge.quote.v1.SecurityHistoryCandlestickRequest.OffsetQuery)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // .longbridge.quote.v1.Direction direction = 1 [json_name = "direction"];
  if (this->_internal_direction() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
      1, this->_internal_direction(), target);
  }

  // string date = 2 [json_name = "date"];
  if (!this->_internal_date().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_date().data(), static_cast<int>(this->_internal_date().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.SecurityHistoryCandlestickRequest.OffsetQuery.date");
    target = stream->WriteStringMaybeAliased(
        2, this->_internal_date(), target);
  }

  // string minute = 3 [json_name = "minute"];
  if (!this->_internal_minute().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_minute().data(), static_cast<int>(this->_internal_minute().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.SecurityHistoryCandlestickRequest.OffsetQuery.minute");
    target = stream->WriteStringMaybeAliased(
        3, this->_internal_minute(), target);
  }

  // int32 count = 4 [json_name = "count"];
  if (this->_internal_count() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt32ToArray(4, this->_internal_count(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridge.quote.v1.SecurityHistoryCandlestickRequest.OffsetQuery)
  return target;
}

size_t SecurityHistoryCandlestickRequest_OffsetQuery::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridge.quote.v1.SecurityHistoryCandlestickRequest.OffsetQuery)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string date = 2 [json_name = "date"];
  if (!this->_internal_date().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_date());
  }

  // string minute = 3 [json_name = "minute"];
  if (!this->_internal_minute().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_minute());
  }

  // .longbridge.quote.v1.Direction direction = 1 [json_name = "direction"];
  if (this->_internal_direction() != 0) {
    total_size += 1 +
      ::_pbi::WireFormatLite::EnumSize(this->_internal_direction());
  }

  // int32 count = 4 [json_name = "count"];
  if (this->_internal_count() != 0) {
    total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(this->_internal_count());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData SecurityHistoryCandlestickRequest_OffsetQuery::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    SecurityHistoryCandlestickRequest_OffsetQuery::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*SecurityHistoryCandlestickRequest_OffsetQuery::GetClassData() const { return &_class_data_; }

void SecurityHistoryCandlestickRequest_OffsetQuery::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<SecurityHistoryCandlestickRequest_OffsetQuery *>(to)->MergeFrom(
      static_cast<const SecurityHistoryCandlestickRequest_OffsetQuery &>(from));
}


void SecurityHistoryCandlestickRequest_OffsetQuery::MergeFrom(const SecurityHistoryCandlestickRequest_OffsetQuery& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:longbridge.quote.v1.SecurityHistoryCandlestickRequest.OffsetQuery)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (!from._internal_date().empty()) {
    _internal_set_date(from._internal_date());
  }
  if (!from._internal_minute().empty()) {
    _internal_set_minute(from._internal_minute());
  }
  if (from._internal_direction() != 0) {
    _internal_set_direction(from._internal_direction());
  }
  if (from._internal_count() != 0) {
    _internal_set_count(from._internal_count());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void SecurityHistoryCandlestickRequest_OffsetQuery::CopyFrom(const SecurityHistoryCandlestickRequest_OffsetQuery& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridge.quote.v1.SecurityHistoryCandlestickRequest.OffsetQuery)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool SecurityHistoryCandlestickRequest_OffsetQuery::IsInitialized() const {
  return true;
}

void SecurityHistoryCandlestickRequest_OffsetQuery::InternalSwap(SecurityHistoryCandlestickRequest_OffsetQuery* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &date_, lhs_arena,
      &other->date_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &minute_, lhs_arena,
      &other->minute_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(SecurityHistoryCandlestickRequest_OffsetQuery, count_)
      + sizeof(SecurityHistoryCandlestickRequest_OffsetQuery::count_)
      - PROTOBUF_FIELD_OFFSET(SecurityHistoryCandlestickRequest_OffsetQuery, direction_)>(
          reinterpret_cast<char*>(&direction_),
          reinterpret_cast<char*>(&other->direction_));
}

::PROTOBUF_NAMESPACE_ID::Metadata SecurityHistoryCandlestickRequest_OffsetQuery::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[61]);
}

// ===================================================================

class SecurityHistoryCandlestickRequest_DateQuery::_Internal {
 public:
};

SecurityHistoryCandlestickRequest_DateQuery::SecurityHistoryCandlestickRequest_DateQuery(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor();
  // @@protoc_insertion_point(arena_constructor:longbridge.quote.v1.SecurityHistoryCandlestickRequest.DateQuery)
}
SecurityHistoryCandlestickRequest_DateQuery::SecurityHistoryCandlestickRequest_DateQuery(const SecurityHistoryCandlestickRequest_DateQuery& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  start_date_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    start_date_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_start_date().empty()) {
    start_date_.Set(from._internal_start_date(), 
      GetArenaForAllocation());
  }
  end_date_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    end_date_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_end_date().empty()) {
    end_date_.Set(from._internal_end_date(), 
      GetArenaForAllocation());
  }
  // @@protoc_insertion_point(copy_constructor:longbridge.quote.v1.SecurityHistoryCandlestickRequest.DateQuery)
}

inline void SecurityHistoryCandlestickRequest_DateQuery::SharedCtor() {
start_date_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  start_date_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
end_date_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  end_date_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
}

SecurityHistoryCandlestickRequest_DateQuery::~SecurityHistoryCandlestickRequest_DateQuery() {
  // @@protoc_insertion_point(destructor:longbridge.quote.v1.SecurityHistoryCandlestickRequest.DateQuery)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void SecurityHistoryCandlestickRequest_DateQuery::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  start_date_.Destroy();
  end_date_.Destroy();
}

void SecurityHistoryCandlestickRequest_DateQuery::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void SecurityHistoryCandlestickRequest_DateQuery::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridge.quote.v1.SecurityHistoryCandlestickRequest.DateQuery)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  start_date_.ClearToEmpty();
  end_date_.ClearToEmpty();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* SecurityHistoryCandlestickRequest_DateQuery::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string start_date = 1 [json_name = "startDate"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_start_date();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.SecurityHistoryCandlestickRequest.DateQuery.start_date"));
        } else
          goto handle_unusual;
        continue;
      // string end_date = 2 [json_name = "endDate"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
          auto str = _internal_mutable_end_date();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.SecurityHistoryCandlestickRequest.DateQuery.end_date"));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* SecurityHistoryCandlestickRequest_DateQuery::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridge.quote.v1.SecurityHistoryCandlestickRequest.DateQuery)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string start_date = 1 [json_name = "startDate"];
  if (!this->_internal_start_date().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_start_date().data(), static_cast<int>(this->_internal_start_date().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.SecurityHistoryCandlestickRequest.DateQuery.start_date");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_start_date(), target);
  }

  // string end_date = 2 [json_name = "endDate"];
  if (!this->_internal_end_date().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_end_date().data(), static_cast<int>(this->_internal_end_date().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.SecurityHistoryCandlestickRequest.DateQuery.end_date");
    target = stream->WriteStringMaybeAliased(
        2, this->_internal_end_date(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridge.quote.v1.SecurityHistoryCandlestickRequest.DateQuery)
  return target;
}

size_t SecurityHistoryCandlestickRequest_DateQuery::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridge.quote.v1.SecurityHistoryCandlestickRequest.DateQuery)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string start_date = 1 [json_name = "startDate"];
  if (!this->_internal_start_date().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_start_date());
  }

  // string end_date = 2 [json_name = "endDate"];
  if (!this->_internal_end_date().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_end_date());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData SecurityHistoryCandlestickRequest_DateQuery::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    SecurityHistoryCandlestickRequest_DateQuery::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*SecurityHistoryCandlestickRequest_DateQuery::GetClassData() const { return &_class_data_; }

void SecurityHistoryCandlestickRequest_DateQuery::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<SecurityHistoryCandlestickRequest_DateQuery *>(to)->MergeFrom(
      static_cast<const SecurityHistoryCandlestickRequest_DateQuery &>(from));
}


void SecurityHistoryCandlestickRequest_DateQuery::MergeFrom(const SecurityHistoryCandlestickRequest_DateQuery& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:longbridge.quote.v1.SecurityHistoryCandlestickRequest.DateQuery)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (!from._internal_start_date().empty()) {
    _internal_set_start_date(from._internal_start_date());
  }
  if (!from._internal_end_date().empty()) {
    _internal_set_end_date(from._internal_end_date());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void SecurityHistoryCandlestickRequest_DateQuery::CopyFrom(const SecurityHistoryCandlestickRequest_DateQuery& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridge.quote.v1.SecurityHistoryCandlestickRequest.DateQuery)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool SecurityHistoryCandlestickRequest_DateQuery::IsInitialized() const {
  return true;
}

void SecurityHistoryCandlestickRequest_DateQuery::InternalSwap(SecurityHistoryCandlestickRequest_DateQuery* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &start_date_, lhs_arena,
      &other->start_date_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &end_date_, lhs_arena,
      &other->end_date_, rhs_arena
  );
}

::PROTOBUF_NAMESPACE_ID::Metadata SecurityHistoryCandlestickRequest_DateQuery::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[62]);
}

// ===================================================================

class SecurityHistoryCandlestickRequest::_Internal {
 public:
  static const ::longbridge::quote::v1::SecurityHistoryCandlestickRequest_OffsetQuery& offset_request(const SecurityHistoryCandlestickRequest* msg);
  static const ::longbridge::quote::v1::SecurityHistoryCandlestickRequest_DateQuery& date_request(const SecurityHistoryCandlestickRequest* msg);
};

const ::longbridge::quote::v1::SecurityHistoryCandlestickRequest_OffsetQuery&
SecurityHistoryCandlestickRequest::_Internal::offset_request(const SecurityHistoryCandlestickRequest* msg) {
  return *msg->offset_request_;
}
const ::longbridge::quote::v1::SecurityHistoryCandlestickRequest_DateQuery&
SecurityHistoryCandlestickRequest::_Internal::date_request(const SecurityHistoryCandlestickRequest* msg) {
  return *msg->date_request_;
}
SecurityHistoryCandlestickRequest::SecurityHistoryCandlestickRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor();
  // @@protoc_insertion_point(arena_constructor:longbridge.quote.v1.SecurityHistoryCandlestickRequest)
}
SecurityHistoryCandlestickRequest::SecurityHistoryCandlestickRequest(const SecurityHistoryCandlestickRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  symbol_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    symbol_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_symbol().empty()) {
    symbol_.Set(from._internal_symbol(), 
      GetArenaForAllocation());
  }
  if (from._internal_has_offset_request()) {
    offset_request_ = new ::longbridge::quote::v1::SecurityHistoryCandlestickRequest_OffsetQuery(*from.offset_request_);
  } else {
    offset_request_ = nullptr;
  }
  if (from._internal_has_date_request()) {
    date_request_ = new ::longbridge::quote::v1::SecurityHistoryCandlestickRequest_DateQuery(*from.date_request_);
  } else {
    date_request_ = nullptr;
  }
  ::memcpy(&period_, &from.period_,
    static_cast<size_t>(reinterpret_cast<char*>(&trade_session_) -
    reinterpret_cast<char*>(&period_)) + sizeof(trade_session_));
  // @@protoc_insertion_point(copy_constructor:longbridge.quote.v1.SecurityHistoryCandlestickRequest)
}

inline void SecurityHistoryCandlestickRequest::SharedCtor() {
symbol_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  symbol_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
    reinterpret_cast<char*>(&offset_request_) - reinterpret_cast<char*>(this)),
    0, static_cast<size_t>(reinterpret_cast<char*>(&trade_session_) -
    reinterpret_cast<char*>(&offset_request_)) + sizeof(trade_session_));
}

SecurityHistoryCandlestickRequest::~SecurityHistoryCandlestickRequest() {
  // @@protoc_insertion_point(destructor:longbridge.quote.v1.SecurityHistoryCandlestickRequest)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void SecurityHistoryCandlestickRequest::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  symbol_.Destroy();
  if (this != internal_default_instance()) delete offset_request_;
  if (this != internal_default_instance()) delete date_request_;
}

void SecurityHistoryCandlestickRequest::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void SecurityHistoryCandlestickRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridge.quote.v1.SecurityHistoryCandlestickRequest)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  symbol_.ClearToEmpty();
  if (GetArenaForAllocation() == nullptr && offset_request_ != nullptr) {
    delete offset_request_;
  }
  offset_request_ = nullptr;
  if (GetArenaForAllocation() == nullptr && date_request_ != nullptr) {
    delete date_request_;
  }
  date_request_ = nullptr;
  ::memset(&period_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&trade_session_) -
      reinterpret_cast<char*>(&period_)) + sizeof(trade_session_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* SecurityHistoryCandlestickRequest::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string symbol = 1 [json_name = "symbol"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_symbol();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.SecurityHistoryCandlestickRequest.symbol"));
        } else
          goto handle_unusual;
        continue;
      // .longbridge.quote.v1.Period period = 2 [json_name = "period"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) {
          uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          _internal_set_period(static_cast<::longbridge::quote::v1::Period>(val));
        } else
          goto handle_unusual;
        continue;
      // .longbridge.quote.v1.AdjustType adjust_type = 3 [json_name = "adjustType"];
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 24)) {
          uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          _internal_set_adjust_type(static_cast<::longbridge::quote::v1::AdjustType>(val));
        } else
          goto handle_unusual;
        continue;
      // .longbridge.quote.v1.HistoryCandlestickQueryType query_type = 4 [json_name = "queryType"];
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 32)) {
          uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          _internal_set_query_type(static_cast<::longbridge::quote::v1::HistoryCandlestickQueryType>(val));
        } else
          goto handle_unusual;
        continue;
      // .longbridge.quote.v1.SecurityHistoryCandlestickRequest.OffsetQuery offset_request = 5 [json_name = "offsetRequest"];
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 42)) {
          ptr = ctx->ParseMessage(_internal_mutable_offset_request(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // .longbridge.quote.v1.SecurityHistoryCandlestickRequest.DateQuery date_request = 6 [json_name = "dateRequest"];
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 50)) {
          ptr = ctx->ParseMessage(_internal_mutable_date_request(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int32 trade_session = 7 [json_name = "tradeSession"];
      case 7:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 56)) {
          trade_session_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* SecurityHistoryCandlestickRequest::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridge.quote.v1.SecurityHistoryCandlestickRequest)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_symbol().data(), static_cast<int>(this->_internal_symbol().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.SecurityHistoryCandlestickRequest.symbol");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_symbol(), target);
  }

  // .longbridge.quote.v1.Period period = 2 [json_name = "period"];
  if (this->_internal_period() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
      2, this->_internal_period(), target);
  }

  // .longbridge.quote.v1.AdjustType adjust_type = 3 [json_name = "adjustType"];
  if (this->_internal_adjust_type() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
      3, this->_internal_adjust_type(), target);
  }

  // .longbridge.quote.v1.HistoryCandlestickQueryType query_type = 4 [json_name = "queryType"];
  if (this->_internal_query_type() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
      4, this->_internal_query_type(), target);
  }

  // .longbridge.quote.v1.SecurityHistoryCandlestickRequest.OffsetQuery offset_request = 5 [json_name = "offsetRequest"];
  if (this->_internal_has_offset_request()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(5, _Internal::offset_request(this),
        _Internal::offset_request(this).GetCachedSize(), target, stream);
  }

  // .longbridge.quote.v1.SecurityHistoryCandlestickRequest.DateQuery date_request = 6 [json_name = "dateRequest"];
  if (this->_internal_has_date_request()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(6, _Internal::date_request(this),
        _Internal::date_request(this).GetCachedSize(), target, stream);
  }

  // int32 trade_session = 7 [json_name = "tradeSession"];
  if (this->_internal_trade_session() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt32ToArray(7, this->_internal_trade_session(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridge.quote.v1.SecurityHistoryCandlestickRequest)
  return target;
}

size_t SecurityHistoryCandlestickRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridge.quote.v1.SecurityHistoryCandlestickRequest)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string symbol = 1 [json_name = "symbol"];
  if (!this->_internal_symbol().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_symbol());
  }

  // .longbridge.quote.v1.SecurityHistoryCandlestickRequest.OffsetQuery offset_request = 5 [json_name = "offsetRequest"];
  if (this->_internal_has_offset_request()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *offset_request_);
  }

  // .longbridge.quote.v1.SecurityHistoryCandlestickRequest.DateQuery date_request = 6 [json_name = "dateRequest"];
  if (this->_internal_has_date_request()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *date_request_);
  }

  // .longbridge.quote.v1.Period period = 2 [json_name = "period"];
  if (this->_internal_period() != 0) {
    total_size += 1 +
      ::_pbi::WireFormatLite::EnumSize(this->_internal_period());
  }

  // .longbridge.quote.v1.AdjustType adjust_type = 3 [json_name = "adjustType"];
  if (this->_internal_adjust_type() != 0) {
    total_size += 1 +
      ::_pbi::WireFormatLite::EnumSize(this->_internal_adjust_type());
  }

  // .longbridge.quote.v1.HistoryCandlestickQueryType query_type = 4 [json_name = "queryType"];
  if (this->_internal_query_type() != 0) {
    total_size += 1 +
      ::_pbi::WireFormatLite::EnumSize(this->_internal_query_type());
  }

  // int32 trade_session = 7 [json_name = "tradeSession"];
  if (this->_internal_trade_session() != 0) {
    total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(this->_internal_trade_session());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData SecurityHistoryCandlestickRequest::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    SecurityHistoryCandlestickRequest::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*SecurityHistoryCandlestickRequest::GetClassData() const { return &_class_data_; }

void SecurityHistoryCandlestickRequest::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<SecurityHistoryCandlestickRequest *>(to)->MergeFrom(
      static_cast<const SecurityHistoryCandlestickRequest &>(from));
}


void SecurityHistoryCandlestickRequest::MergeFrom(const SecurityHistoryCandlestickRequest& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:longbridge.quote.v1.SecurityHistoryCandlestickRequest)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (!from._internal_symbol().empty()) {
    _internal_set_symbol(from._internal_symbol());
  }
  if (from._internal_has_offset_request()) {
    _internal_mutable_offset_request()->::longbridge::quote::v1::SecurityHistoryCandlestickRequest_OffsetQuery::MergeFrom(from._internal_offset_request());
  }
  if (from._internal_has_date_request()) {
    _internal_mutable_date_request()->::longbridge::quote::v1::SecurityHistoryCandlestickRequest_DateQuery::MergeFrom(from._internal_date_request());
  }
  if (from._internal_period() != 0) {
    _internal_set_period(from._internal_period());
  }
  if (from._internal_adjust_type() != 0) {
    _internal_set_adjust_type(from._internal_adjust_type());
  }
  if (from._internal_query_type() != 0) {
    _internal_set_query_type(from._internal_query_type());
  }
  if (from._internal_trade_session() != 0) {
    _internal_set_trade_session(from._internal_trade_session());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void SecurityHistoryCandlestickRequest::CopyFrom(const SecurityHistoryCandlestickRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridge.quote.v1.SecurityHistoryCandlestickRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool SecurityHistoryCandlestickRequest::IsInitialized() const {
  return true;
}

void SecurityHistoryCandlestickRequest::InternalSwap(SecurityHistoryCandlestickRequest* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &symbol_, lhs_arena,
      &other->symbol_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(SecurityHistoryCandlestickRequest, trade_session_)
      + sizeof(SecurityHistoryCandlestickRequest::trade_session_)
      - PROTOBUF_FIELD_OFFSET(SecurityHistoryCandlestickRequest, offset_request_)>(
          reinterpret_cast<char*>(&offset_request_),
          reinterpret_cast<char*>(&other->offset_request_));
}

::PROTOBUF_NAMESPACE_ID::Metadata SecurityHistoryCandlestickRequest::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[63]);
}

// ===================================================================

class UserQuoteProfileRequest::_Internal {
 public:
};

UserQuoteProfileRequest::UserQuoteProfileRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor();
  // @@protoc_insertion_point(arena_constructor:longbridge.quote.v1.UserQuoteProfileRequest)
}
UserQuoteProfileRequest::UserQuoteProfileRequest(const UserQuoteProfileRequest& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  language_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    language_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_language().empty()) {
    language_.Set(from._internal_language(), 
      GetArenaForAllocation());
  }
  // @@protoc_insertion_point(copy_constructor:longbridge.quote.v1.UserQuoteProfileRequest)
}

inline void UserQuoteProfileRequest::SharedCtor() {
language_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  language_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
}

UserQuoteProfileRequest::~UserQuoteProfileRequest() {
  // @@protoc_insertion_point(destructor:longbridge.quote.v1.UserQuoteProfileRequest)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void UserQuoteProfileRequest::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  language_.Destroy();
}

void UserQuoteProfileRequest::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void UserQuoteProfileRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridge.quote.v1.UserQuoteProfileRequest)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  language_.ClearToEmpty();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* UserQuoteProfileRequest::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string language = 1 [json_name = "language"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_language();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.UserQuoteProfileRequest.language"));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* UserQuoteProfileRequest::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridge.quote.v1.UserQuoteProfileRequest)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string language = 1 [json_name = "language"];
  if (!this->_internal_language().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_language().data(), static_cast<int>(this->_internal_language().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.UserQuoteProfileRequest.language");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_language(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridge.quote.v1.UserQuoteProfileRequest)
  return target;
}

size_t UserQuoteProfileRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridge.quote.v1.UserQuoteProfileRequest)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string language = 1 [json_name = "language"];
  if (!this->_internal_language().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_language());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData UserQuoteProfileRequest::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    UserQuoteProfileRequest::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*UserQuoteProfileRequest::GetClassData() const { return &_class_data_; }

void UserQuoteProfileRequest::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<UserQuoteProfileRequest *>(to)->MergeFrom(
      static_cast<const UserQuoteProfileRequest &>(from));
}


void UserQuoteProfileRequest::MergeFrom(const UserQuoteProfileRequest& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:longbridge.quote.v1.UserQuoteProfileRequest)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (!from._internal_language().empty()) {
    _internal_set_language(from._internal_language());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void UserQuoteProfileRequest::CopyFrom(const UserQuoteProfileRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridge.quote.v1.UserQuoteProfileRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool UserQuoteProfileRequest::IsInitialized() const {
  return true;
}

void UserQuoteProfileRequest::InternalSwap(UserQuoteProfileRequest* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &language_, lhs_arena,
      &other->language_, rhs_arena
  );
}

::PROTOBUF_NAMESPACE_ID::Metadata UserQuoteProfileRequest::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[64]);
}

// ===================================================================

class RateLimit::_Internal {
 public:
};

RateLimit::RateLimit(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor();
  // @@protoc_insertion_point(arena_constructor:longbridge.quote.v1.RateLimit)
}
RateLimit::RateLimit(const RateLimit& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::memcpy(&command_, &from.command_,
    static_cast<size_t>(reinterpret_cast<char*>(&burst_) -
    reinterpret_cast<char*>(&command_)) + sizeof(burst_));
  // @@protoc_insertion_point(copy_constructor:longbridge.quote.v1.RateLimit)
}

inline void RateLimit::SharedCtor() {
::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
    reinterpret_cast<char*>(&command_) - reinterpret_cast<char*>(this)),
    0, static_cast<size_t>(reinterpret_cast<char*>(&burst_) -
    reinterpret_cast<char*>(&command_)) + sizeof(burst_));
}

RateLimit::~RateLimit() {
  // @@protoc_insertion_point(destructor:longbridge.quote.v1.RateLimit)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void RateLimit::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
}

void RateLimit::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void RateLimit::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridge.quote.v1.RateLimit)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  ::memset(&command_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&burst_) -
      reinterpret_cast<char*>(&command_)) + sizeof(burst_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* RateLimit::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // .longbridge.quote.v1.Command command = 1 [json_name = "command"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 8)) {
          uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          _internal_set_command(static_cast<::longbridge::quote::v1::Command>(val));
        } else
          goto handle_unusual;
        continue;
      // int32 limit = 2 [json_name = "limit"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) {
          limit_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int32 burst = 3 [json_name = "burst"];
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 24)) {
          burst_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* RateLimit::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridge.quote.v1.RateLimit)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // .longbridge.quote.v1.Command command = 1 [json_name = "command"];
  if (this->_internal_command() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
      1, this->_internal_command(), target);
  }

  // int32 limit = 2 [json_name = "limit"];
  if (this->_internal_limit() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt32ToArray(2, this->_internal_limit(), target);
  }

  // int32 burst = 3 [json_name = "burst"];
  if (this->_internal_burst() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt32ToArray(3, this->_internal_burst(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridge.quote.v1.RateLimit)
  return target;
}

size_t RateLimit::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridge.quote.v1.RateLimit)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // .longbridge.quote.v1.Command command = 1 [json_name = "command"];
  if (this->_internal_command() != 0) {
    total_size += 1 +
      ::_pbi::WireFormatLite::EnumSize(this->_internal_command());
  }

  // int32 limit = 2 [json_name = "limit"];
  if (this->_internal_limit() != 0) {
    total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(this->_internal_limit());
  }

  // int32 burst = 3 [json_name = "burst"];
  if (this->_internal_burst() != 0) {
    total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(this->_internal_burst());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData RateLimit::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    RateLimit::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*RateLimit::GetClassData() const { return &_class_data_; }

void RateLimit::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<RateLimit *>(to)->MergeFrom(
      static_cast<const RateLimit &>(from));
}


void RateLimit::MergeFrom(const RateLimit& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:longbridge.quote.v1.RateLimit)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (from._internal_command() != 0) {
    _internal_set_command(from._internal_command());
  }
  if (from._internal_limit() != 0) {
    _internal_set_limit(from._internal_limit());
  }
  if (from._internal_burst() != 0) {
    _internal_set_burst(from._internal_burst());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void RateLimit::CopyFrom(const RateLimit& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridge.quote.v1.RateLimit)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool RateLimit::IsInitialized() const {
  return true;
}

void RateLimit::InternalSwap(RateLimit* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(RateLimit, burst_)
      + sizeof(RateLimit::burst_)
      - PROTOBUF_FIELD_OFFSET(RateLimit, command_)>(
          reinterpret_cast<char*>(&command_),
          reinterpret_cast<char*>(&other->command_));
}

::PROTOBUF_NAMESPACE_ID::Metadata RateLimit::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[65]);
}

// ===================================================================

class UserQuoteLevelDetail_PackageDetail::_Internal {
 public:
};

UserQuoteLevelDetail_PackageDetail::UserQuoteLevelDetail_PackageDetail(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor();
  // @@protoc_insertion_point(arena_constructor:longbridge.quote.v1.UserQuoteLevelDetail.PackageDetail)
}
UserQuoteLevelDetail_PackageDetail::UserQuoteLevelDetail_PackageDetail(const UserQuoteLevelDetail_PackageDetail& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  key_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    key_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_key().empty()) {
    key_.Set(from._internal_key(), 
      GetArenaForAllocation());
  }
  name_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    name_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_name().empty()) {
    name_.Set(from._internal_name(), 
      GetArenaForAllocation());
  }
  description_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    description_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_description().empty()) {
    description_.Set(from._internal_description(), 
      GetArenaForAllocation());
  }
  ::memcpy(&start_, &from.start_,
    static_cast<size_t>(reinterpret_cast<char*>(&end_) -
    reinterpret_cast<char*>(&start_)) + sizeof(end_));
  // @@protoc_insertion_point(copy_constructor:longbridge.quote.v1.UserQuoteLevelDetail.PackageDetail)
}

inline void UserQuoteLevelDetail_PackageDetail::SharedCtor() {
key_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  key_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
name_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  name_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
description_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  description_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
    reinterpret_cast<char*>(&start_) - reinterpret_cast<char*>(this)),
    0, static_cast<size_t>(reinterpret_cast<char*>(&end_) -
    reinterpret_cast<char*>(&start_)) + sizeof(end_));
}

UserQuoteLevelDetail_PackageDetail::~UserQuoteLevelDetail_PackageDetail() {
  // @@protoc_insertion_point(destructor:longbridge.quote.v1.UserQuoteLevelDetail.PackageDetail)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void UserQuoteLevelDetail_PackageDetail::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  key_.Destroy();
  name_.Destroy();
  description_.Destroy();
}

void UserQuoteLevelDetail_PackageDetail::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void UserQuoteLevelDetail_PackageDetail::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridge.quote.v1.UserQuoteLevelDetail.PackageDetail)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  key_.ClearToEmpty();
  name_.ClearToEmpty();
  description_.ClearToEmpty();
  ::memset(&start_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&end_) -
      reinterpret_cast<char*>(&start_)) + sizeof(end_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* UserQuoteLevelDetail_PackageDetail::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string key = 1 [json_name = "key"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_key();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.UserQuoteLevelDetail.PackageDetail.key"));
        } else
          goto handle_unusual;
        continue;
      // string name = 2 [json_name = "name"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
          auto str = _internal_mutable_name();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.UserQuoteLevelDetail.PackageDetail.name"));
        } else
          goto handle_unusual;
        continue;
      // string description = 4 [json_name = "description"];
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 34)) {
          auto str = _internal_mutable_description();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.UserQuoteLevelDetail.PackageDetail.description"));
        } else
          goto handle_unusual;
        continue;
      // int64 start = 5 [json_name = "start"];
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 40)) {
          start_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int64 end = 6 [json_name = "end"];
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 48)) {
          end_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* UserQuoteLevelDetail_PackageDetail::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridge.quote.v1.UserQuoteLevelDetail.PackageDetail)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string key = 1 [json_name = "key"];
  if (!this->_internal_key().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_key().data(), static_cast<int>(this->_internal_key().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.UserQuoteLevelDetail.PackageDetail.key");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_key(), target);
  }

  // string name = 2 [json_name = "name"];
  if (!this->_internal_name().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_name().data(), static_cast<int>(this->_internal_name().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.UserQuoteLevelDetail.PackageDetail.name");
    target = stream->WriteStringMaybeAliased(
        2, this->_internal_name(), target);
  }

  // string description = 4 [json_name = "description"];
  if (!this->_internal_description().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_description().data(), static_cast<int>(this->_internal_description().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.UserQuoteLevelDetail.PackageDetail.description");
    target = stream->WriteStringMaybeAliased(
        4, this->_internal_description(), target);
  }

  // int64 start = 5 [json_name = "start"];
  if (this->_internal_start() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt64ToArray(5, this->_internal_start(), target);
  }

  // int64 end = 6 [json_name = "end"];
  if (this->_internal_end() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt64ToArray(6, this->_internal_end(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridge.quote.v1.UserQuoteLevelDetail.PackageDetail)
  return target;
}

size_t UserQuoteLevelDetail_PackageDetail::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridge.quote.v1.UserQuoteLevelDetail.PackageDetail)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string key = 1 [json_name = "key"];
  if (!this->_internal_key().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_key());
  }

  // string name = 2 [json_name = "name"];
  if (!this->_internal_name().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_name());
  }

  // string description = 4 [json_name = "description"];
  if (!this->_internal_description().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_description());
  }

  // int64 start = 5 [json_name = "start"];
  if (this->_internal_start() != 0) {
    total_size += ::_pbi::WireFormatLite::Int64SizePlusOne(this->_internal_start());
  }

  // int64 end = 6 [json_name = "end"];
  if (this->_internal_end() != 0) {
    total_size += ::_pbi::WireFormatLite::Int64SizePlusOne(this->_internal_end());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData UserQuoteLevelDetail_PackageDetail::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    UserQuoteLevelDetail_PackageDetail::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*UserQuoteLevelDetail_PackageDetail::GetClassData() const { return &_class_data_; }

void UserQuoteLevelDetail_PackageDetail::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<UserQuoteLevelDetail_PackageDetail *>(to)->MergeFrom(
      static_cast<const UserQuoteLevelDetail_PackageDetail &>(from));
}


void UserQuoteLevelDetail_PackageDetail::MergeFrom(const UserQuoteLevelDetail_PackageDetail& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:longbridge.quote.v1.UserQuoteLevelDetail.PackageDetail)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (!from._internal_key().empty()) {
    _internal_set_key(from._internal_key());
  }
  if (!from._internal_name().empty()) {
    _internal_set_name(from._internal_name());
  }
  if (!from._internal_description().empty()) {
    _internal_set_description(from._internal_description());
  }
  if (from._internal_start() != 0) {
    _internal_set_start(from._internal_start());
  }
  if (from._internal_end() != 0) {
    _internal_set_end(from._internal_end());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void UserQuoteLevelDetail_PackageDetail::CopyFrom(const UserQuoteLevelDetail_PackageDetail& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridge.quote.v1.UserQuoteLevelDetail.PackageDetail)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool UserQuoteLevelDetail_PackageDetail::IsInitialized() const {
  return true;
}

void UserQuoteLevelDetail_PackageDetail::InternalSwap(UserQuoteLevelDetail_PackageDetail* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &key_, lhs_arena,
      &other->key_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &name_, lhs_arena,
      &other->name_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &description_, lhs_arena,
      &other->description_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(UserQuoteLevelDetail_PackageDetail, end_)
      + sizeof(UserQuoteLevelDetail_PackageDetail::end_)
      - PROTOBUF_FIELD_OFFSET(UserQuoteLevelDetail_PackageDetail, start_)>(
          reinterpret_cast<char*>(&start_),
          reinterpret_cast<char*>(&other->start_));
}

::PROTOBUF_NAMESPACE_ID::Metadata UserQuoteLevelDetail_PackageDetail::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[66]);
}

// ===================================================================

class UserQuoteLevelDetail_MarketPackageDetail::_Internal {
 public:
};

UserQuoteLevelDetail_MarketPackageDetail::UserQuoteLevelDetail_MarketPackageDetail(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
  packages_(arena) {
  SharedCtor();
  // @@protoc_insertion_point(arena_constructor:longbridge.quote.v1.UserQuoteLevelDetail.MarketPackageDetail)
}
UserQuoteLevelDetail_MarketPackageDetail::UserQuoteLevelDetail_MarketPackageDetail(const UserQuoteLevelDetail_MarketPackageDetail& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      packages_(from.packages_) {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  warning_msg_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    warning_msg_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_warning_msg().empty()) {
    warning_msg_.Set(from._internal_warning_msg(), 
      GetArenaForAllocation());
  }
  // @@protoc_insertion_point(copy_constructor:longbridge.quote.v1.UserQuoteLevelDetail.MarketPackageDetail)
}

inline void UserQuoteLevelDetail_MarketPackageDetail::SharedCtor() {
warning_msg_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  warning_msg_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
}

UserQuoteLevelDetail_MarketPackageDetail::~UserQuoteLevelDetail_MarketPackageDetail() {
  // @@protoc_insertion_point(destructor:longbridge.quote.v1.UserQuoteLevelDetail.MarketPackageDetail)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void UserQuoteLevelDetail_MarketPackageDetail::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  warning_msg_.Destroy();
}

void UserQuoteLevelDetail_MarketPackageDetail::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void UserQuoteLevelDetail_MarketPackageDetail::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridge.quote.v1.UserQuoteLevelDetail.MarketPackageDetail)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  packages_.Clear();
  warning_msg_.ClearToEmpty();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* UserQuoteLevelDetail_MarketPackageDetail::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // repeated .longbridge.quote.v1.UserQuoteLevelDetail.PackageDetail packages = 1 [json_name = "packages"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_packages(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr));
        } else
          goto handle_unusual;
        continue;
      // string warning_msg = 4 [json_name = "warningMsg"];
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 34)) {
          auto str = _internal_mutable_warning_msg();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.UserQuoteLevelDetail.MarketPackageDetail.warning_msg"));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* UserQuoteLevelDetail_MarketPackageDetail::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridge.quote.v1.UserQuoteLevelDetail.MarketPackageDetail)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated .longbridge.quote.v1.UserQuoteLevelDetail.PackageDetail packages = 1 [json_name = "packages"];
  for (unsigned i = 0,
      n = static_cast<unsigned>(this->_internal_packages_size()); i < n; i++) {
    const auto& repfield = this->_internal_packages(i);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(1, repfield, repfield.GetCachedSize(), target, stream);
  }

  // string warning_msg = 4 [json_name = "warningMsg"];
  if (!this->_internal_warning_msg().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_warning_msg().data(), static_cast<int>(this->_internal_warning_msg().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.UserQuoteLevelDetail.MarketPackageDetail.warning_msg");
    target = stream->WriteStringMaybeAliased(
        4, this->_internal_warning_msg(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridge.quote.v1.UserQuoteLevelDetail.MarketPackageDetail)
  return target;
}

size_t UserQuoteLevelDetail_MarketPackageDetail::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridge.quote.v1.UserQuoteLevelDetail.MarketPackageDetail)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated .longbridge.quote.v1.UserQuoteLevelDetail.PackageDetail packages = 1 [json_name = "packages"];
  total_size += 1UL * this->_internal_packages_size();
  for (const auto& msg : this->packages_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  // string warning_msg = 4 [json_name = "warningMsg"];
  if (!this->_internal_warning_msg().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_warning_msg());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData UserQuoteLevelDetail_MarketPackageDetail::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    UserQuoteLevelDetail_MarketPackageDetail::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*UserQuoteLevelDetail_MarketPackageDetail::GetClassData() const { return &_class_data_; }

void UserQuoteLevelDetail_MarketPackageDetail::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<UserQuoteLevelDetail_MarketPackageDetail *>(to)->MergeFrom(
      static_cast<const UserQuoteLevelDetail_MarketPackageDetail &>(from));
}


void UserQuoteLevelDetail_MarketPackageDetail::MergeFrom(const UserQuoteLevelDetail_MarketPackageDetail& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:longbridge.quote.v1.UserQuoteLevelDetail.MarketPackageDetail)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  packages_.MergeFrom(from.packages_);
  if (!from._internal_warning_msg().empty()) {
    _internal_set_warning_msg(from._internal_warning_msg());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void UserQuoteLevelDetail_MarketPackageDetail::CopyFrom(const UserQuoteLevelDetail_MarketPackageDetail& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridge.quote.v1.UserQuoteLevelDetail.MarketPackageDetail)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool UserQuoteLevelDetail_MarketPackageDetail::IsInitialized() const {
  return true;
}

void UserQuoteLevelDetail_MarketPackageDetail::InternalSwap(UserQuoteLevelDetail_MarketPackageDetail* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  packages_.InternalSwap(&other->packages_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &warning_msg_, lhs_arena,
      &other->warning_msg_, rhs_arena
  );
}

::PROTOBUF_NAMESPACE_ID::Metadata UserQuoteLevelDetail_MarketPackageDetail::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[67]);
}

// ===================================================================

UserQuoteLevelDetail_ByPackageKeyEntry_DoNotUse::UserQuoteLevelDetail_ByPackageKeyEntry_DoNotUse() {}
UserQuoteLevelDetail_ByPackageKeyEntry_DoNotUse::UserQuoteLevelDetail_ByPackageKeyEntry_DoNotUse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
    : SuperType(arena) {}
void UserQuoteLevelDetail_ByPackageKeyEntry_DoNotUse::MergeFrom(const UserQuoteLevelDetail_ByPackageKeyEntry_DoNotUse& other) {
  MergeFromInternal(other);
}
::PROTOBUF_NAMESPACE_ID::Metadata UserQuoteLevelDetail_ByPackageKeyEntry_DoNotUse::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[68]);
}

// ===================================================================

UserQuoteLevelDetail_ByMarketCodeEntry_DoNotUse::UserQuoteLevelDetail_ByMarketCodeEntry_DoNotUse() {}
UserQuoteLevelDetail_ByMarketCodeEntry_DoNotUse::UserQuoteLevelDetail_ByMarketCodeEntry_DoNotUse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
    : SuperType(arena) {}
void UserQuoteLevelDetail_ByMarketCodeEntry_DoNotUse::MergeFrom(const UserQuoteLevelDetail_ByMarketCodeEntry_DoNotUse& other) {
  MergeFromInternal(other);
}
::PROTOBUF_NAMESPACE_ID::Metadata UserQuoteLevelDetail_ByMarketCodeEntry_DoNotUse::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[69]);
}

// ===================================================================

class UserQuoteLevelDetail::_Internal {
 public:
};

UserQuoteLevelDetail::UserQuoteLevelDetail(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
  by_package_key_(arena),
  by_market_code_(arena) {
  SharedCtor();
  if (arena != nullptr && !is_message_owned) {
    arena->OwnCustomDestructor(this, &UserQuoteLevelDetail::ArenaDtor);
  }
  // @@protoc_insertion_point(arena_constructor:longbridge.quote.v1.UserQuoteLevelDetail)
}
UserQuoteLevelDetail::UserQuoteLevelDetail(const UserQuoteLevelDetail& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  by_package_key_.MergeFrom(from.by_package_key_);
  by_market_code_.MergeFrom(from.by_market_code_);
  // @@protoc_insertion_point(copy_constructor:longbridge.quote.v1.UserQuoteLevelDetail)
}

inline void UserQuoteLevelDetail::SharedCtor() {
}

UserQuoteLevelDetail::~UserQuoteLevelDetail() {
  // @@protoc_insertion_point(destructor:longbridge.quote.v1.UserQuoteLevelDetail)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    ArenaDtor(this);
    return;
  }
  SharedDtor();
}

inline void UserQuoteLevelDetail::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  by_package_key_.Destruct();
  by_market_code_.Destruct();
}

void UserQuoteLevelDetail::ArenaDtor(void* object) {
  UserQuoteLevelDetail* _this = reinterpret_cast< UserQuoteLevelDetail* >(object);
  _this->by_package_key_.Destruct();
  _this->by_market_code_.Destruct();
}
void UserQuoteLevelDetail::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void UserQuoteLevelDetail::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridge.quote.v1.UserQuoteLevelDetail)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  by_package_key_.Clear();
  by_market_code_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* UserQuoteLevelDetail::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // map<string, .longbridge.quote.v1.UserQuoteLevelDetail.PackageDetail> by_package_key = 1 [json_name = "byPackageKey"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(&by_package_key_, ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr));
        } else
          goto handle_unusual;
        continue;
      // map<string, .longbridge.quote.v1.UserQuoteLevelDetail.MarketPackageDetail> by_market_code = 2 [json_name = "byMarketCode"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(&by_market_code_, ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<18>(ptr));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* UserQuoteLevelDetail::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridge.quote.v1.UserQuoteLevelDetail)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // map<string, .longbridge.quote.v1.UserQuoteLevelDetail.PackageDetail> by_package_key = 1 [json_name = "byPackageKey"];
  if (!this->_internal_by_package_key().empty()) {
    using MapType = ::_pb::Map<std::string, ::longbridge::quote::v1::UserQuoteLevelDetail_PackageDetail>;
    using WireHelper = UserQuoteLevelDetail_ByPackageKeyEntry_DoNotUse::Funcs;
    const auto& map_field = this->_internal_by_package_key();
    auto check_utf8 = [](const MapType::value_type& entry) {
      (void)entry;
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
        entry.first.data(), static_cast<int>(entry.first.length()),
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
        "longbridge.quote.v1.UserQuoteLevelDetail.ByPackageKeyEntry.key");
    };

    if (stream->IsSerializationDeterministic() && map_field.size() > 1) {
      for (const auto& entry : ::_pbi::MapSorterPtr<MapType>(map_field)) {
        target = WireHelper::InternalSerialize(1, entry.first, entry.second, target, stream);
        check_utf8(entry);
      }
    } else {
      for (const auto& entry : map_field) {
        target = WireHelper::InternalSerialize(1, entry.first, entry.second, target, stream);
        check_utf8(entry);
      }
    }
  }

  // map<string, .longbridge.quote.v1.UserQuoteLevelDetail.MarketPackageDetail> by_market_code = 2 [json_name = "byMarketCode"];
  if (!this->_internal_by_market_code().empty()) {
    using MapType = ::_pb::Map<std::string, ::longbridge::quote::v1::UserQuoteLevelDetail_MarketPackageDetail>;
    using WireHelper = UserQuoteLevelDetail_ByMarketCodeEntry_DoNotUse::Funcs;
    const auto& map_field = this->_internal_by_market_code();
    auto check_utf8 = [](const MapType::value_type& entry) {
      (void)entry;
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
        entry.first.data(), static_cast<int>(entry.first.length()),
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
        "longbridge.quote.v1.UserQuoteLevelDetail.ByMarketCodeEntry.key");
    };

    if (stream->IsSerializationDeterministic() && map_field.size() > 1) {
      for (const auto& entry : ::_pbi::MapSorterPtr<MapType>(map_field)) {
        target = WireHelper::InternalSerialize(2, entry.first, entry.second, target, stream);
        check_utf8(entry);
      }
    } else {
      for (const auto& entry : map_field) {
        target = WireHelper::InternalSerialize(2, entry.first, entry.second, target, stream);
        check_utf8(entry);
      }
    }
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridge.quote.v1.UserQuoteLevelDetail)
  return target;
}

size_t UserQuoteLevelDetail::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridge.quote.v1.UserQuoteLevelDetail)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // map<string, .longbridge.quote.v1.UserQuoteLevelDetail.PackageDetail> by_package_key = 1 [json_name = "byPackageKey"];
  total_size += 1 *
      ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(this->_internal_by_package_key_size());
  for (::PROTOBUF_NAMESPACE_ID::Map< std::string, ::longbridge::quote::v1::UserQuoteLevelDetail_PackageDetail >::const_iterator
      it = this->_internal_by_package_key().begin();
      it != this->_internal_by_package_key().end(); ++it) {
    total_size += UserQuoteLevelDetail_ByPackageKeyEntry_DoNotUse::Funcs::ByteSizeLong(it->first, it->second);
  }

  // map<string, .longbridge.quote.v1.UserQuoteLevelDetail.MarketPackageDetail> by_market_code = 2 [json_name = "byMarketCode"];
  total_size += 1 *
      ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(this->_internal_by_market_code_size());
  for (::PROTOBUF_NAMESPACE_ID::Map< std::string, ::longbridge::quote::v1::UserQuoteLevelDetail_MarketPackageDetail >::const_iterator
      it = this->_internal_by_market_code().begin();
      it != this->_internal_by_market_code().end(); ++it) {
    total_size += UserQuoteLevelDetail_ByMarketCodeEntry_DoNotUse::Funcs::ByteSizeLong(it->first, it->second);
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData UserQuoteLevelDetail::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    UserQuoteLevelDetail::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*UserQuoteLevelDetail::GetClassData() const { return &_class_data_; }

void UserQuoteLevelDetail::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<UserQuoteLevelDetail *>(to)->MergeFrom(
      static_cast<const UserQuoteLevelDetail &>(from));
}


void UserQuoteLevelDetail::MergeFrom(const UserQuoteLevelDetail& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:longbridge.quote.v1.UserQuoteLevelDetail)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  by_package_key_.MergeFrom(from.by_package_key_);
  by_market_code_.MergeFrom(from.by_market_code_);
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void UserQuoteLevelDetail::CopyFrom(const UserQuoteLevelDetail& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridge.quote.v1.UserQuoteLevelDetail)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool UserQuoteLevelDetail::IsInitialized() const {
  return true;
}

void UserQuoteLevelDetail::InternalSwap(UserQuoteLevelDetail* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  by_package_key_.InternalSwap(&other->by_package_key_);
  by_market_code_.InternalSwap(&other->by_market_code_);
}

::PROTOBUF_NAMESPACE_ID::Metadata UserQuoteLevelDetail::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[70]);
}

// ===================================================================

class UserQuoteProfileResponse::_Internal {
 public:
  static const ::longbridge::quote::v1::UserQuoteLevelDetail& quote_level_detail(const UserQuoteProfileResponse* msg);
};

const ::longbridge::quote::v1::UserQuoteLevelDetail&
UserQuoteProfileResponse::_Internal::quote_level_detail(const UserQuoteProfileResponse* msg) {
  return *msg->quote_level_detail_;
}
UserQuoteProfileResponse::UserQuoteProfileResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
  rate_limit_(arena) {
  SharedCtor();
  // @@protoc_insertion_point(arena_constructor:longbridge.quote.v1.UserQuoteProfileResponse)
}
UserQuoteProfileResponse::UserQuoteProfileResponse(const UserQuoteProfileResponse& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      rate_limit_(from.rate_limit_) {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  quote_level_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    quote_level_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_quote_level().empty()) {
    quote_level_.Set(from._internal_quote_level(), 
      GetArenaForAllocation());
  }
  if (from._internal_has_quote_level_detail()) {
    quote_level_detail_ = new ::longbridge::quote::v1::UserQuoteLevelDetail(*from.quote_level_detail_);
  } else {
    quote_level_detail_ = nullptr;
  }
  ::memcpy(&member_id_, &from.member_id_,
    static_cast<size_t>(reinterpret_cast<char*>(&history_candlestick_limit_) -
    reinterpret_cast<char*>(&member_id_)) + sizeof(history_candlestick_limit_));
  // @@protoc_insertion_point(copy_constructor:longbridge.quote.v1.UserQuoteProfileResponse)
}

inline void UserQuoteProfileResponse::SharedCtor() {
quote_level_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  quote_level_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
    reinterpret_cast<char*>(&quote_level_detail_) - reinterpret_cast<char*>(this)),
    0, static_cast<size_t>(reinterpret_cast<char*>(&history_candlestick_limit_) -
    reinterpret_cast<char*>(&quote_level_detail_)) + sizeof(history_candlestick_limit_));
}

UserQuoteProfileResponse::~UserQuoteProfileResponse() {
  // @@protoc_insertion_point(destructor:longbridge.quote.v1.UserQuoteProfileResponse)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void UserQuoteProfileResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  quote_level_.Destroy();
  if (this != internal_default_instance()) delete quote_level_detail_;
}

void UserQuoteProfileResponse::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void UserQuoteProfileResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:longbridge.quote.v1.UserQuoteProfileResponse)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  rate_limit_.Clear();
  quote_level_.ClearToEmpty();
  if (GetArenaForAllocation() == nullptr && quote_level_detail_ != nullptr) {
    delete quote_level_detail_;
  }
  quote_level_detail_ = nullptr;
  ::memset(&member_id_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&history_candlestick_limit_) -
      reinterpret_cast<char*>(&member_id_)) + sizeof(history_candlestick_limit_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* UserQuoteProfileResponse::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // int64 member_id = 1 [json_name = "memberId"];
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 8)) {
          member_id_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string quote_level = 2 [json_name = "quoteLevel"];
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
          auto str = _internal_mutable_quote_level();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "longbridge.quote.v1.UserQuoteProfileResponse.quote_level"));
        } else
          goto handle_unusual;
        continue;
      // int32 subscribe_limit = 3 [json_name = "subscribeLimit"];
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 24)) {
          subscribe_limit_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int32 history_candlestick_limit = 4 [json_name = "historyCandlestickLimit"];
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 32)) {
          history_candlestick_limit_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // repeated .longbridge.quote.v1.RateLimit rate_limit = 5 [json_name = "rateLimit"];
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 42)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_rate_limit(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<42>(ptr));
        } else
          goto handle_unusual;
        continue;
      // .longbridge.quote.v1.UserQuoteLevelDetail quote_level_detail = 6 [json_name = "quoteLevelDetail"];
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 50)) {
          ptr = ctx->ParseMessage(_internal_mutable_quote_level_detail(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* UserQuoteProfileResponse::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:longbridge.quote.v1.UserQuoteProfileResponse)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // int64 member_id = 1 [json_name = "memberId"];
  if (this->_internal_member_id() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt64ToArray(1, this->_internal_member_id(), target);
  }

  // string quote_level = 2 [json_name = "quoteLevel"];
  if (!this->_internal_quote_level().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_quote_level().data(), static_cast<int>(this->_internal_quote_level().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "longbridge.quote.v1.UserQuoteProfileResponse.quote_level");
    target = stream->WriteStringMaybeAliased(
        2, this->_internal_quote_level(), target);
  }

  // int32 subscribe_limit = 3 [json_name = "subscribeLimit"];
  if (this->_internal_subscribe_limit() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt32ToArray(3, this->_internal_subscribe_limit(), target);
  }

  // int32 history_candlestick_limit = 4 [json_name = "historyCandlestickLimit"];
  if (this->_internal_history_candlestick_limit() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt32ToArray(4, this->_internal_history_candlestick_limit(), target);
  }

  // repeated .longbridge.quote.v1.RateLimit rate_limit = 5 [json_name = "rateLimit"];
  for (unsigned i = 0,
      n = static_cast<unsigned>(this->_internal_rate_limit_size()); i < n; i++) {
    const auto& repfield = this->_internal_rate_limit(i);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(5, repfield, repfield.GetCachedSize(), target, stream);
  }

  // .longbridge.quote.v1.UserQuoteLevelDetail quote_level_detail = 6 [json_name = "quoteLevelDetail"];
  if (this->_internal_has_quote_level_detail()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(6, _Internal::quote_level_detail(this),
        _Internal::quote_level_detail(this).GetCachedSize(), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:longbridge.quote.v1.UserQuoteProfileResponse)
  return target;
}

size_t UserQuoteProfileResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:longbridge.quote.v1.UserQuoteProfileResponse)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated .longbridge.quote.v1.RateLimit rate_limit = 5 [json_name = "rateLimit"];
  total_size += 1UL * this->_internal_rate_limit_size();
  for (const auto& msg : this->rate_limit_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  // string quote_level = 2 [json_name = "quoteLevel"];
  if (!this->_internal_quote_level().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_quote_level());
  }

  // .longbridge.quote.v1.UserQuoteLevelDetail quote_level_detail = 6 [json_name = "quoteLevelDetail"];
  if (this->_internal_has_quote_level_detail()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *quote_level_detail_);
  }

  // int64 member_id = 1 [json_name = "memberId"];
  if (this->_internal_member_id() != 0) {
    total_size += ::_pbi::WireFormatLite::Int64SizePlusOne(this->_internal_member_id());
  }

  // int32 subscribe_limit = 3 [json_name = "subscribeLimit"];
  if (this->_internal_subscribe_limit() != 0) {
    total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(this->_internal_subscribe_limit());
  }

  // int32 history_candlestick_limit = 4 [json_name = "historyCandlestickLimit"];
  if (this->_internal_history_candlestick_limit() != 0) {
    total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(this->_internal_history_candlestick_limit());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData UserQuoteProfileResponse::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    UserQuoteProfileResponse::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*UserQuoteProfileResponse::GetClassData() const { return &_class_data_; }

void UserQuoteProfileResponse::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<UserQuoteProfileResponse *>(to)->MergeFrom(
      static_cast<const UserQuoteProfileResponse &>(from));
}


void UserQuoteProfileResponse::MergeFrom(const UserQuoteProfileResponse& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:longbridge.quote.v1.UserQuoteProfileResponse)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  rate_limit_.MergeFrom(from.rate_limit_);
  if (!from._internal_quote_level().empty()) {
    _internal_set_quote_level(from._internal_quote_level());
  }
  if (from._internal_has_quote_level_detail()) {
    _internal_mutable_quote_level_detail()->::longbridge::quote::v1::UserQuoteLevelDetail::MergeFrom(from._internal_quote_level_detail());
  }
  if (from._internal_member_id() != 0) {
    _internal_set_member_id(from._internal_member_id());
  }
  if (from._internal_subscribe_limit() != 0) {
    _internal_set_subscribe_limit(from._internal_subscribe_limit());
  }
  if (from._internal_history_candlestick_limit() != 0) {
    _internal_set_history_candlestick_limit(from._internal_history_candlestick_limit());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void UserQuoteProfileResponse::CopyFrom(const UserQuoteProfileResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:longbridge.quote.v1.UserQuoteProfileResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool UserQuoteProfileResponse::IsInitialized() const {
  return true;
}

void UserQuoteProfileResponse::InternalSwap(UserQuoteProfileResponse* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  rate_limit_.InternalSwap(&other->rate_limit_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &quote_level_, lhs_arena,
      &other->quote_level_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(UserQuoteProfileResponse, history_candlestick_limit_)
      + sizeof(UserQuoteProfileResponse::history_candlestick_limit_)
      - PROTOBUF_FIELD_OFFSET(UserQuoteProfileResponse, quote_level_detail_)>(
          reinterpret_cast<char*>(&quote_level_detail_),
          reinterpret_cast<char*>(&other->quote_level_detail_));
}

::PROTOBUF_NAMESPACE_ID::Metadata UserQuoteProfileResponse::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_quote_2fapi_2eproto_getter, &descriptor_table_quote_2fapi_2eproto_once,
      file_level_metadata_quote_2fapi_2eproto[71]);
}

// @@protoc_insertion_point(namespace_scope)
}  // namespace v1
}  // namespace quote
}  // namespace longbridge
PROTOBUF_NAMESPACE_OPEN
template<> PROTOBUF_NOINLINE ::longbridge::quote::v1::SecurityRequest*
Arena::CreateMaybeMessage< ::longbridge::quote::v1::SecurityRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridge::quote::v1::SecurityRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridge::quote::v1::MultiSecurityRequest*
Arena::CreateMaybeMessage< ::longbridge::quote::v1::MultiSecurityRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridge::quote::v1::MultiSecurityRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridge::quote::v1::SecurityStaticInfoResponse*
Arena::CreateMaybeMessage< ::longbridge::quote::v1::SecurityStaticInfoResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridge::quote::v1::SecurityStaticInfoResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridge::quote::v1::StaticInfo*
Arena::CreateMaybeMessage< ::longbridge::quote::v1::StaticInfo >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridge::quote::v1::StaticInfo >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridge::quote::v1::SecurityQuoteResponse*
Arena::CreateMaybeMessage< ::longbridge::quote::v1::SecurityQuoteResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridge::quote::v1::SecurityQuoteResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridge::quote::v1::SecurityQuote*
Arena::CreateMaybeMessage< ::longbridge::quote::v1::SecurityQuote >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridge::quote::v1::SecurityQuote >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridge::quote::v1::PrePostQuote*
Arena::CreateMaybeMessage< ::longbridge::quote::v1::PrePostQuote >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridge::quote::v1::PrePostQuote >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridge::quote::v1::OptionQuoteResponse*
Arena::CreateMaybeMessage< ::longbridge::quote::v1::OptionQuoteResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridge::quote::v1::OptionQuoteResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridge::quote::v1::OptionQuote*
Arena::CreateMaybeMessage< ::longbridge::quote::v1::OptionQuote >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridge::quote::v1::OptionQuote >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridge::quote::v1::OptionExtend*
Arena::CreateMaybeMessage< ::longbridge::quote::v1::OptionExtend >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridge::quote::v1::OptionExtend >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridge::quote::v1::WarrantQuoteResponse*
Arena::CreateMaybeMessage< ::longbridge::quote::v1::WarrantQuoteResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridge::quote::v1::WarrantQuoteResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridge::quote::v1::WarrantQuote*
Arena::CreateMaybeMessage< ::longbridge::quote::v1::WarrantQuote >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridge::quote::v1::WarrantQuote >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridge::quote::v1::WarrantExtend*
Arena::CreateMaybeMessage< ::longbridge::quote::v1::WarrantExtend >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridge::quote::v1::WarrantExtend >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridge::quote::v1::SecurityDepthResponse*
Arena::CreateMaybeMessage< ::longbridge::quote::v1::SecurityDepthResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridge::quote::v1::SecurityDepthResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridge::quote::v1::Depth*
Arena::CreateMaybeMessage< ::longbridge::quote::v1::Depth >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridge::quote::v1::Depth >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridge::quote::v1::SecurityBrokersResponse*
Arena::CreateMaybeMessage< ::longbridge::quote::v1::SecurityBrokersResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridge::quote::v1::SecurityBrokersResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridge::quote::v1::Brokers*
Arena::CreateMaybeMessage< ::longbridge::quote::v1::Brokers >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridge::quote::v1::Brokers >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridge::quote::v1::ParticipantBrokerIdsResponse*
Arena::CreateMaybeMessage< ::longbridge::quote::v1::ParticipantBrokerIdsResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridge::quote::v1::ParticipantBrokerIdsResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridge::quote::v1::ParticipantInfo*
Arena::CreateMaybeMessage< ::longbridge::quote::v1::ParticipantInfo >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridge::quote::v1::ParticipantInfo >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridge::quote::v1::SecurityTradeRequest*
Arena::CreateMaybeMessage< ::longbridge::quote::v1::SecurityTradeRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridge::quote::v1::SecurityTradeRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridge::quote::v1::SecurityTradeResponse*
Arena::CreateMaybeMessage< ::longbridge::quote::v1::SecurityTradeResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridge::quote::v1::SecurityTradeResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridge::quote::v1::Trade*
Arena::CreateMaybeMessage< ::longbridge::quote::v1::Trade >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridge::quote::v1::Trade >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridge::quote::v1::SecurityIntradayRequest*
Arena::CreateMaybeMessage< ::longbridge::quote::v1::SecurityIntradayRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridge::quote::v1::SecurityIntradayRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridge::quote::v1::SecurityIntradayResponse*
Arena::CreateMaybeMessage< ::longbridge::quote::v1::SecurityIntradayResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridge::quote::v1::SecurityIntradayResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridge::quote::v1::Line*
Arena::CreateMaybeMessage< ::longbridge::quote::v1::Line >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridge::quote::v1::Line >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridge::quote::v1::SecurityCandlestickRequest*
Arena::CreateMaybeMessage< ::longbridge::quote::v1::SecurityCandlestickRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridge::quote::v1::SecurityCandlestickRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridge::quote::v1::SecurityCandlestickResponse*
Arena::CreateMaybeMessage< ::longbridge::quote::v1::SecurityCandlestickResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridge::quote::v1::SecurityCandlestickResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridge::quote::v1::Candlestick*
Arena::CreateMaybeMessage< ::longbridge::quote::v1::Candlestick >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridge::quote::v1::Candlestick >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridge::quote::v1::OptionChainDateListResponse*
Arena::CreateMaybeMessage< ::longbridge::quote::v1::OptionChainDateListResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridge::quote::v1::OptionChainDateListResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridge::quote::v1::OptionChainDateStrikeInfoRequest*
Arena::CreateMaybeMessage< ::longbridge::quote::v1::OptionChainDateStrikeInfoRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridge::quote::v1::OptionChainDateStrikeInfoRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridge::quote::v1::OptionChainDateStrikeInfoResponse*
Arena::CreateMaybeMessage< ::longbridge::quote::v1::OptionChainDateStrikeInfoResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridge::quote::v1::OptionChainDateStrikeInfoResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridge::quote::v1::StrikePriceInfo*
Arena::CreateMaybeMessage< ::longbridge::quote::v1::StrikePriceInfo >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridge::quote::v1::StrikePriceInfo >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridge::quote::v1::IssuerInfoResponse*
Arena::CreateMaybeMessage< ::longbridge::quote::v1::IssuerInfoResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridge::quote::v1::IssuerInfoResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridge::quote::v1::IssuerInfo*
Arena::CreateMaybeMessage< ::longbridge::quote::v1::IssuerInfo >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridge::quote::v1::IssuerInfo >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridge::quote::v1::WarrantFilterListRequest*
Arena::CreateMaybeMessage< ::longbridge::quote::v1::WarrantFilterListRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridge::quote::v1::WarrantFilterListRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridge::quote::v1::FilterConfig*
Arena::CreateMaybeMessage< ::longbridge::quote::v1::FilterConfig >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridge::quote::v1::FilterConfig >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridge::quote::v1::WarrantFilterListResponse*
Arena::CreateMaybeMessage< ::longbridge::quote::v1::WarrantFilterListResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridge::quote::v1::WarrantFilterListResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridge::quote::v1::FilterWarrant*
Arena::CreateMaybeMessage< ::longbridge::quote::v1::FilterWarrant >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridge::quote::v1::FilterWarrant >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridge::quote::v1::MarketTradePeriodResponse*
Arena::CreateMaybeMessage< ::longbridge::quote::v1::MarketTradePeriodResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridge::quote::v1::MarketTradePeriodResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridge::quote::v1::MarketTradePeriod*
Arena::CreateMaybeMessage< ::longbridge::quote::v1::MarketTradePeriod >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridge::quote::v1::MarketTradePeriod >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridge::quote::v1::TradePeriod*
Arena::CreateMaybeMessage< ::longbridge::quote::v1::TradePeriod >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridge::quote::v1::TradePeriod >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridge::quote::v1::SubscriptionRequest*
Arena::CreateMaybeMessage< ::longbridge::quote::v1::SubscriptionRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridge::quote::v1::SubscriptionRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridge::quote::v1::SubscriptionResponse*
Arena::CreateMaybeMessage< ::longbridge::quote::v1::SubscriptionResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridge::quote::v1::SubscriptionResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridge::quote::v1::SubTypeList*
Arena::CreateMaybeMessage< ::longbridge::quote::v1::SubTypeList >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridge::quote::v1::SubTypeList >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridge::quote::v1::SubscribeRequest*
Arena::CreateMaybeMessage< ::longbridge::quote::v1::SubscribeRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridge::quote::v1::SubscribeRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridge::quote::v1::UnsubscribeRequest*
Arena::CreateMaybeMessage< ::longbridge::quote::v1::UnsubscribeRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridge::quote::v1::UnsubscribeRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridge::quote::v1::UnsubscribeResponse*
Arena::CreateMaybeMessage< ::longbridge::quote::v1::UnsubscribeResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridge::quote::v1::UnsubscribeResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridge::quote::v1::PushQuote*
Arena::CreateMaybeMessage< ::longbridge::quote::v1::PushQuote >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridge::quote::v1::PushQuote >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridge::quote::v1::PushDepth*
Arena::CreateMaybeMessage< ::longbridge::quote::v1::PushDepth >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridge::quote::v1::PushDepth >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridge::quote::v1::PushBrokers*
Arena::CreateMaybeMessage< ::longbridge::quote::v1::PushBrokers >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridge::quote::v1::PushBrokers >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridge::quote::v1::PushTrade*
Arena::CreateMaybeMessage< ::longbridge::quote::v1::PushTrade >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridge::quote::v1::PushTrade >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridge::quote::v1::MarketTradeDayRequest*
Arena::CreateMaybeMessage< ::longbridge::quote::v1::MarketTradeDayRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridge::quote::v1::MarketTradeDayRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridge::quote::v1::MarketTradeDayResponse*
Arena::CreateMaybeMessage< ::longbridge::quote::v1::MarketTradeDayResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridge::quote::v1::MarketTradeDayResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridge::quote::v1::CapitalFlowIntradayRequest*
Arena::CreateMaybeMessage< ::longbridge::quote::v1::CapitalFlowIntradayRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridge::quote::v1::CapitalFlowIntradayRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridge::quote::v1::CapitalFlowIntradayResponse_CapitalFlowLine*
Arena::CreateMaybeMessage< ::longbridge::quote::v1::CapitalFlowIntradayResponse_CapitalFlowLine >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridge::quote::v1::CapitalFlowIntradayResponse_CapitalFlowLine >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridge::quote::v1::CapitalFlowIntradayResponse*
Arena::CreateMaybeMessage< ::longbridge::quote::v1::CapitalFlowIntradayResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridge::quote::v1::CapitalFlowIntradayResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridge::quote::v1::CapitalDistributionResponse_CapitalDistribution*
Arena::CreateMaybeMessage< ::longbridge::quote::v1::CapitalDistributionResponse_CapitalDistribution >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridge::quote::v1::CapitalDistributionResponse_CapitalDistribution >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridge::quote::v1::CapitalDistributionResponse*
Arena::CreateMaybeMessage< ::longbridge::quote::v1::CapitalDistributionResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridge::quote::v1::CapitalDistributionResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridge::quote::v1::SecurityCalcQuoteRequest*
Arena::CreateMaybeMessage< ::longbridge::quote::v1::SecurityCalcQuoteRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridge::quote::v1::SecurityCalcQuoteRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridge::quote::v1::SecurityCalcIndex*
Arena::CreateMaybeMessage< ::longbridge::quote::v1::SecurityCalcIndex >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridge::quote::v1::SecurityCalcIndex >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridge::quote::v1::SecurityCalcQuoteResponse*
Arena::CreateMaybeMessage< ::longbridge::quote::v1::SecurityCalcQuoteResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridge::quote::v1::SecurityCalcQuoteResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridge::quote::v1::SecurityHistoryCandlestickRequest_OffsetQuery*
Arena::CreateMaybeMessage< ::longbridge::quote::v1::SecurityHistoryCandlestickRequest_OffsetQuery >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridge::quote::v1::SecurityHistoryCandlestickRequest_OffsetQuery >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridge::quote::v1::SecurityHistoryCandlestickRequest_DateQuery*
Arena::CreateMaybeMessage< ::longbridge::quote::v1::SecurityHistoryCandlestickRequest_DateQuery >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridge::quote::v1::SecurityHistoryCandlestickRequest_DateQuery >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridge::quote::v1::SecurityHistoryCandlestickRequest*
Arena::CreateMaybeMessage< ::longbridge::quote::v1::SecurityHistoryCandlestickRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridge::quote::v1::SecurityHistoryCandlestickRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridge::quote::v1::UserQuoteProfileRequest*
Arena::CreateMaybeMessage< ::longbridge::quote::v1::UserQuoteProfileRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridge::quote::v1::UserQuoteProfileRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridge::quote::v1::RateLimit*
Arena::CreateMaybeMessage< ::longbridge::quote::v1::RateLimit >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridge::quote::v1::RateLimit >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridge::quote::v1::UserQuoteLevelDetail_PackageDetail*
Arena::CreateMaybeMessage< ::longbridge::quote::v1::UserQuoteLevelDetail_PackageDetail >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridge::quote::v1::UserQuoteLevelDetail_PackageDetail >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridge::quote::v1::UserQuoteLevelDetail_MarketPackageDetail*
Arena::CreateMaybeMessage< ::longbridge::quote::v1::UserQuoteLevelDetail_MarketPackageDetail >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridge::quote::v1::UserQuoteLevelDetail_MarketPackageDetail >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridge::quote::v1::UserQuoteLevelDetail_ByPackageKeyEntry_DoNotUse*
Arena::CreateMaybeMessage< ::longbridge::quote::v1::UserQuoteLevelDetail_ByPackageKeyEntry_DoNotUse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridge::quote::v1::UserQuoteLevelDetail_ByPackageKeyEntry_DoNotUse >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridge::quote::v1::UserQuoteLevelDetail_ByMarketCodeEntry_DoNotUse*
Arena::CreateMaybeMessage< ::longbridge::quote::v1::UserQuoteLevelDetail_ByMarketCodeEntry_DoNotUse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridge::quote::v1::UserQuoteLevelDetail_ByMarketCodeEntry_DoNotUse >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridge::quote::v1::UserQuoteLevelDetail*
Arena::CreateMaybeMessage< ::longbridge::quote::v1::UserQuoteLevelDetail >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridge::quote::v1::UserQuoteLevelDetail >(arena);
}
template<> PROTOBUF_NOINLINE ::longbridge::quote::v1::UserQuoteProfileResponse*
Arena::CreateMaybeMessage< ::longbridge::quote::v1::UserQuoteProfileResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::longbridge::quote::v1::UserQuoteProfileResponse >(arena);
}
PROTOBUF_NAMESPACE_CLOSE

// @@protoc_insertion_point(global_scope)
#include <google/protobuf/port_undef.inc>
