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

#ifndef PROTOBUF_INCLUDED_metadata_2eproto
#define PROTOBUF_INCLUDED_metadata_2eproto

#include <string>

#include <google/protobuf/stubs/common.h>

#if GOOGLE_PROTOBUF_VERSION < 3006001
#error This file was generated by a newer version of protoc which is
#error incompatible with your Protocol Buffer headers.  Please update
#error your headers.
#endif
#if 3006001 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
#error This file was generated by an older version of protoc which is
#error incompatible with your Protocol Buffer headers.  Please
#error regenerate this file with a newer version of protoc.
#endif

#include <google/protobuf/io/coded_stream.h>
#include <google/protobuf/arena.h>
#include <google/protobuf/arenastring.h>
#include <google/protobuf/generated_message_table_driven.h>
#include <google/protobuf/generated_message_util.h>
#include <google/protobuf/inlined_string_field.h>
#include <google/protobuf/metadata.h>
#include <google/protobuf/message.h>
#include <google/protobuf/repeated_field.h>  // IWYU pragma: export
#include <google/protobuf/extension_set.h>  // IWYU pragma: export
#include <google/protobuf/generated_enum_reflection.h>
#include <google/protobuf/unknown_field_set.h>
#include "fee.pb.h"
// @@protoc_insertion_point(includes)
#define PROTOBUF_INTERNAL_EXPORT_protobuf_metadata_2eproto 

