text: // Generated by the protocol buffer compiler.  DO NOT EDIT!
  // source: head_version.proto
  
  #ifndef PROTOBUF_INCLUDED_head_5fversion_2eproto
  #define PROTOBUF_INCLUDED_head_5fversion_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/unknown_field_set.h>
  // @@protoc_insertion_point(includes)
  #define PROTOBUF_INTERNAL_EXPORT_protobuf_head_5fversion_2eproto 
  
  namespace protobuf_head_5fversion_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[3];
    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_head_5fversion_2eproto
  namespace ustore {
  class BranchVersion;
  class BranchVersionDefaultTypeInternal;
  extern BranchVersionDefaultTypeInternal _BranchVersion_default_instance_;
  class KeyVersion;
  class KeyVersionDefaultTypeInternal;
  extern KeyVersionDefaultTypeInternal _KeyVersion_default_instance_;
  class KeyVersions;
  class KeyVersionsDefaultTypeInternal;
  extern KeyVersionsDefaultTypeInternal _KeyVersions_default_instance_;
  }  // namespace ustore
  namespace google {
  namespace protobuf {
  template<> ::ustore::BranchVersion* Arena::CreateMaybeMessage<::ustore::BranchVersion>(Arena*);
  template<> ::ustore::KeyVersion* Arena::CreateMaybeMessage<::ustore::KeyVersion>(Arena*);
  template<> ::ustore::KeyVersions* Arena::CreateMaybeMessage<::ustore::KeyVersions>(Arena*);
  }  // namespace protobuf
  }  // namespace google
  namespace ustore {
  
  // ===================================================================
  
  class BranchVersion : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:ustore.BranchVersion) */ {
   public:
    BranchVersion();
    virtual ~BranchVersion();
  
    BranchVersion(const BranchVersion& from);
  
    inline BranchVersion& operator=(const BranchVersion& from) {
      CopyFrom(from);
      return *this;
    }
    #if LANG_CXX11
    BranchVersion(BranchVersion&& from) noexcept
      : BranchVersion() {
      *this = ::std::move(from);
    }
  
    inline BranchVersion& operator=(BranchVersion&& 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 BranchVersion& default_instance();
  
    static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
    static inline const BranchVersion* internal_default_instance() {
      return reinterpret_cast<const BranchVersion*>(
                 &_BranchVersion_default_instance_);
    }
    static constexpr int kIndexInFileMessages =
      0;
  
    void Swap(BranchVersion* other);
    friend void swap(BranchVersion& a, BranchVersion& b) {
      a.Swap(&b);
    }
  
    // implements Message ----------------------------------------------
  
    inline BranchVersion* New() const final {
      return CreateMaybeMessage<BranchVersion>(NULL);
    }
  
    BranchVersion* New(::google::protobuf::Arena* arena) const final {
      return CreateMaybeMessage<BranchVersion>(arena);
    }
    void CopyFrom(const ::google::protobuf::Message& from) final;
    void MergeFrom(const ::google::protobuf::Message& from) final;
    void CopyFrom(const BranchVersion& from);
    void MergeFrom(const BranchVersion& 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(BranchVersion* 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 ----------------------------------------------------
  
    // accessors -------------------------------------------------------
  
    // required bytes branch = 1;
    bool has_branch() const;
    void clear_branch();
    static const int kBranchFieldNumber = 1;
    const ::std::string& branch() const;
    void set_branch(const ::std::string& value);
    #if LANG_CXX11
    void set_branch(::std::string&& value);
    #endif
    void set_branch(const char* value);
    void set_branch(const void* value, size_t size);
    ::std::string* mutable_branch();
    ::std::string* release_branch();
    void set_allocated_branch(::std::string* branch);
  
    // required bytes version = 2;
    bool has_version() const;
    void clear_version();
    static const int kVersionFieldNumber = 2;
    const ::std::string& version() const;
    void set_version(const ::std::string& value);
    #if LANG_CXX11
    void set_version(::std::string&& value);
    #endif
    void set_version(const char* value);
    void set_version(const void* value, size_t size);
    ::std::string* mutable_version();
    ::std::string* release_version();
    void set_allocated_version(::std::string* version);
  
    // @@protoc_insertion_point(class_scope:ustore.BranchVersion)
   private:
    void set_has_branch();
    void clear_has_branch();
    void set_has_version();
    void clear_has_version();
  
    // 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 branch_;
    ::google::protobuf::internal::ArenaStringPtr version_;
    friend struct ::protobuf_head_5fversion_2eproto::TableStruct;
  };
  // -------------------------------------------------------------------
  
  class KeyVersion : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:ustore.KeyVersion) */ {
   public:
    KeyVersion();
    virtual ~KeyVersion();
  
    KeyVersion(const KeyVersion& from);
  
    inline KeyVersion& operator=(const KeyVersion& from) {
      CopyFrom(from);
      return *this;
    }
    #if LANG_CXX11
    KeyVersion(KeyVersion&& from) noexcept
      : KeyVersion() {
      *this = ::std::move(from);
    }
  
    inline KeyVersion& operator=(KeyVersion&& 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 KeyVersion& default_instance();
  
    static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
    static inline const KeyVersion* internal_default_instance() {
      return reinterpret_cast<const KeyVersion*>(
                 &_KeyVersion_default_instance_);
    }
    static constexpr int kIndexInFileMessages =
      1;
  
    void Swap(KeyVersion* other);
    friend void swap(KeyVersion& a, KeyVersion& b) {
      a.Swap(&b);
    }
  
    // implements Message ----------------------------------------------
  
    inline KeyVersion* New() const final {
      return CreateMaybeMessage<KeyVersion>(NULL);
    }
  
    KeyVersion* New(::google::protobuf::Arena* arena) const final {
      return CreateMaybeMessage<KeyVersion>(arena);
    }
    void CopyFrom(const ::google::protobuf::Message& from) final;
    void MergeFrom(const ::google::protobuf::Message& from) final;
    void CopyFrom(const KeyVersion& from);
    void MergeFrom(const KeyVersion& 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(KeyVersion* 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 ----------------------------------------------------
  
    // accessors -------------------------------------------------------
  
    // repeated .ustore.BranchVersion branches = 2;
    int branches_size() const;
    void clear_branches();
    static const int kBranchesFieldNumber = 2;
    ::ustore::BranchVersion* mutable_branches(int index);
    ::google::protobuf::RepeatedPtrField< ::ustore::BranchVersion >*
        mutable_branches();
    const ::ustore::BranchVersion& branches(int index) const;
    ::ustore::BranchVersion* add_branches();
    const ::google::protobuf::RepeatedPtrField< ::ustore::BranchVersion >&
        branches() const;
  
    // required bytes key = 1;
    bool has_key() const;
    void clear_key();
    static const int kKeyFieldNumber = 1;
    const ::std::string& key() const;
    void set_key(const ::std::string& value);
    #if LANG_CXX11
    void set_key(::std::string&& value);
    #endif
    void set_key(const char* value);
    void set_key(const void* value, size_t size);
    ::std::string* mutable_key();
    ::std::string* release_key();
    void set_allocated_key(::std::string* key);
  
    // @@protoc_insertion_point(class_scope:ustore.KeyVersion)
   private:
    void set_has_key();
    void clear_has_key();
  
    ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    mutable ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::RepeatedPtrField< ::ustore::BranchVersion > branches_;
    ::google::protobuf::internal::ArenaStringPtr key_;
    friend struct ::protobuf_head_5fversion_2eproto::TableStruct;
  };
  // -------------------------------------------------------------------
  
  class KeyVersions : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:ustore.KeyVersions) */ {
   public:
    KeyVersions();
    virtual ~KeyVersions();
  
    KeyVersions(const KeyVersions& from);
  
    inline KeyVersions& operator=(const KeyVersions& from) {
      CopyFrom(from);
      return *this;
    }
    #if LANG_CXX11
    KeyVersions(KeyVersions&& from) noexcept
      : KeyVersions() {
      *this = ::std::move(from);
    }
  
    inline KeyVersions& operator=(KeyVersions&& 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 KeyVersions& default_instance();
  
    static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
    static inline const KeyVersions* internal_default_instance() {
      return reinterpret_cast<const KeyVersions*>(
                 &_KeyVersions_default_instance_);
    }
    static constexpr int kIndexInFileMessages =
      2;
  
    void Swap(KeyVersions* other);
    friend void swap(KeyVersions& a, KeyVersions& b) {
      a.Swap(&b);
    }
  
    // implements Message ----------------------------------------------
  
    inline KeyVersions* New() const final {
      return CreateMaybeMessage<KeyVersions>(NULL);
    }
  
    KeyVersions* New(::google::protobuf::Arena* arena) const final {
      return CreateMaybeMessage<KeyVersions>(arena);
    }
    void CopyFrom(const ::google::protobuf::Message& from) final;
    void MergeFrom(const ::google::protobuf::Message& from) final;
    void CopyFrom(const KeyVersions& from);
    void MergeFrom(const KeyVersions& 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(KeyVersions* 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 ----------------------------------------------------
  
    // accessors -------------------------------------------------------
  
    // repeated .ustore.KeyVersion key_versions = 1;
    int key_versions_size() const;
    void clear_key_versions();
    static const int kKeyVersionsFieldNumber = 1;
    ::ustore::KeyVersion* mutable_key_versions(int index);
    ::google::protobuf::RepeatedPtrField< ::ustore::KeyVersion >*
        mutable_key_versions();
    const ::ustore::KeyVersion& key_versions(int index) const;
    ::ustore::KeyVersion* add_key_versions();
    const ::google::protobuf::RepeatedPtrField< ::ustore::KeyVersion >&
        key_versions() const;
  
    // @@protoc_insertion_point(class_scope:ustore.KeyVersions)
   private:
  
    ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    mutable ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::RepeatedPtrField< ::ustore::KeyVersion > key_versions_;
    friend struct ::protobuf_head_5fversion_2eproto::TableStruct;
  };
  // ===================================================================
  
  
  // ===================================================================
  
  #ifdef __GNUC__
    #pragma GCC diagnostic push
    #pragma GCC diagnostic ignored "-Wstrict-aliasing"
  #endif  // __GNUC__
  // BranchVersion
  
  // required bytes branch = 1;
  inline bool BranchVersion::has_branch() const {
    return (_has_bits_[0] & 0x00000001u) != 0;
  }
  inline void BranchVersion::set_has_branch() {
    _has_bits_[0] |= 0x00000001u;
  }
  inline void BranchVersion::clear_has_branch() {
    _has_bits_[0] &= ~0x00000001u;
  }
  inline void BranchVersion::clear_branch() {
    branch_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    clear_has_branch();
  }
  inline const ::std::string& BranchVersion::branch() const {
    // @@protoc_insertion_point(field_get:ustore.BranchVersion.branch)
    return branch_.GetNoArena();
  }
  inline void BranchVersion::set_branch(const ::std::string& value) {
    set_has_branch();
    branch_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
    // @@protoc_insertion_point(field_set:ustore.BranchVersion.branch)
  }
  #if LANG_CXX11
  inline void BranchVersion::set_branch(::std::string&& value) {
    set_has_branch();
    branch_.SetNoArena(
      &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
    // @@protoc_insertion_point(field_set_rvalue:ustore.BranchVersion.branch)
  }
  #endif
  inline void BranchVersion::set_branch(const char* value) {
    GOOGLE_DCHECK(value != NULL);
    set_has_branch();
    branch_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
    // @@protoc_insertion_point(field_set_char:ustore.BranchVersion.branch)
  }
  inline void BranchVersion::set_branch(const void* value, size_t size) {
    set_has_branch();
    branch_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
        ::std::string(reinterpret_cast<const char*>(value), size));
    // @@protoc_insertion_point(field_set_pointer:ustore.BranchVersion.branch)
  }
  inline ::std::string* BranchVersion::mutable_branch() {
    set_has_branch();
    // @@protoc_insertion_point(field_mutable:ustore.BranchVersion.branch)
    return branch_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  inline ::std::string* BranchVersion::release_branch() {
    // @@protoc_insertion_point(field_release:ustore.BranchVersion.branch)
    if (!has_branch()) {
      return NULL;
    }
    clear_has_branch();
    return branch_.ReleaseNonDefaultNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  inline void BranchVersion::set_allocated_branch(::std::string* branch) {
    if (branch != NULL) {
      set_has_branch();
    } else {
      clear_has_branch();
    }
    branch_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), branch);
    // @@protoc_insertion_point(field_set_allocated:ustore.BranchVersion.branch)
  }
  
  // required bytes version = 2;
  inline bool BranchVersion::has_version() const {
    return (_has_bits_[0] & 0x00000002u) != 0;
  }
  inline void BranchVersion::set_has_version() {
    _has_bits_[0] |= 0x00000002u;
  }
  inline void BranchVersion::clear_has_version() {
    _has_bits_[0] &= ~0x00000002u;
  }
  inline void BranchVersion::clear_version() {
    version_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    clear_has_version();
  }
  inline const ::std::string& BranchVersion::version() const {
    // @@protoc_insertion_point(field_get:ustore.BranchVersion.version)
    return version_.GetNoArena();
  }
  inline void BranchVersion::set_version(const ::std::string& value) {
    set_has_version();
    version_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
    // @@protoc_insertion_point(field_set:ustore.BranchVersion.version)
  }
  #if LANG_CXX11
  inline void BranchVersion::set_version(::std::string&& value) {
    set_has_version();
    version_.SetNoArena(
      &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
    // @@protoc_insertion_point(field_set_rvalue:ustore.BranchVersion.version)
  }
  #endif
  inline void BranchVersion::set_version(const char* value) {
    GOOGLE_DCHECK(value != NULL);
    set_has_version();
    version_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
    // @@protoc_insertion_point(field_set_char:ustore.BranchVersion.version)
  }
  inline void BranchVersion::set_version(const void* value, size_t size) {
    set_has_version();
    version_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
        ::std::string(reinterpret_cast<const char*>(value), size));
    // @@protoc_insertion_point(field_set_pointer:ustore.BranchVersion.version)
  }
  inline ::std::string* BranchVersion::mutable_version() {
    set_has_version();
    // @@protoc_insertion_point(field_mutable:ustore.BranchVersion.version)
    return version_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  inline ::std::string* BranchVersion::release_version() {
    // @@protoc_insertion_point(field_release:ustore.BranchVersion.version)
    if (!has_version()) {
      return NULL;
    }
    clear_has_version();
    return version_.ReleaseNonDefaultNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  inline void BranchVersion::set_allocated_version(::std::string* version) {
    if (version != NULL) {
      set_has_version();
    } else {
      clear_has_version();
    }
    version_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), version);
    // @@protoc_insertion_point(field_set_allocated:ustore.BranchVersion.version)
  }
  
  // -------------------------------------------------------------------
  
  // KeyVersion
  
  // required bytes key = 1;
  inline bool KeyVersion::has_key() const {
    return (_has_bits_[0] & 0x00000001u) != 0;
  }
  inline void KeyVersion::set_has_key() {
    _has_bits_[0] |= 0x00000001u;
  }
  inline void KeyVersion::clear_has_key() {
    _has_bits_[0] &= ~0x00000001u;
  }
  inline void KeyVersion::clear_key() {
    key_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    clear_has_key();
  }
  inline const ::std::string& KeyVersion::key() const {
    // @@protoc_insertion_point(field_get:ustore.KeyVersion.key)
    return key_.GetNoArena();
  }
  inline void KeyVersion::set_key(const ::std::string& value) {
    set_has_key();
    key_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
    // @@protoc_insertion_point(field_set:ustore.KeyVersion.key)
  }
  #if LANG_CXX11
  inline void KeyVersion::set_key(::std::string&& value) {
    set_has_key();
    key_.SetNoArena(
      &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
    // @@protoc_insertion_point(field_set_rvalue:ustore.KeyVersion.key)
  }
  #endif
  inline void KeyVersion::set_key(const char* value) {
    GOOGLE_DCHECK(value != NULL);
    set_has_key();
    key_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
    // @@protoc_insertion_point(field_set_char:ustore.KeyVersion.key)
  }
  inline void KeyVersion::set_key(const void* value, size_t size) {
    set_has_key();
    key_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
        ::std::string(reinterpret_cast<const char*>(value), size));
    // @@protoc_insertion_point(field_set_pointer:ustore.KeyVersion.key)
  }
  inline ::std::string* KeyVersion::mutable_key() {
    set_has_key();
    // @@protoc_insertion_point(field_mutable:ustore.KeyVersion.key)
    return key_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  inline ::std::string* KeyVersion::release_key() {
    // @@protoc_insertion_point(field_release:ustore.KeyVersion.key)
    if (!has_key()) {
      return NULL;
    }
    clear_has_key();
    return key_.ReleaseNonDefaultNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  inline void KeyVersion::set_allocated_key(::std::string* key) {
    if (key != NULL) {
      set_has_key();
    } else {
      clear_has_key();
    }
    key_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), key);
    // @@protoc_insertion_point(field_set_allocated:ustore.KeyVersion.key)
  }
  
  // repeated .ustore.BranchVersion branches = 2;
  inline int KeyVersion::branches_size() const {
    return branches_.size();
  }
  inline void KeyVersion::clear_branches() {
    branches_.Clear();
  }
  inline ::ustore::BranchVersion* KeyVersion::mutable_branches(int index) {
    // @@protoc_insertion_point(field_mutable:ustore.KeyVersion.branches)
    return branches_.Mutable(index);
  }
  inline ::google::protobuf::RepeatedPtrField< ::ustore::BranchVersion >*
  KeyVersion::mutable_branches() {
    // @@protoc_insertion_point(field_mutable_list:ustore.KeyVersion.branches)
    return &branches_;
  }
  inline const ::ustore::BranchVersion& KeyVersion::branches(int index) const {
    // @@protoc_insertion_point(field_get:ustore.KeyVersion.branches)
    return branches_.Get(index);
  }
  inline ::ustore::BranchVersion* KeyVersion::add_branches() {
    // @@protoc_insertion_point(field_add:ustore.KeyVersion.branches)
    return branches_.Add();
  }
  inline const ::google::protobuf::RepeatedPtrField< ::ustore::BranchVersion >&
  KeyVersion::branches() const {
    // @@protoc_insertion_point(field_list:ustore.KeyVersion.branches)
    return branches_;
  }
  
  // -------------------------------------------------------------------
  
  // KeyVersions
  
  // repeated .ustore.KeyVersion key_versions = 1;
  inline int KeyVersions::key_versions_size() const {
    return key_versions_.size();
  }
  inline void KeyVersions::clear_key_versions() {
    key_versions_.Clear();
  }
  inline ::ustore::KeyVersion* KeyVersions::mutable_key_versions(int index) {
    // @@protoc_insertion_point(field_mutable:ustore.KeyVersions.key_versions)
    return key_versions_.Mutable(index);
  }
  inline ::google::protobuf::RepeatedPtrField< ::ustore::KeyVersion >*
  KeyVersions::mutable_key_versions() {
    // @@protoc_insertion_point(field_mutable_list:ustore.KeyVersions.key_versions)
    return &key_versions_;
  }
  inline const ::ustore::KeyVersion& KeyVersions::key_versions(int index) const {
    // @@protoc_insertion_point(field_get:ustore.KeyVersions.key_versions)
    return key_versions_.Get(index);
  }
  inline ::ustore::KeyVersion* KeyVersions::add_key_versions() {
    // @@protoc_insertion_point(field_add:ustore.KeyVersions.key_versions)
    return key_versions_.Add();
  }
  inline const ::google::protobuf::RepeatedPtrField< ::ustore::KeyVersion >&
  KeyVersions::key_versions() const {
    // @@protoc_insertion_point(field_list:ustore.KeyVersions.key_versions)
    return key_versions_;
  }
  
  #ifdef __GNUC__
    #pragma GCC diagnostic pop
  #endif  // __GNUC__
  // -------------------------------------------------------------------
  
  // -------------------------------------------------------------------
  
  
  // @@protoc_insertion_point(namespace_scope)
  
  }  // namespace ustore
  
  // @@protoc_insertion_point(global_scope)
  
  #endif  // PROTOBUF_INCLUDED_head_5fversion_2eproto
  