namespace protobuf_metadata_2eproto {
// Internal implementation detail -- do not use these members.
struct TableStruct {
  static const ::google::protobuf::internal::ParseTableField entries[];
  static const ::google::protobuf::internal::AuxillaryParseTableField aux[];
  static const ::google::protobuf::internal::ParseTable schema[1];
  static const ::google::protobuf::internal::FieldMetadata field_metadata[];
  static const ::google::protobuf::internal::SerializationTable serialization_table[];
  static const ::google::protobuf::uint32 offsets[];
};
void AddDescriptors();
}  // namespace protobuf_metadata_2eproto
namespace pb {
class Metadata;
class MetadataDefaultTypeInternal;
extern MetadataDefaultTypeInternal _Metadata_default_instance_;
}  // namespace pb
namespace google {
namespace protobuf {
template<> ::pb::Metadata* Arena::CreateMaybeMessage<::pb::Metadata>(Arena*);
}  // namespace protobuf
}  // namespace google
namespace pb {

enum Metadata_Version {
  Metadata_Version_UNKNOWN_VERSION = 0,
  Metadata_Version__0_0_1 = 1,
  Metadata_Version__0_0_2 = 2,
  Metadata_Version__0_0_3 = 3,
  Metadata_Version__0_1_0 = 4
};
bool Metadata_Version_IsValid(int value);
const Metadata_Version Metadata_Version_Version_MIN = Metadata_Version_UNKNOWN_VERSION;
const Metadata_Version Metadata_Version_Version_MAX = Metadata_Version__0_1_0;
const int Metadata_Version_Version_ARRAYSIZE = Metadata_Version_Version_MAX + 1;

const ::google::protobuf::EnumDescriptor* Metadata_Version_descriptor();
inline const ::std::string& Metadata_Version_Name(Metadata_Version value) {
  return ::google::protobuf::internal::NameOfEnum(
    Metadata_Version_descriptor(), value);
}
inline bool Metadata_Version_Parse(
    const ::std::string& name, Metadata_Version* value) {
  return ::google::protobuf::internal::ParseNamedEnum<Metadata_Version>(
    Metadata_Version_descriptor(), name, value);
}
enum Metadata_Language {
  Metadata_Language_UNKNOWN_LANGUAGE = 0,
  Metadata_Language_en = 1,
  Metadata_Language_aa = 2,
  Metadata_Language_ab = 3,
  Metadata_Language_ae = 4,
  Metadata_Language_af = 5,
  Metadata_Language_ak = 6,
  Metadata_Language_am = 7,
  Metadata_Language_an = 8,
  Metadata_Language_ar = 9,
  Metadata_Language_as = 10,
  Metadata_Language_av = 11,
  Metadata_Language_ay = 12,
  Metadata_Language_az = 13,
  Metadata_Language_ba = 14,
  Metadata_Language_be = 15,
  Metadata_Language_bg = 16,
  Metadata_Language_bh = 17,
  Metadata_Language_bi = 18,
  Metadata_Language_bm = 19,
  Metadata_Language_bn = 20,
  Metadata_Language_bo = 21,
  Metadata_Language_br = 22,
  Metadata_Language_bs = 23,
  Metadata_Language_ca = 24,
  Metadata_Language_ce = 25,
  Metadata_Language_ch = 26,
  Metadata_Language_co = 27,
  Metadata_Language_cr = 28,
  Metadata_Language_cs = 29,
  Metadata_Language_cu = 30,
  Metadata_Language_cv = 31,
  Metadata_Language_cy = 32,
  Metadata_Language_da = 33,
  Metadata_Language_de = 34,
  Metadata_Language_dv = 35,
  Metadata_Language_dz = 36,
  Metadata_Language_ee = 37,
  Metadata_Language_el = 38,
  Metadata_Language_eo = 39,
  Metadata_Language_es = 40,
  Metadata_Language_et = 41,
  Metadata_Language_eu = 42,
  Metadata_Language_fa = 43,
  Metadata_Language_ff = 44,
  Metadata_Language_fi = 45,
  Metadata_Language_fj = 46,
  Metadata_Language_fo = 47,
  Metadata_Language_fr = 48,
  Metadata_Language_fy = 49,
  Metadata_Language_ga = 50,
  Metadata_Language_gd = 51,
  Metadata_Language_gl = 52,
  Metadata_Language_gn = 53,
  Metadata_Language_gu = 54,
  Metadata_Language_gv = 55,
  Metadata_Language_ha = 56,
  Metadata_Language_he = 57,
  Metadata_Language_hi = 58,
  Metadata_Language_ho = 59,
  Metadata_Language_hr = 60,
  Metadata_Language_ht = 61,
  Metadata_Language_hu = 62,
  Metadata_Language_hy = 63,
  Metadata_Language_hz = 64,
  Metadata_Language_ia = 65,
  Metadata_Language_id = 66,
  Metadata_Language_ie = 67,
  Metadata_Language_ig = 68,
  Metadata_Language_ii = 69,
  Metadata_Language_ik = 70,
  Metadata_Language_io = 71,
  Metadata_Language_is = 72,
  Metadata_Language_it = 73,
  Metadata_Language_iu = 74,
  Metadata_Language_ja = 75,
  Metadata_Language_jv = 76,
  Metadata_Language_ka = 77,
  Metadata_Language_kg = 78,
  Metadata_Language_ki = 79,
  Metadata_Language_kj = 80,
  Metadata_Language_kk = 81,
  Metadata_Language_kl = 82,
  Metadata_Language_km = 83,
  Metadata_Language_kn = 84,
  Metadata_Language_ko = 85,
  Metadata_Language_kr = 86,
  Metadata_Language_ks = 87,
  Metadata_Language_ku = 88,
  Metadata_Language_kv = 89,
  Metadata_Language_kw = 90,
  Metadata_Language_ky = 91,
  Metadata_Language_la = 92,
  Metadata_Language_lb = 93,
  Metadata_Language_lg = 94,
  Metadata_Language_li = 95,
  Metadata_Language_ln = 96,
  Metadata_Language_lo = 97,
  Metadata_Language_lt = 98,
  Metadata_Language_lu = 99,
  Metadata_Language_lv = 100,
  Metadata_Language_mg = 101,
  Metadata_Language_mh = 102,
  Metadata_Language_mi = 103,
  Metadata_Language_mk = 104,
  Metadata_Language_ml = 105,
  Metadata_Language_mn = 106,
  Metadata_Language_mr = 107,
  Metadata_Language_ms = 108,
  Metadata_Language_mt = 109,
  Metadata_Language_my = 110,
  Metadata_Language_na = 111,
  Metadata_Language_nb = 112,
  Metadata_Language_nd = 113,
  Metadata_Language_ne = 114,
  Metadata_Language_ng = 115,
  Metadata_Language_nl = 116,
  Metadata_Language_nn = 117,
  Metadata_Language_no = 118,
  Metadata_Language_nr = 119,
  Metadata_Language_nv = 120,
  Metadata_Language_ny = 121,
  Metadata_Language_oc = 122,
  Metadata_Language_oj = 123,
  Metadata_Language_om = 124,
  Metadata_Language_or_ = 125,
  Metadata_Language_os = 126,
  Metadata_Language_pa = 127,
  Metadata_Language_pi = 128,
  Metadata_Language_pl = 129,
  Metadata_Language_ps = 130,
  Metadata_Language_pt = 131,
  Metadata_Language_qu = 132,
  Metadata_Language_rm = 133,
  Metadata_Language_rn = 134,
  Metadata_Language_ro = 135,
  Metadata_Language_ru = 136,
  Metadata_Language_rw = 137,
  Metadata_Language_sa = 138,
  Metadata_Language_sc = 139,
  Metadata_Language_sd = 140,
  Metadata_Language_se = 141,
  Metadata_Language_sg = 142,
  Metadata_Language_si = 143,
  Metadata_Language_sk = 144,
  Metadata_Language_sl = 145,
  Metadata_Language_sm = 146,
  Metadata_Language_sn = 147,
  Metadata_Language_so = 148,
  Metadata_Language_sq = 149,
  Metadata_Language_sr = 150,
  Metadata_Language_ss = 151,
  Metadata_Language_st = 152,
  Metadata_Language_su = 153,
  Metadata_Language_sv = 154,
  Metadata_Language_sw = 155,
  Metadata_Language_ta = 156,
  Metadata_Language_te = 157,
  Metadata_Language_tg = 158,
  Metadata_Language_th = 159,
  Metadata_Language_ti = 160,
  Metadata_Language_tk = 161,
  Metadata_Language_tl = 162,
  Metadata_Language_tn = 163,
  Metadata_Language_to = 164,
  Metadata_Language_tr = 165,
  Metadata_Language_ts = 166,
  Metadata_Language_tt = 167,
  Metadata_Language_tw = 168,
  Metadata_Language_ty = 169,
  Metadata_Language_ug = 170,
  Metadata_Language_uk = 171,
  Metadata_Language_ur = 172,
  Metadata_Language_uz = 173,
  Metadata_Language_ve = 174,
  Metadata_Language_vi = 175,
  Metadata_Language_vo = 176,
  Metadata_Language_wa = 177,
  Metadata_Language_wo = 178,
  Metadata_Language_xh = 179,
  Metadata_Language_yi = 180,
  Metadata_Language_yo = 181,
  Metadata_Language_za = 182,
  Metadata_Language_zh = 183,
  Metadata_Language_zu = 184
};
bool Metadata_Language_IsValid(int value);
const Metadata_Language Metadata_Language_Language_MIN = Metadata_Language_UNKNOWN_LANGUAGE;
const Metadata_Language Metadata_Language_Language_MAX = Metadata_Language_zu;
const int Metadata_Language_Language_ARRAYSIZE = Metadata_Language_Language_MAX + 1;

const ::google::protobuf::EnumDescriptor* Metadata_Language_descriptor();
inline const ::std::string& Metadata_Language_Name(Metadata_Language value) {
  return ::google::protobuf::internal::NameOfEnum(
    Metadata_Language_descriptor(), value);
}
inline bool Metadata_Language_Parse(
    const ::std::string& name, Metadata_Language* value) {
  return ::google::protobuf::internal::ParseNamedEnum<Metadata_Language>(
    Metadata_Language_descriptor(), name, value);
}
// ===================================================================

class Metadata : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:pb.Metadata) */ {
 public:
  Metadata();
  virtual ~Metadata();

  Metadata(const Metadata& from);

  inline Metadata& operator=(const Metadata& from) {
    CopyFrom(from);
    return *this;
  }
  #if LANG_CXX11
  Metadata(Metadata&& from) noexcept
    : Metadata() {
    *this = ::std::move(from);
  }

  inline Metadata& operator=(Metadata&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const Metadata& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const Metadata* internal_default_instance() {
    return reinterpret_cast<const Metadata*>(
               &_Metadata_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    0;

  void Swap(Metadata* other);
  friend void swap(Metadata& a, Metadata& b) {
    a.Swap(&b);
  }

  // implements Message ----------------------------------------------

  inline Metadata* New() const final {
    return CreateMaybeMessage<Metadata>(NULL);
  }

  Metadata* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<Metadata>(arena);
  }
  void CopyFrom(const ::google::protobuf::Message& from) final;
  void MergeFrom(const ::google::protobuf::Message& from) final;
  void CopyFrom(const Metadata& from);
  void MergeFrom(const Metadata& from);
  void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(Metadata* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

  ::google::protobuf::Metadata GetMetadata() const final;

  // nested types ----------------------------------------------------

  typedef Metadata_Version Version;
  static const Version UNKNOWN_VERSION =
    Metadata_Version_UNKNOWN_VERSION;
  static const Version _0_0_1 =
    Metadata_Version__0_0_1;
  static const Version _0_0_2 =
    Metadata_Version__0_0_2;
  static const Version _0_0_3 =
    Metadata_Version__0_0_3;
  static const Version _0_1_0 =
    Metadata_Version__0_1_0;
  static inline bool Version_IsValid(int value) {
    return Metadata_Version_IsValid(value);
  }
  static const Version Version_MIN =
    Metadata_Version_Version_MIN;
  static const Version Version_MAX =
    Metadata_Version_Version_MAX;
  static const int Version_ARRAYSIZE =
    Metadata_Version_Version_ARRAYSIZE;
  static inline const ::google::protobuf::EnumDescriptor*
  Version_descriptor() {
    return Metadata_Version_descriptor();
  }
  static inline const ::std::string& Version_Name(Version value) {
    return Metadata_Version_Name(value);
  }
  static inline bool Version_Parse(const ::std::string& name,
      Version* value) {
    return Metadata_Version_Parse(name, value);
  }

  typedef Metadata_Language Language;
  static const Language UNKNOWN_LANGUAGE =
    Metadata_Language_UNKNOWN_LANGUAGE;
  static const Language en =
    Metadata_Language_en;
  static const Language aa =
    Metadata_Language_aa;
  static const Language ab =
    Metadata_Language_ab;
  static const Language ae =
    Metadata_Language_ae;
  static const Language af =
    Metadata_Language_af;
  static const Language ak =
    Metadata_Language_ak;
  static const Language am =
    Metadata_Language_am;
  static const Language an =
    Metadata_Language_an;
  static const Language ar =
    Metadata_Language_ar;
  static const Language as =
    Metadata_Language_as;
  static const Language av =
    Metadata_Language_av;
  static const Language ay =
    Metadata_Language_ay;
  static const Language az =
    Metadata_Language_az;
  static const Language ba =
    Metadata_Language_ba;
  static const Language be =
    Metadata_Language_be;
  static const Language bg =
    Metadata_Language_bg;
  static const Language bh =
    Metadata_Language_bh;
  static const Language bi =
    Metadata_Language_bi;
  static const Language bm =
    Metadata_Language_bm;
  static const Language bn =
    Metadata_Language_bn;
  static const Language bo =
    Metadata_Language_bo;
  static const Language br =
    Metadata_Language_br;
  static const Language bs =
    Metadata_Language_bs;
  static const Language ca =
    Metadata_Language_ca;
  static const Language ce =
    Metadata_Language_ce;
  static const Language ch =
    Metadata_Language_ch;
  static const Language co =
    Metadata_Language_co;
  static const Language cr =
    Metadata_Language_cr;
  static const Language cs =
    Metadata_Language_cs;
  static const Language cu =
    Metadata_Language_cu;
  static const Language cv =
    Metadata_Language_cv;
  static const Language cy =
    Metadata_Language_cy;
  static const Language da =
    Metadata_Language_da;
  static const Language de =
    Metadata_Language_de;
  static const Language dv =
    Metadata_Language_dv;
  static const Language dz =
    Metadata_Language_dz;
  static const Language ee =
    Metadata_Language_ee;
  static const Language el =
    Metadata_Language_el;
  static const Language eo =
    Metadata_Language_eo;
  static const Language es =
    Metadata_Language_es;
  static const Language et =
    Metadata_Language_et;
  static const Language eu =
    Metadata_Language_eu;
  static const Language fa =
    Metadata_Language_fa;
  static const Language ff =
    Metadata_Language_ff;
  static const Language fi =
    Metadata_Language_fi;
  static const Language fj =
    Metadata_Language_fj;
  static const Language fo =
    Metadata_Language_fo;
  static const Language fr =
    Metadata_Language_fr;
  static const Language fy =
    Metadata_Language_fy;
  static const Language ga =
    Metadata_Language_ga;
  static const Language gd =
    Metadata_Language_gd;
  static const Language gl =
    Metadata_Language_gl;
  static const Language gn =
    Metadata_Language_gn;
  static const Language gu =
    Metadata_Language_gu;
  static const Language gv =
    Metadata_Language_gv;
  static const Language ha =
    Metadata_Language_ha;
  static const Language he =
    Metadata_Language_he;
  static const Language hi =
    Metadata_Language_hi;
  static const Language ho =
    Metadata_Language_ho;
  static const Language hr =
    Metadata_Language_hr;
  static const Language ht =
    Metadata_Language_ht;
  static const Language hu =
    Metadata_Language_hu;
  static const Language hy =
    Metadata_Language_hy;
  static const Language hz =
    Metadata_Language_hz;
  static const Language ia =
    Metadata_Language_ia;
  static const Language id =
    Metadata_Language_id;
  static const Language ie =
    Metadata_Language_ie;
  static const Language ig =
    Metadata_Language_ig;
  static const Language ii =
    Metadata_Language_ii;
  static const Language ik =
    Metadata_Language_ik;
  static const Language io =
    Metadata_Language_io;
  static const Language is =
    Metadata_Language_is;
  static const Language it =
    Metadata_Language_it;
  static const Language iu =
    Metadata_Language_iu;
  static const Language ja =
    Metadata_Language_ja;
  static const Language jv =
    Metadata_Language_jv;
  static const Language ka =
    Metadata_Language_ka;
  static const Language kg =
    Metadata_Language_kg;
  static const Language ki =
    Metadata_Language_ki;
  static const Language kj =
    Metadata_Language_kj;
  static const Language kk =
    Metadata_Language_kk;
  static const Language kl =
    Metadata_Language_kl;
  static const Language km =
    Metadata_Language_km;
  static const Language kn =
    Metadata_Language_kn;
  static const Language ko =
    Metadata_Language_ko;
  static const Language kr =
    Metadata_Language_kr;
  static const Language ks =
    Metadata_Language_ks;
  static const Language ku =
    Metadata_Language_ku;
  static const Language kv =
    Metadata_Language_kv;
  static const Language kw =
    Metadata_Language_kw;
  static const Language ky =
    Metadata_Language_ky;
  static const Language la =
    Metadata_Language_la;
  static const Language lb =
    Metadata_Language_lb;
  static const Language lg =
    Metadata_Language_lg;
  static const Language li =
    Metadata_Language_li;
  static const Language ln =
    Metadata_Language_ln;
  static const Language lo =
    Metadata_Language_lo;
  static const Language lt =
    Metadata_Language_lt;
  static const Language lu =
    Metadata_Language_lu;
  static const Language lv =
    Metadata_Language_lv;
  static const Language mg =
    Metadata_Language_mg;
  static const Language mh =
    Metadata_Language_mh;
  static const Language mi =
    Metadata_Language_mi;
  static const Language mk =
    Metadata_Language_mk;
  static const Language ml =
    Metadata_Language_ml;
  static const Language mn =
    Metadata_Language_mn;
  static const Language mr =
    Metadata_Language_mr;
  static const Language ms =
    Metadata_Language_ms;
  static const Language mt =
    Metadata_Language_mt;
  static const Language my =
    Metadata_Language_my;
  static const Language na =
    Metadata_Language_na;
  static const Language nb =
    Metadata_Language_nb;
  static const Language nd =
    Metadata_Language_nd;
  static const Language ne =
    Metadata_Language_ne;
  static const Language ng =
    Metadata_Language_ng;
  static const Language nl =
    Metadata_Language_nl;
  static const Language nn =
    Metadata_Language_nn;
  static const Language no =
    Metadata_Language_no;
  static const Language nr =
    Metadata_Language_nr;
  static const Language nv =
    Metadata_Language_nv;
  static const Language ny =
    Metadata_Language_ny;
  static const Language oc =
    Metadata_Language_oc;
  static const Language oj =
    Metadata_Language_oj;
  static const Language om =
    Metadata_Language_om;
  static const Language or_ =
    Metadata_Language_or_;
  static const Language os =
    Metadata_Language_os;
  static const Language pa =
    Metadata_Language_pa;
  static const Language pi =
    Metadata_Language_pi;
  static const Language pl =
    Metadata_Language_pl;
  static const Language ps =
    Metadata_Language_ps;
  static const Language pt =
    Metadata_Language_pt;
  static const Language qu =
    Metadata_Language_qu;
  static const Language rm =
    Metadata_Language_rm;
  static const Language rn =
    Metadata_Language_rn;
  static const Language ro =
    Metadata_Language_ro;
  static const Language ru =
    Metadata_Language_ru;
  static const Language rw =
    Metadata_Language_rw;
  static const Language sa =
    Metadata_Language_sa;
  static const Language sc =
    Metadata_Language_sc;
  static const Language sd =
    Metadata_Language_sd;
  static const Language se =
    Metadata_Language_se;
  static const Language sg =
    Metadata_Language_sg;
  static const Language si =
    Metadata_Language_si;
  static const Language sk =
    Metadata_Language_sk;
  static const Language sl =
    Metadata_Language_sl;
  static const Language sm =
    Metadata_Language_sm;
  static const Language sn =
    Metadata_Language_sn;
  static const Language so =
    Metadata_Language_so;
  static const Language sq =
    Metadata_Language_sq;
  static const Language sr =
    Metadata_Language_sr;
  static const Language ss =
    Metadata_Language_ss;
  static const Language st =
    Metadata_Language_st;
  static const Language su =
    Metadata_Language_su;
  static const Language sv =
    Metadata_Language_sv;
  static const Language sw =
    Metadata_Language_sw;
  static const Language ta =
    Metadata_Language_ta;
  static const Language te =
    Metadata_Language_te;
  static const Language tg =
    Metadata_Language_tg;
  static const Language th =
    Metadata_Language_th;
  static const Language ti =
    Metadata_Language_ti;
  static const Language tk =
    Metadata_Language_tk;
  static const Language tl =
    Metadata_Language_tl;
  static const Language tn =
    Metadata_Language_tn;
  static const Language to =
    Metadata_Language_to;
  static const Language tr =
    Metadata_Language_tr;
  static const Language ts =
    Metadata_Language_ts;
  static const Language tt =
    Metadata_Language_tt;
  static const Language tw =
    Metadata_Language_tw;
  static const Language ty =
    Metadata_Language_ty;
  static const Language ug =
    Metadata_Language_ug;
  static const Language uk =
    Metadata_Language_uk;
  static const Language ur =
    Metadata_Language_ur;
  static const Language uz =
    Metadata_Language_uz;
  static const Language ve =
    Metadata_Language_ve;
  static const Language vi =
    Metadata_Language_vi;
  static const Language vo =
    Metadata_Language_vo;
  static const Language wa =
    Metadata_Language_wa;
  static const Language wo =
    Metadata_Language_wo;
  static const Language xh =
    Metadata_Language_xh;
  static const Language yi =
    Metadata_Language_yi;
  static const Language yo =
    Metadata_Language_yo;
  static const Language za =
    Metadata_Language_za;
  static const Language zh =
    Metadata_Language_zh;
  static const Language zu =
    Metadata_Language_zu;
  static inline bool Language_IsValid(int value) {
    return Metadata_Language_IsValid(value);
  }
  static const Language Language_MIN =
    Metadata_Language_Language_MIN;
  static const Language Language_MAX =
    Metadata_Language_Language_MAX;
  static const int Language_ARRAYSIZE =
    Metadata_Language_Language_ARRAYSIZE;
  static inline const ::google::protobuf::EnumDescriptor*
  Language_descriptor() {
    return Metadata_Language_descriptor();
  }
  static inline const ::std::string& Language_Name(Language value) {
    return Metadata_Language_Name(value);
  }
  static inline bool Language_Parse(const ::std::string& name,
      Language* value) {
    return Metadata_Language_Parse(name, value);
  }

  // accessors -------------------------------------------------------

  // required string title = 3;
  bool has_title() const;
  void clear_title();
  static const int kTitleFieldNumber = 3;
  const ::std::string& title() const;
  void set_title(const ::std::string& value);
  #if LANG_CXX11
  void set_title(::std::string&& value);
  #endif
  void set_title(const char* value);
  void set_title(const char* value, size_t size);
  ::std::string* mutable_title();
  ::std::string* release_title();
  void set_allocated_title(::std::string* title);

  // required string description = 4;
  bool has_description() const;
  void clear_description();
  static const int kDescriptionFieldNumber = 4;
  const ::std::string& description() const;
  void set_description(const ::std::string& value);
  #if LANG_CXX11
  void set_description(::std::string&& value);
  #endif
  void set_description(const char* value);
  void set_description(const char* value, size_t size);
  ::std::string* mutable_description();
  ::std::string* release_description();
  void set_allocated_description(::std::string* description);

  // required string author = 5;
  bool has_author() const;
  void clear_author();
  static const int kAuthorFieldNumber = 5;
  const ::std::string& author() const;
  void set_author(const ::std::string& value);
  #if LANG_CXX11
  void set_author(::std::string&& value);
  #endif
  void set_author(const char* value);
  void set_author(const char* value, size_t size);
  ::std::string* mutable_author();
  ::std::string* release_author();
  void set_allocated_author(::std::string* author);

  // required string license = 6;
  bool has_license() const;
  void clear_license();
  static const int kLicenseFieldNumber = 6;
  const ::std::string& license() const;
  void set_license(const ::std::string& value);
  #if LANG_CXX11
  void set_license(::std::string&& value);
  #endif
  void set_license(const char* value);
  void set_license(const char* value, size_t size);
  ::std::string* mutable_license();
  ::std::string* release_license();
  void set_allocated_license(::std::string* license);

  // optional string thumbnail = 9;
  bool has_thumbnail() const;
  void clear_thumbnail();
  static const int kThumbnailFieldNumber = 9;
  const ::std::string& thumbnail() const;
  void set_thumbnail(const ::std::string& value);
  #if LANG_CXX11
  void set_thumbnail(::std::string&& value);
  #endif
  void set_thumbnail(const char* value);
  void set_thumbnail(const char* value, size_t size);
  ::std::string* mutable_thumbnail();
  ::std::string* release_thumbnail();
  void set_allocated_thumbnail(::std::string* thumbnail);

  // optional string preview = 10;
  bool has_preview() const;
  void clear_preview();
  static const int kPreviewFieldNumber = 10;
  const ::std::string& preview() const;
  void set_preview(const ::std::string& value);
  #if LANG_CXX11
  void set_preview(::std::string&& value);
  #endif
  void set_preview(const char* value);
  void set_preview(const char* value, size_t size);
  ::std::string* mutable_preview();
  ::std::string* release_preview();
  void set_allocated_preview(::std::string* preview);

  // optional string licenseUrl = 11;
  bool has_licenseurl() const;
  void clear_licenseurl();
  static const int kLicenseUrlFieldNumber = 11;
  const ::std::string& licenseurl() const;
  void set_licenseurl(const ::std::string& value);
  #if LANG_CXX11
  void set_licenseurl(::std::string&& value);
  #endif
  void set_licenseurl(const char* value);
  void set_licenseurl(const char* value, size_t size);
  ::std::string* mutable_licenseurl();
  ::std::string* release_licenseurl();
  void set_allocated_licenseurl(::std::string* licenseurl);

  // optional .pb.Fee fee = 8;
  bool has_fee() const;
  void clear_fee();
  static const int kFeeFieldNumber = 8;
  private:
  const ::pb::Fee& _internal_fee() const;
  public:
  const ::pb::Fee& fee() const;
  ::pb::Fee* release_fee();
  ::pb::Fee* mutable_fee();
  void set_allocated_fee(::pb::Fee* fee);

  // required .pb.Metadata.Version version = 1;
  bool has_version() const;
  void clear_version();
  static const int kVersionFieldNumber = 1;
  ::pb::Metadata_Version version() const;
  void set_version(::pb::Metadata_Version value);

  // required .pb.Metadata.Language language = 2;
  bool has_language() const;
  void clear_language();
  static const int kLanguageFieldNumber = 2;
  ::pb::Metadata_Language language() const;
  void set_language(::pb::Metadata_Language value);

  // optional sint64 releaseTime = 12;
  bool has_releasetime() const;
  void clear_releasetime();
  static const int kReleaseTimeFieldNumber = 12;
  ::google::protobuf::int64 releasetime() const;
  void set_releasetime(::google::protobuf::int64 value);

  // required bool nsfw = 7;
  bool has_nsfw() const;
  void clear_nsfw();
  static const int kNsfwFieldNumber = 7;
  bool nsfw() const;
  void set_nsfw(bool value);

  // @@protoc_insertion_point(class_scope:pb.Metadata)
 private:
  void set_has_version();
  void clear_has_version();
  void set_has_language();
  void clear_has_language();
  void set_has_title();
  void clear_has_title();
  void set_has_description();
  void clear_has_description();
  void set_has_author();
  void clear_has_author();
  void set_has_license();
  void clear_has_license();
  void set_has_nsfw();
  void clear_has_nsfw();
  void set_has_fee();
  void clear_has_fee();
  void set_has_thumbnail();
  void clear_has_thumbnail();
  void set_has_preview();
  void clear_has_preview();
  void set_has_licenseurl();
  void clear_has_licenseurl();
  void set_has_releasetime();
  void clear_has_releasetime();

  // helper for ByteSizeLong()
  size_t RequiredFieldsByteSizeFallback() const;

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::internal::HasBits<1> _has_bits_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  ::google::protobuf::internal::ArenaStringPtr title_;
  ::google::protobuf::internal::ArenaStringPtr description_;
  ::google::protobuf::internal::ArenaStringPtr author_;
  ::google::protobuf::internal::ArenaStringPtr license_;
  ::google::protobuf::internal::ArenaStringPtr thumbnail_;
  ::google::protobuf::internal::ArenaStringPtr preview_;
  ::google::protobuf::internal::ArenaStringPtr licenseurl_;
  ::pb::Fee* fee_;
  int version_;
  int language_;
  ::google::protobuf::int64 releasetime_;
  bool nsfw_;
  friend struct ::protobuf_metadata_2eproto::TableStruct;
};
// ===================================================================


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

#ifdef __GNUC__
  #pragma GCC diagnostic push
  #pragma GCC diagnostic ignored "-Wstrict-aliasing"
#endif  // __GNUC__
// Metadata

// required .pb.Metadata.Version version = 1;
inline bool Metadata::has_version() const {
  return (_has_bits_[0] & 0x00000100u) != 0;
}
inline void Metadata::set_has_version() {
  _has_bits_[0] |= 0x00000100u;
}
inline void Metadata::clear_has_version() {
  _has_bits_[0] &= ~0x00000100u;
}
inline void Metadata::clear_version() {
  version_ = 0;
  clear_has_version();
}
inline ::pb::Metadata_Version Metadata::version() const {
  // @@protoc_insertion_point(field_get:pb.Metadata.version)
  return static_cast< ::pb::Metadata_Version >(version_);
}
inline void Metadata::set_version(::pb::Metadata_Version value) {
  assert(::pb::Metadata_Version_IsValid(value));
  set_has_version();
  version_ = value;
  // @@protoc_insertion_point(field_set:pb.Metadata.version)
}

// required .pb.Metadata.Language language = 2;
inline bool Metadata::has_language() const {
  return (_has_bits_[0] & 0x00000200u) != 0;
}
inline void Metadata::set_has_language() {
  _has_bits_[0] |= 0x00000200u;
}
inline void Metadata::clear_has_language() {
  _has_bits_[0] &= ~0x00000200u;
}
inline void Metadata::clear_language() {
  language_ = 0;
  clear_has_language();
}
inline ::pb::Metadata_Language Metadata::language() const {
  // @@protoc_insertion_point(field_get:pb.Metadata.language)
  return static_cast< ::pb::Metadata_Language >(language_);
}
inline void Metadata::set_language(::pb::Metadata_Language value) {
  assert(::pb::Metadata_Language_IsValid(value));
  set_has_language();
  language_ = value;
  // @@protoc_insertion_point(field_set:pb.Metadata.language)
}

// required string title = 3;
inline bool Metadata::has_title() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void Metadata::set_has_title() {
  _has_bits_[0] |= 0x00000001u;
}
inline void Metadata::clear_has_title() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void Metadata::clear_title() {
  title_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_title();
}
inline const ::std::string& Metadata::title() const {
  // @@protoc_insertion_point(field_get:pb.Metadata.title)
  return title_.GetNoArena();
}
inline void Metadata::set_title(const ::std::string& value) {
  set_has_title();
  title_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:pb.Metadata.title)
}
#if LANG_CXX11
inline void Metadata::set_title(::std::string&& value) {
  set_has_title();
  title_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:pb.Metadata.title)
}
#endif
inline void Metadata::set_title(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_title();
  title_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:pb.Metadata.title)
}
inline void Metadata::set_title(const char* value, size_t size) {
  set_has_title();
  title_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:pb.Metadata.title)
}
inline ::std::string* Metadata::mutable_title() {
  set_has_title();
  // @@protoc_insertion_point(field_mutable:pb.Metadata.title)
  return title_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* Metadata::release_title() {
  // @@protoc_insertion_point(field_release:pb.Metadata.title)
  if (!has_title()) {
    return NULL;
  }
  clear_has_title();
  return title_.ReleaseNonDefaultNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void Metadata::set_allocated_title(::std::string* title) {
  if (title != NULL) {
    set_has_title();
  } else {
    clear_has_title();
  }
  title_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), title);
  // @@protoc_insertion_point(field_set_allocated:pb.Metadata.title)
}

// required string description = 4;
inline bool Metadata::has_description() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void Metadata::set_has_description() {
  _has_bits_[0] |= 0x00000002u;
}
inline void Metadata::clear_has_description() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void Metadata::clear_description() {
  description_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_description();
}
inline const ::std::string& Metadata::description() const {
  // @@protoc_insertion_point(field_get:pb.Metadata.description)
  return description_.GetNoArena();
}
inline void Metadata::set_description(const ::std::string& value) {
  set_has_description();
  description_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:pb.Metadata.description)
}
#if LANG_CXX11
inline void Metadata::set_description(::std::string&& value) {
  set_has_description();
  description_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:pb.Metadata.description)
}
#endif
inline void Metadata::set_description(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_description();
  description_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:pb.Metadata.description)
}
inline void Metadata::set_description(const char* value, size_t size) {
  set_has_description();
  description_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:pb.Metadata.description)
}
inline ::std::string* Metadata::mutable_description() {
  set_has_description();
  // @@protoc_insertion_point(field_mutable:pb.Metadata.description)
  return description_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* Metadata::release_description() {
  // @@protoc_insertion_point(field_release:pb.Metadata.description)
  if (!has_description()) {
    return NULL;
  }
  clear_has_description();
  return description_.ReleaseNonDefaultNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void Metadata::set_allocated_description(::std::string* description) {
  if (description != NULL) {
    set_has_description();
  } else {
    clear_has_description();
  }
  description_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), description);
  // @@protoc_insertion_point(field_set_allocated:pb.Metadata.description)
}

// required string author = 5;
inline bool Metadata::has_author() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void Metadata::set_has_author() {
  _has_bits_[0] |= 0x00000004u;
}
inline void Metadata::clear_has_author() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void Metadata::clear_author() {
  author_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_author();
}
inline const ::std::string& Metadata::author() const {
  // @@protoc_insertion_point(field_get:pb.Metadata.author)
  return author_.GetNoArena();
}
inline void Metadata::set_author(const ::std::string& value) {
  set_has_author();
  author_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:pb.Metadata.author)
}
#if LANG_CXX11
inline void Metadata::set_author(::std::string&& value) {
  set_has_author();
  author_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:pb.Metadata.author)
}
#endif
inline void Metadata::set_author(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_author();
  author_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:pb.Metadata.author)
}
inline void Metadata::set_author(const char* value, size_t size) {
  set_has_author();
  author_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:pb.Metadata.author)
}
inline ::std::string* Metadata::mutable_author() {
  set_has_author();
  // @@protoc_insertion_point(field_mutable:pb.Metadata.author)
  return author_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* Metadata::release_author() {
  // @@protoc_insertion_point(field_release:pb.Metadata.author)
  if (!has_author()) {
    return NULL;
  }
  clear_has_author();
  return author_.ReleaseNonDefaultNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void Metadata::set_allocated_author(::std::string* author) {
  if (author != NULL) {
    set_has_author();
  } else {
    clear_has_author();
  }
  author_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), author);
  // @@protoc_insertion_point(field_set_allocated:pb.Metadata.author)
}

// required string license = 6;
inline bool Metadata::has_license() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void Metadata::set_has_license() {
  _has_bits_[0] |= 0x00000008u;
}
inline void Metadata::clear_has_license() {
  _has_bits_[0] &= ~0x00000008u;
}
inline void Metadata::clear_license() {
  license_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_license();
}
inline const ::std::string& Metadata::license() const {
  // @@protoc_insertion_point(field_get:pb.Metadata.license)
  return license_.GetNoArena();
}
inline void Metadata::set_license(const ::std::string& value) {
  set_has_license();
  license_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:pb.Metadata.license)
}
#if LANG_CXX11
inline void Metadata::set_license(::std::string&& value) {
  set_has_license();
  license_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:pb.Metadata.license)
}
#endif
inline void Metadata::set_license(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_license();
  license_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:pb.Metadata.license)
}
inline void Metadata::set_license(const char* value, size_t size) {
  set_has_license();
  license_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:pb.Metadata.license)
}
inline ::std::string* Metadata::mutable_license() {
  set_has_license();
  // @@protoc_insertion_point(field_mutable:pb.Metadata.license)
  return license_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* Metadata::release_license() {
  // @@protoc_insertion_point(field_release:pb.Metadata.license)
  if (!has_license()) {
    return NULL;
  }
  clear_has_license();
  return license_.ReleaseNonDefaultNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void Metadata::set_allocated_license(::std::string* license) {
  if (license != NULL) {
    set_has_license();
  } else {
    clear_has_license();
  }
  license_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), license);
  // @@protoc_insertion_point(field_set_allocated:pb.Metadata.license)
}

// required bool nsfw = 7;
inline bool Metadata::has_nsfw() const {
  return (_has_bits_[0] & 0x00000800u) != 0;
}
inline void Metadata::set_has_nsfw() {
  _has_bits_[0] |= 0x00000800u;
}
inline void Metadata::clear_has_nsfw() {
  _has_bits_[0] &= ~0x00000800u;
}
inline void Metadata::clear_nsfw() {
  nsfw_ = false;
  clear_has_nsfw();
}
inline bool Metadata::nsfw() const {
  // @@protoc_insertion_point(field_get:pb.Metadata.nsfw)
  return nsfw_;
}
inline void Metadata::set_nsfw(bool value) {
  set_has_nsfw();
  nsfw_ = value;
  // @@protoc_insertion_point(field_set:pb.Metadata.nsfw)
}

// optional .pb.Fee fee = 8;
inline bool Metadata::has_fee() const {
  return (_has_bits_[0] & 0x00000080u) != 0;
}
inline void Metadata::set_has_fee() {
  _has_bits_[0] |= 0x00000080u;
}
inline void Metadata::clear_has_fee() {
  _has_bits_[0] &= ~0x00000080u;
}
inline const ::pb::Fee& Metadata::_internal_fee() const {
  return *fee_;
}
inline const ::pb::Fee& Metadata::fee() const {
  const ::pb::Fee* p = fee_;
  // @@protoc_insertion_point(field_get:pb.Metadata.fee)
  return p != NULL ? *p : *reinterpret_cast<const ::pb::Fee*>(
      &::pb::_Fee_default_instance_);
}
inline ::pb::Fee* Metadata::release_fee() {
  // @@protoc_insertion_point(field_release:pb.Metadata.fee)
  clear_has_fee();
  ::pb::Fee* temp = fee_;
  fee_ = NULL;
  return temp;
}
inline ::pb::Fee* Metadata::mutable_fee() {
  set_has_fee();
  if (fee_ == NULL) {
    auto* p = CreateMaybeMessage<::pb::Fee>(GetArenaNoVirtual());
    fee_ = p;
  }
  // @@protoc_insertion_point(field_mutable:pb.Metadata.fee)
  return fee_;
}
inline void Metadata::set_allocated_fee(::pb::Fee* fee) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete reinterpret_cast< ::google::protobuf::MessageLite*>(fee_);
  }
  if (fee) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      fee = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, fee, submessage_arena);
    }
    set_has_fee();
  } else {
    clear_has_fee();
  }
  fee_ = fee;
  // @@protoc_insertion_point(field_set_allocated:pb.Metadata.fee)
}

// optional string thumbnail = 9;
inline bool Metadata::has_thumbnail() const {
  return (_has_bits_[0] & 0x00000010u) != 0;
}
inline void Metadata::set_has_thumbnail() {
  _has_bits_[0] |= 0x00000010u;
}
inline void Metadata::clear_has_thumbnail() {
  _has_bits_[0] &= ~0x00000010u;
}
inline void Metadata::clear_thumbnail() {
  thumbnail_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_thumbnail();
}
inline const ::std::string& Metadata::thumbnail() const {
  // @@protoc_insertion_point(field_get:pb.Metadata.thumbnail)
  return thumbnail_.GetNoArena();
}
inline void Metadata::set_thumbnail(const ::std::string& value) {
  set_has_thumbnail();
  thumbnail_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:pb.Metadata.thumbnail)
}
#if LANG_CXX11
inline void Metadata::set_thumbnail(::std::string&& value) {
  set_has_thumbnail();
  thumbnail_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:pb.Metadata.thumbnail)
}
#endif
inline void Metadata::set_thumbnail(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_thumbnail();
  thumbnail_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:pb.Metadata.thumbnail)
}
inline void Metadata::set_thumbnail(const char* value, size_t size) {
  set_has_thumbnail();
  thumbnail_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:pb.Metadata.thumbnail)
}
inline ::std::string* Metadata::mutable_thumbnail() {
  set_has_thumbnail();
  // @@protoc_insertion_point(field_mutable:pb.Metadata.thumbnail)
  return thumbnail_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* Metadata::release_thumbnail() {
  // @@protoc_insertion_point(field_release:pb.Metadata.thumbnail)
  if (!has_thumbnail()) {
    return NULL;
  }
  clear_has_thumbnail();
  return thumbnail_.ReleaseNonDefaultNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void Metadata::set_allocated_thumbnail(::std::string* thumbnail) {
  if (thumbnail != NULL) {
    set_has_thumbnail();
  } else {
    clear_has_thumbnail();
  }
  thumbnail_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), thumbnail);
  // @@protoc_insertion_point(field_set_allocated:pb.Metadata.thumbnail)
}

// optional string preview = 10;
inline bool Metadata::has_preview() const {
  return (_has_bits_[0] & 0x00000020u) != 0;
}
inline void Metadata::set_has_preview() {
  _has_bits_[0] |= 0x00000020u;
}
inline void Metadata::clear_has_preview() {
  _has_bits_[0] &= ~0x00000020u;
}
inline void Metadata::clear_preview() {
  preview_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_preview();
}
inline const ::std::string& Metadata::preview() const {
  // @@protoc_insertion_point(field_get:pb.Metadata.preview)
  return preview_.GetNoArena();
}
inline void Metadata::set_preview(const ::std::string& value) {
  set_has_preview();
  preview_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:pb.Metadata.preview)
}
#if LANG_CXX11
inline void Metadata::set_preview(::std::string&& value) {
  set_has_preview();
  preview_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:pb.Metadata.preview)
}
#endif
inline void Metadata::set_preview(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_preview();
  preview_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:pb.Metadata.preview)
}
inline void Metadata::set_preview(const char* value, size_t size) {
  set_has_preview();
  preview_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:pb.Metadata.preview)
}
inline ::std::string* Metadata::mutable_preview() {
  set_has_preview();
  // @@protoc_insertion_point(field_mutable:pb.Metadata.preview)
  return preview_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* Metadata::release_preview() {
  // @@protoc_insertion_point(field_release:pb.Metadata.preview)
  if (!has_preview()) {
    return NULL;
  }
  clear_has_preview();
  return preview_.ReleaseNonDefaultNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void Metadata::set_allocated_preview(::std::string* preview) {
  if (preview != NULL) {
    set_has_preview();
  } else {
    clear_has_preview();
  }
  preview_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), preview);
  // @@protoc_insertion_point(field_set_allocated:pb.Metadata.preview)
}

// optional string licenseUrl = 11;
inline bool Metadata::has_licenseurl() const {
  return (_has_bits_[0] & 0x00000040u) != 0;
}
inline void Metadata::set_has_licenseurl() {
  _has_bits_[0] |= 0x00000040u;
}
inline void Metadata::clear_has_licenseurl() {
  _has_bits_[0] &= ~0x00000040u;
}
inline void Metadata::clear_licenseurl() {
  licenseurl_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_licenseurl();
}
inline const ::std::string& Metadata::licenseurl() const {
  // @@protoc_insertion_point(field_get:pb.Metadata.licenseUrl)
  return licenseurl_.GetNoArena();
}
inline void Metadata::set_licenseurl(const ::std::string& value) {
  set_has_licenseurl();
  licenseurl_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:pb.Metadata.licenseUrl)
}
#if LANG_CXX11
inline void Metadata::set_licenseurl(::std::string&& value) {
  set_has_licenseurl();
  licenseurl_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:pb.Metadata.licenseUrl)
}
#endif
inline void Metadata::set_licenseurl(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_licenseurl();
  licenseurl_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:pb.Metadata.licenseUrl)
}
inline void Metadata::set_licenseurl(const char* value, size_t size) {
  set_has_licenseurl();
  licenseurl_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:pb.Metadata.licenseUrl)
}
inline ::std::string* Metadata::mutable_licenseurl() {
  set_has_licenseurl();
  // @@protoc_insertion_point(field_mutable:pb.Metadata.licenseUrl)
  return licenseurl_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* Metadata::release_licenseurl() {
  // @@protoc_insertion_point(field_release:pb.Metadata.licenseUrl)
  if (!has_licenseurl()) {
    return NULL;
  }
  clear_has_licenseurl();
  return licenseurl_.ReleaseNonDefaultNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void Metadata::set_allocated_licenseurl(::std::string* licenseurl) {
  if (licenseurl != NULL) {
    set_has_licenseurl();
  } else {
    clear_has_licenseurl();
  }
  licenseurl_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), licenseurl);
  // @@protoc_insertion_point(field_set_allocated:pb.Metadata.licenseUrl)
}

// optional sint64 releaseTime = 12;
inline bool Metadata::has_releasetime() const {
  return (_has_bits_[0] & 0x00000400u) != 0;
}
inline void Metadata::set_has_releasetime() {
  _has_bits_[0] |= 0x00000400u;
}
inline void Metadata::clear_has_releasetime() {
  _has_bits_[0] &= ~0x00000400u;
}
inline void Metadata::clear_releasetime() {
  releasetime_ = GOOGLE_LONGLONG(0);
  clear_has_releasetime();
}
inline ::google::protobuf::int64 Metadata::releasetime() const {
  // @@protoc_insertion_point(field_get:pb.Metadata.releaseTime)
  return releasetime_;
}
inline void Metadata::set_releasetime(::google::protobuf::int64 value) {
  set_has_releasetime();
  releasetime_ = value;
  // @@protoc_insertion_point(field_set:pb.Metadata.releaseTime)
}

#ifdef __GNUC__
  #pragma GCC diagnostic pop
#endif  // __GNUC__

// @@protoc_insertion_point(namespace_scope)

}  // namespace pb

namespace google {
namespace protobuf {

template <> struct is_proto_enum< ::pb::Metadata_Version> : ::std::true_type {};
template <>
inline const EnumDescriptor* GetEnumDescriptor< ::pb::Metadata_Version>() {
  return ::pb::Metadata_Version_descriptor();
}
template <> struct is_proto_enum< ::pb::Metadata_Language> : ::std::true_type {};
template <>
inline const EnumDescriptor* GetEnumDescriptor< ::pb::Metadata_Language>() {
  return ::pb::Metadata_Language_descriptor();
}

}  // namespace protobuf
}  // namespace google

// @@protoc_insertion_point(global_scope)

#endif  // PROTOBUF_INCLUDED_metadata_2eproto