// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: google/protobuf/util/internal/testdata/timestamp_duration.proto

#ifndef PROTOBUF_INCLUDED_google_2fprotobuf_2futil_2finternal_2ftestdata_2ftimestamp_5fduration_2eproto
#define PROTOBUF_INCLUDED_google_2fprotobuf_2futil_2finternal_2ftestdata_2ftimestamp_5fduration_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>
#include <google/protobuf/timestamp.pb.h>
#include <google/protobuf/duration.pb.h>
// @@protoc_insertion_point(includes)
#define PROTOBUF_INTERNAL_EXPORT_protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2ftimestamp_5fduration_2eproto 

namespace protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2ftimestamp_5fduration_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[4];
  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_google_2fprotobuf_2futil_2finternal_2ftestdata_2ftimestamp_5fduration_2eproto
namespace google {
namespace protobuf {
namespace testing {
class DurationType;
class DurationTypeDefaultTypeInternal;
extern DurationTypeDefaultTypeInternal _DurationType_default_instance_;
class TimeStampType;
class TimeStampTypeDefaultTypeInternal;
extern TimeStampTypeDefaultTypeInternal _TimeStampType_default_instance_;
class TimestampDuration;
class TimestampDurationDefaultTypeInternal;
extern TimestampDurationDefaultTypeInternal _TimestampDuration_default_instance_;
class TimestampDurationTestCases;
class TimestampDurationTestCasesDefaultTypeInternal;
extern TimestampDurationTestCasesDefaultTypeInternal _TimestampDurationTestCases_default_instance_;
}  // namespace testing
}  // namespace protobuf
}  // namespace google
namespace google {
namespace protobuf {
template<> ::google::protobuf::testing::DurationType* Arena::CreateMaybeMessage<::google::protobuf::testing::DurationType>(Arena*);
template<> ::google::protobuf::testing::TimeStampType* Arena::CreateMaybeMessage<::google::protobuf::testing::TimeStampType>(Arena*);
template<> ::google::protobuf::testing::TimestampDuration* Arena::CreateMaybeMessage<::google::protobuf::testing::TimestampDuration>(Arena*);
template<> ::google::protobuf::testing::TimestampDurationTestCases* Arena::CreateMaybeMessage<::google::protobuf::testing::TimestampDurationTestCases>(Arena*);
}  // namespace protobuf
}  // namespace google
namespace google {
namespace protobuf {
namespace testing {

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

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

  TimestampDurationTestCases(const TimestampDurationTestCases& from);

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

  inline TimestampDurationTestCases& operator=(TimestampDurationTestCases&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  static const ::google::protobuf::Descriptor* descriptor();
  static const TimestampDurationTestCases& default_instance();

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

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

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

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

  TimestampDurationTestCases* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<TimestampDurationTestCases>(arena);
  }
  void CopyFrom(const ::google::protobuf::Message& from) final;
  void MergeFrom(const ::google::protobuf::Message& from) final;
  void CopyFrom(const TimestampDurationTestCases& from);
  void MergeFrom(const TimestampDurationTestCases& 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(TimestampDurationTestCases* 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 -------------------------------------------------------

  // .google.protobuf.testing.TimeStampType epoch = 1;
  bool has_epoch() const;
  void clear_epoch();
  static const int kEpochFieldNumber = 1;
  private:
  const ::google::protobuf::testing::TimeStampType& _internal_epoch() const;
  public:
  const ::google::protobuf::testing::TimeStampType& epoch() const;
  ::google::protobuf::testing::TimeStampType* release_epoch();
  ::google::protobuf::testing::TimeStampType* mutable_epoch();
  void set_allocated_epoch(::google::protobuf::testing::TimeStampType* epoch);

  // .google.protobuf.testing.TimeStampType epoch2 = 2;
  bool has_epoch2() const;
  void clear_epoch2();
  static const int kEpoch2FieldNumber = 2;
  private:
  const ::google::protobuf::testing::TimeStampType& _internal_epoch2() const;
  public:
  const ::google::protobuf::testing::TimeStampType& epoch2() const;
  ::google::protobuf::testing::TimeStampType* release_epoch2();
  ::google::protobuf::testing::TimeStampType* mutable_epoch2();
  void set_allocated_epoch2(::google::protobuf::testing::TimeStampType* epoch2);

  // .google.protobuf.testing.TimeStampType mintime = 3;
  bool has_mintime() const;
  void clear_mintime();
  static const int kMintimeFieldNumber = 3;
  private:
  const ::google::protobuf::testing::TimeStampType& _internal_mintime() const;
  public:
  const ::google::protobuf::testing::TimeStampType& mintime() const;
  ::google::protobuf::testing::TimeStampType* release_mintime();
  ::google::protobuf::testing::TimeStampType* mutable_mintime();
  void set_allocated_mintime(::google::protobuf::testing::TimeStampType* mintime);

  // .google.protobuf.testing.TimeStampType maxtime = 4;
  bool has_maxtime() const;
  void clear_maxtime();
  static const int kMaxtimeFieldNumber = 4;
  private:
  const ::google::protobuf::testing::TimeStampType& _internal_maxtime() const;
  public:
  const ::google::protobuf::testing::TimeStampType& maxtime() const;
  ::google::protobuf::testing::TimeStampType* release_maxtime();
  ::google::protobuf::testing::TimeStampType* mutable_maxtime();
  void set_allocated_maxtime(::google::protobuf::testing::TimeStampType* maxtime);

  // .google.protobuf.testing.TimeStampType timeval1 = 5;
  bool has_timeval1() const;
  void clear_timeval1();
  static const int kTimeval1FieldNumber = 5;
  private:
  const ::google::protobuf::testing::TimeStampType& _internal_timeval1() const;
  public:
  const ::google::protobuf::testing::TimeStampType& timeval1() const;
  ::google::protobuf::testing::TimeStampType* release_timeval1();
  ::google::protobuf::testing::TimeStampType* mutable_timeval1();
  void set_allocated_timeval1(::google::protobuf::testing::TimeStampType* timeval1);

  // .google.protobuf.testing.TimeStampType timeval2 = 6;
  bool has_timeval2() const;
  void clear_timeval2();
  static const int kTimeval2FieldNumber = 6;
  private:
  const ::google::protobuf::testing::TimeStampType& _internal_timeval2() const;
  public:
  const ::google::protobuf::testing::TimeStampType& timeval2() const;
  ::google::protobuf::testing::TimeStampType* release_timeval2();
  ::google::protobuf::testing::TimeStampType* mutable_timeval2();
  void set_allocated_timeval2(::google::protobuf::testing::TimeStampType* timeval2);

  // .google.protobuf.testing.TimeStampType timeval3 = 7;
  bool has_timeval3() const;
  void clear_timeval3();
  static const int kTimeval3FieldNumber = 7;
  private:
  const ::google::protobuf::testing::TimeStampType& _internal_timeval3() const;
  public:
  const ::google::protobuf::testing::TimeStampType& timeval3() const;
  ::google::protobuf::testing::TimeStampType* release_timeval3();
  ::google::protobuf::testing::TimeStampType* mutable_timeval3();
  void set_allocated_timeval3(::google::protobuf::testing::TimeStampType* timeval3);

  // .google.protobuf.testing.TimeStampType timeval4 = 8;
  bool has_timeval4() const;
  void clear_timeval4();
  static const int kTimeval4FieldNumber = 8;
  private:
  const ::google::protobuf::testing::TimeStampType& _internal_timeval4() const;
  public:
  const ::google::protobuf::testing::TimeStampType& timeval4() const;
  ::google::protobuf::testing::TimeStampType* release_timeval4();
  ::google::protobuf::testing::TimeStampType* mutable_timeval4();
  void set_allocated_timeval4(::google::protobuf::testing::TimeStampType* timeval4);

  // .google.protobuf.testing.TimeStampType timeval5 = 9;
  bool has_timeval5() const;
  void clear_timeval5();
  static const int kTimeval5FieldNumber = 9;
  private:
  const ::google::protobuf::testing::TimeStampType& _internal_timeval5() const;
  public:
  const ::google::protobuf::testing::TimeStampType& timeval5() const;
  ::google::protobuf::testing::TimeStampType* release_timeval5();
  ::google::protobuf::testing::TimeStampType* mutable_timeval5();
  void set_allocated_timeval5(::google::protobuf::testing::TimeStampType* timeval5);

  // .google.protobuf.testing.TimeStampType timeval6 = 10;
  bool has_timeval6() const;
  void clear_timeval6();
  static const int kTimeval6FieldNumber = 10;
  private:
  const ::google::protobuf::testing::TimeStampType& _internal_timeval6() const;
  public:
  const ::google::protobuf::testing::TimeStampType& timeval6() const;
  ::google::protobuf::testing::TimeStampType* release_timeval6();
  ::google::protobuf::testing::TimeStampType* mutable_timeval6();
  void set_allocated_timeval6(::google::protobuf::testing::TimeStampType* timeval6);

  // .google.protobuf.testing.TimeStampType timeval7 = 11;
  bool has_timeval7() const;
  void clear_timeval7();
  static const int kTimeval7FieldNumber = 11;
  private:
  const ::google::protobuf::testing::TimeStampType& _internal_timeval7() const;
  public:
  const ::google::protobuf::testing::TimeStampType& timeval7() const;
  ::google::protobuf::testing::TimeStampType* release_timeval7();
  ::google::protobuf::testing::TimeStampType* mutable_timeval7();
  void set_allocated_timeval7(::google::protobuf::testing::TimeStampType* timeval7);

  // .google.protobuf.Timestamp timeval8 = 12;
  bool has_timeval8() const;
  void clear_timeval8();
  static const int kTimeval8FieldNumber = 12;
  private:
  const ::google::protobuf::Timestamp& _internal_timeval8() const;
  public:
  const ::google::protobuf::Timestamp& timeval8() const;
  ::google::protobuf::Timestamp* release_timeval8();
  ::google::protobuf::Timestamp* mutable_timeval8();
  void set_allocated_timeval8(::google::protobuf::Timestamp* timeval8);

  // .google.protobuf.testing.DurationType zero_duration = 101;
  bool has_zero_duration() const;
  void clear_zero_duration();
  static const int kZeroDurationFieldNumber = 101;
  private:
  const ::google::protobuf::testing::DurationType& _internal_zero_duration() const;
  public:
  const ::google::protobuf::testing::DurationType& zero_duration() const;
  ::google::protobuf::testing::DurationType* release_zero_duration();
  ::google::protobuf::testing::DurationType* mutable_zero_duration();
  void set_allocated_zero_duration(::google::protobuf::testing::DurationType* zero_duration);

  // .google.protobuf.testing.DurationType min_duration = 102;
  bool has_min_duration() const;
  void clear_min_duration();
  static const int kMinDurationFieldNumber = 102;
  private:
  const ::google::protobuf::testing::DurationType& _internal_min_duration() const;
  public:
  const ::google::protobuf::testing::DurationType& min_duration() const;
  ::google::protobuf::testing::DurationType* release_min_duration();
  ::google::protobuf::testing::DurationType* mutable_min_duration();
  void set_allocated_min_duration(::google::protobuf::testing::DurationType* min_duration);

  // .google.protobuf.testing.DurationType max_duration = 103;
  bool has_max_duration() const;
  void clear_max_duration();
  static const int kMaxDurationFieldNumber = 103;
  private:
  const ::google::protobuf::testing::DurationType& _internal_max_duration() const;
  public:
  const ::google::protobuf::testing::DurationType& max_duration() const;
  ::google::protobuf::testing::DurationType* release_max_duration();
  ::google::protobuf::testing::DurationType* mutable_max_duration();
  void set_allocated_max_duration(::google::protobuf::testing::DurationType* max_duration);

  // .google.protobuf.testing.DurationType duration1 = 104;
  bool has_duration1() const;
  void clear_duration1();
  static const int kDuration1FieldNumber = 104;
  private:
  const ::google::protobuf::testing::DurationType& _internal_duration1() const;
  public:
  const ::google::protobuf::testing::DurationType& duration1() const;
  ::google::protobuf::testing::DurationType* release_duration1();
  ::google::protobuf::testing::DurationType* mutable_duration1();
  void set_allocated_duration1(::google::protobuf::testing::DurationType* duration1);

  // .google.protobuf.testing.DurationType duration2 = 105;
  bool has_duration2() const;
  void clear_duration2();
  static const int kDuration2FieldNumber = 105;
  private:
  const ::google::protobuf::testing::DurationType& _internal_duration2() const;
  public:
  const ::google::protobuf::testing::DurationType& duration2() const;
  ::google::protobuf::testing::DurationType* release_duration2();
  ::google::protobuf::testing::DurationType* mutable_duration2();
  void set_allocated_duration2(::google::protobuf::testing::DurationType* duration2);

  // .google.protobuf.testing.DurationType duration3 = 106;
  bool has_duration3() const;
  void clear_duration3();
  static const int kDuration3FieldNumber = 106;
  private:
  const ::google::protobuf::testing::DurationType& _internal_duration3() const;
  public:
  const ::google::protobuf::testing::DurationType& duration3() const;
  ::google::protobuf::testing::DurationType* release_duration3();
  ::google::protobuf::testing::DurationType* mutable_duration3();
  void set_allocated_duration3(::google::protobuf::testing::DurationType* duration3);

  // .google.protobuf.testing.DurationType duration4 = 107;
  bool has_duration4() const;
  void clear_duration4();
  static const int kDuration4FieldNumber = 107;
  private:
  const ::google::protobuf::testing::DurationType& _internal_duration4() const;
  public:
  const ::google::protobuf::testing::DurationType& duration4() const;
  ::google::protobuf::testing::DurationType* release_duration4();
  ::google::protobuf::testing::DurationType* mutable_duration4();
  void set_allocated_duration4(::google::protobuf::testing::DurationType* duration4);

  // .google.protobuf.Duration duration5 = 108;
  bool has_duration5() const;
  void clear_duration5();
  static const int kDuration5FieldNumber = 108;
  private:
  const ::google::protobuf::Duration& _internal_duration5() const;
  public:
  const ::google::protobuf::Duration& duration5() const;
  ::google::protobuf::Duration* release_duration5();
  ::google::protobuf::Duration* mutable_duration5();
  void set_allocated_duration5(::google::protobuf::Duration* duration5);

  // @@protoc_insertion_point(class_scope:google.protobuf.testing.TimestampDurationTestCases)
 private:

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::testing::TimeStampType* epoch_;
  ::google::protobuf::testing::TimeStampType* epoch2_;
  ::google::protobuf::testing::TimeStampType* mintime_;
  ::google::protobuf::testing::TimeStampType* maxtime_;
  ::google::protobuf::testing::TimeStampType* timeval1_;
  ::google::protobuf::testing::TimeStampType* timeval2_;
  ::google::protobuf::testing::TimeStampType* timeval3_;
  ::google::protobuf::testing::TimeStampType* timeval4_;
  ::google::protobuf::testing::TimeStampType* timeval5_;
  ::google::protobuf::testing::TimeStampType* timeval6_;
  ::google::protobuf::testing::TimeStampType* timeval7_;
  ::google::protobuf::Timestamp* timeval8_;
  ::google::protobuf::testing::DurationType* zero_duration_;
  ::google::protobuf::testing::DurationType* min_duration_;
  ::google::protobuf::testing::DurationType* max_duration_;
  ::google::protobuf::testing::DurationType* duration1_;
  ::google::protobuf::testing::DurationType* duration2_;
  ::google::protobuf::testing::DurationType* duration3_;
  ::google::protobuf::testing::DurationType* duration4_;
  ::google::protobuf::Duration* duration5_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  friend struct ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2ftimestamp_5fduration_2eproto::TableStruct;
};
// -------------------------------------------------------------------

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

  TimeStampType(const TimeStampType& from);

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

  inline TimeStampType& operator=(TimeStampType&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  static const ::google::protobuf::Descriptor* descriptor();
  static const TimeStampType& default_instance();

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

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

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

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

  TimeStampType* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<TimeStampType>(arena);
  }
  void CopyFrom(const ::google::protobuf::Message& from) final;
  void MergeFrom(const ::google::protobuf::Message& from) final;
  void CopyFrom(const TimeStampType& from);
  void MergeFrom(const TimeStampType& 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(TimeStampType* 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 -------------------------------------------------------

  // .google.protobuf.Timestamp timestamp = 1;
  bool has_timestamp() const;
  void clear_timestamp();
  static const int kTimestampFieldNumber = 1;
  private:
  const ::google::protobuf::Timestamp& _internal_timestamp() const;
  public:
  const ::google::protobuf::Timestamp& timestamp() const;
  ::google::protobuf::Timestamp* release_timestamp();
  ::google::protobuf::Timestamp* mutable_timestamp();
  void set_allocated_timestamp(::google::protobuf::Timestamp* timestamp);

  // @@protoc_insertion_point(class_scope:google.protobuf.testing.TimeStampType)
 private:

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::Timestamp* timestamp_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  friend struct ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2ftimestamp_5fduration_2eproto::TableStruct;
};
// -------------------------------------------------------------------

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

  DurationType(const DurationType& from);

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

  inline DurationType& operator=(DurationType&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  static const ::google::protobuf::Descriptor* descriptor();
  static const DurationType& default_instance();

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

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

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

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

  DurationType* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<DurationType>(arena);
  }
  void CopyFrom(const ::google::protobuf::Message& from) final;
  void MergeFrom(const ::google::protobuf::Message& from) final;
  void CopyFrom(const DurationType& from);
  void MergeFrom(const DurationType& 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(DurationType* 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 -------------------------------------------------------

  // .google.protobuf.Duration duration = 1;
  bool has_duration() const;
  void clear_duration();
  static const int kDurationFieldNumber = 1;
  private:
  const ::google::protobuf::Duration& _internal_duration() const;
  public:
  const ::google::protobuf::Duration& duration() const;
  ::google::protobuf::Duration* release_duration();
  ::google::protobuf::Duration* mutable_duration();
  void set_allocated_duration(::google::protobuf::Duration* duration);

  // @@protoc_insertion_point(class_scope:google.protobuf.testing.DurationType)
 private:

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::Duration* duration_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  friend struct ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2ftimestamp_5fduration_2eproto::TableStruct;
};
// -------------------------------------------------------------------

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

  TimestampDuration(const TimestampDuration& from);

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

  inline TimestampDuration& operator=(TimestampDuration&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  static const ::google::protobuf::Descriptor* descriptor();
  static const TimestampDuration& default_instance();

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

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

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

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

  TimestampDuration* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<TimestampDuration>(arena);
  }
  void CopyFrom(const ::google::protobuf::Message& from) final;
  void MergeFrom(const ::google::protobuf::Message& from) final;
  void CopyFrom(const TimestampDuration& from);
  void MergeFrom(const TimestampDuration& 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(TimestampDuration* 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 .google.protobuf.Timestamp rep_ts = 3;
  int rep_ts_size() const;
  void clear_rep_ts();
  static const int kRepTsFieldNumber = 3;
  ::google::protobuf::Timestamp* mutable_rep_ts(int index);
  ::google::protobuf::RepeatedPtrField< ::google::protobuf::Timestamp >*
      mutable_rep_ts();
  const ::google::protobuf::Timestamp& rep_ts(int index) const;
  ::google::protobuf::Timestamp* add_rep_ts();
  const ::google::protobuf::RepeatedPtrField< ::google::protobuf::Timestamp >&
      rep_ts() const;

  // .google.protobuf.Timestamp ts = 1;
  bool has_ts() const;
  void clear_ts();
  static const int kTsFieldNumber = 1;
  private:
  const ::google::protobuf::Timestamp& _internal_ts() const;
  public:
  const ::google::protobuf::Timestamp& ts() const;
  ::google::protobuf::Timestamp* release_ts();
  ::google::protobuf::Timestamp* mutable_ts();
  void set_allocated_ts(::google::protobuf::Timestamp* ts);

  // .google.protobuf.Duration dur = 2;
  bool has_dur() const;
  void clear_dur();
  static const int kDurFieldNumber = 2;
  private:
  const ::google::protobuf::Duration& _internal_dur() const;
  public:
  const ::google::protobuf::Duration& dur() const;
  ::google::protobuf::Duration* release_dur();
  ::google::protobuf::Duration* mutable_dur();
  void set_allocated_dur(::google::protobuf::Duration* dur);

  // @@protoc_insertion_point(class_scope:google.protobuf.testing.TimestampDuration)
 private:

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::RepeatedPtrField< ::google::protobuf::Timestamp > rep_ts_;
  ::google::protobuf::Timestamp* ts_;
  ::google::protobuf::Duration* dur_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  friend struct ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2ftimestamp_5fduration_2eproto::TableStruct;
};
// ===================================================================


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

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

// .google.protobuf.testing.TimeStampType epoch = 1;
inline bool TimestampDurationTestCases::has_epoch() const {
  return this != internal_default_instance() && epoch_ != NULL;
}
inline void TimestampDurationTestCases::clear_epoch() {
  if (GetArenaNoVirtual() == NULL && epoch_ != NULL) {
    delete epoch_;
  }
  epoch_ = NULL;
}
inline const ::google::protobuf::testing::TimeStampType& TimestampDurationTestCases::_internal_epoch() const {
  return *epoch_;
}
inline const ::google::protobuf::testing::TimeStampType& TimestampDurationTestCases::epoch() const {
  const ::google::protobuf::testing::TimeStampType* p = epoch_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.TimestampDurationTestCases.epoch)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::TimeStampType*>(
      &::google::protobuf::testing::_TimeStampType_default_instance_);
}
inline ::google::protobuf::testing::TimeStampType* TimestampDurationTestCases::release_epoch() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.TimestampDurationTestCases.epoch)
  
  ::google::protobuf::testing::TimeStampType* temp = epoch_;
  epoch_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::TimeStampType* TimestampDurationTestCases::mutable_epoch() {
  
  if (epoch_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::TimeStampType>(GetArenaNoVirtual());
    epoch_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.TimestampDurationTestCases.epoch)
  return epoch_;
}
inline void TimestampDurationTestCases::set_allocated_epoch(::google::protobuf::testing::TimeStampType* epoch) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete epoch_;
  }
  if (epoch) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      epoch = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, epoch, submessage_arena);
    }
    
  } else {
    
  }
  epoch_ = epoch;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.TimestampDurationTestCases.epoch)
}

// .google.protobuf.testing.TimeStampType epoch2 = 2;
inline bool TimestampDurationTestCases::has_epoch2() const {
  return this != internal_default_instance() && epoch2_ != NULL;
}
inline void TimestampDurationTestCases::clear_epoch2() {
  if (GetArenaNoVirtual() == NULL && epoch2_ != NULL) {
    delete epoch2_;
  }
  epoch2_ = NULL;
}
inline const ::google::protobuf::testing::TimeStampType& TimestampDurationTestCases::_internal_epoch2() const {
  return *epoch2_;
}
inline const ::google::protobuf::testing::TimeStampType& TimestampDurationTestCases::epoch2() const {
  const ::google::protobuf::testing::TimeStampType* p = epoch2_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.TimestampDurationTestCases.epoch2)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::TimeStampType*>(
      &::google::protobuf::testing::_TimeStampType_default_instance_);
}
inline ::google::protobuf::testing::TimeStampType* TimestampDurationTestCases::release_epoch2() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.TimestampDurationTestCases.epoch2)
  
  ::google::protobuf::testing::TimeStampType* temp = epoch2_;
  epoch2_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::TimeStampType* TimestampDurationTestCases::mutable_epoch2() {
  
  if (epoch2_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::TimeStampType>(GetArenaNoVirtual());
    epoch2_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.TimestampDurationTestCases.epoch2)
  return epoch2_;
}
inline void TimestampDurationTestCases::set_allocated_epoch2(::google::protobuf::testing::TimeStampType* epoch2) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete epoch2_;
  }
  if (epoch2) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      epoch2 = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, epoch2, submessage_arena);
    }
    
  } else {
    
  }
  epoch2_ = epoch2;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.TimestampDurationTestCases.epoch2)
}

// .google.protobuf.testing.TimeStampType mintime = 3;
inline bool TimestampDurationTestCases::has_mintime() const {
  return this != internal_default_instance() && mintime_ != NULL;
}
inline void TimestampDurationTestCases::clear_mintime() {
  if (GetArenaNoVirtual() == NULL && mintime_ != NULL) {
    delete mintime_;
  }
  mintime_ = NULL;
}
inline const ::google::protobuf::testing::TimeStampType& TimestampDurationTestCases::_internal_mintime() const {
  return *mintime_;
}
inline const ::google::protobuf::testing::TimeStampType& TimestampDurationTestCases::mintime() const {
  const ::google::protobuf::testing::TimeStampType* p = mintime_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.TimestampDurationTestCases.mintime)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::TimeStampType*>(
      &::google::protobuf::testing::_TimeStampType_default_instance_);
}
inline ::google::protobuf::testing::TimeStampType* TimestampDurationTestCases::release_mintime() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.TimestampDurationTestCases.mintime)
  
  ::google::protobuf::testing::TimeStampType* temp = mintime_;
  mintime_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::TimeStampType* TimestampDurationTestCases::mutable_mintime() {
  
  if (mintime_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::TimeStampType>(GetArenaNoVirtual());
    mintime_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.TimestampDurationTestCases.mintime)
  return mintime_;
}
inline void TimestampDurationTestCases::set_allocated_mintime(::google::protobuf::testing::TimeStampType* mintime) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete mintime_;
  }
  if (mintime) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      mintime = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, mintime, submessage_arena);
    }
    
  } else {
    
  }
  mintime_ = mintime;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.TimestampDurationTestCases.mintime)
}

// .google.protobuf.testing.TimeStampType maxtime = 4;
inline bool TimestampDurationTestCases::has_maxtime() const {
  return this != internal_default_instance() && maxtime_ != NULL;
}
inline void TimestampDurationTestCases::clear_maxtime() {
  if (GetArenaNoVirtual() == NULL && maxtime_ != NULL) {
    delete maxtime_;
  }
  maxtime_ = NULL;
}
inline const ::google::protobuf::testing::TimeStampType& TimestampDurationTestCases::_internal_maxtime() const {
  return *maxtime_;
}
inline const ::google::protobuf::testing::TimeStampType& TimestampDurationTestCases::maxtime() const {
  const ::google::protobuf::testing::TimeStampType* p = maxtime_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.TimestampDurationTestCases.maxtime)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::TimeStampType*>(
      &::google::protobuf::testing::_TimeStampType_default_instance_);
}
inline ::google::protobuf::testing::TimeStampType* TimestampDurationTestCases::release_maxtime() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.TimestampDurationTestCases.maxtime)
  
  ::google::protobuf::testing::TimeStampType* temp = maxtime_;
  maxtime_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::TimeStampType* TimestampDurationTestCases::mutable_maxtime() {
  
  if (maxtime_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::TimeStampType>(GetArenaNoVirtual());
    maxtime_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.TimestampDurationTestCases.maxtime)
  return maxtime_;
}
inline void TimestampDurationTestCases::set_allocated_maxtime(::google::protobuf::testing::TimeStampType* maxtime) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete maxtime_;
  }
  if (maxtime) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      maxtime = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, maxtime, submessage_arena);
    }
    
  } else {
    
  }
  maxtime_ = maxtime;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.TimestampDurationTestCases.maxtime)
}

// .google.protobuf.testing.TimeStampType timeval1 = 5;
inline bool TimestampDurationTestCases::has_timeval1() const {
  return this != internal_default_instance() && timeval1_ != NULL;
}
inline void TimestampDurationTestCases::clear_timeval1() {
  if (GetArenaNoVirtual() == NULL && timeval1_ != NULL) {
    delete timeval1_;
  }
  timeval1_ = NULL;
}
inline const ::google::protobuf::testing::TimeStampType& TimestampDurationTestCases::_internal_timeval1() const {
  return *timeval1_;
}
inline const ::google::protobuf::testing::TimeStampType& TimestampDurationTestCases::timeval1() const {
  const ::google::protobuf::testing::TimeStampType* p = timeval1_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.TimestampDurationTestCases.timeval1)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::TimeStampType*>(
      &::google::protobuf::testing::_TimeStampType_default_instance_);
}
inline ::google::protobuf::testing::TimeStampType* TimestampDurationTestCases::release_timeval1() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.TimestampDurationTestCases.timeval1)
  
  ::google::protobuf::testing::TimeStampType* temp = timeval1_;
  timeval1_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::TimeStampType* TimestampDurationTestCases::mutable_timeval1() {
  
  if (timeval1_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::TimeStampType>(GetArenaNoVirtual());
    timeval1_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.TimestampDurationTestCases.timeval1)
  return timeval1_;
}
inline void TimestampDurationTestCases::set_allocated_timeval1(::google::protobuf::testing::TimeStampType* timeval1) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete timeval1_;
  }
  if (timeval1) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      timeval1 = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, timeval1, submessage_arena);
    }
    
  } else {
    
  }
  timeval1_ = timeval1;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.TimestampDurationTestCases.timeval1)
}

// .google.protobuf.testing.TimeStampType timeval2 = 6;
inline bool TimestampDurationTestCases::has_timeval2() const {
  return this != internal_default_instance() && timeval2_ != NULL;
}
inline void TimestampDurationTestCases::clear_timeval2() {
  if (GetArenaNoVirtual() == NULL && timeval2_ != NULL) {
    delete timeval2_;
  }
  timeval2_ = NULL;
}
inline const ::google::protobuf::testing::TimeStampType& TimestampDurationTestCases::_internal_timeval2() const {
  return *timeval2_;
}
inline const ::google::protobuf::testing::TimeStampType& TimestampDurationTestCases::timeval2() const {
  const ::google::protobuf::testing::TimeStampType* p = timeval2_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.TimestampDurationTestCases.timeval2)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::TimeStampType*>(
      &::google::protobuf::testing::_TimeStampType_default_instance_);
}
inline ::google::protobuf::testing::TimeStampType* TimestampDurationTestCases::release_timeval2() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.TimestampDurationTestCases.timeval2)
  
  ::google::protobuf::testing::TimeStampType* temp = timeval2_;
  timeval2_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::TimeStampType* TimestampDurationTestCases::mutable_timeval2() {
  
  if (timeval2_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::TimeStampType>(GetArenaNoVirtual());
    timeval2_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.TimestampDurationTestCases.timeval2)
  return timeval2_;
}
inline void TimestampDurationTestCases::set_allocated_timeval2(::google::protobuf::testing::TimeStampType* timeval2) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete timeval2_;
  }
  if (timeval2) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      timeval2 = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, timeval2, submessage_arena);
    }
    
  } else {
    
  }
  timeval2_ = timeval2;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.TimestampDurationTestCases.timeval2)
}

// .google.protobuf.testing.TimeStampType timeval3 = 7;
inline bool TimestampDurationTestCases::has_timeval3() const {
  return this != internal_default_instance() && timeval3_ != NULL;
}
inline void TimestampDurationTestCases::clear_timeval3() {
  if (GetArenaNoVirtual() == NULL && timeval3_ != NULL) {
    delete timeval3_;
  }
  timeval3_ = NULL;
}
inline const ::google::protobuf::testing::TimeStampType& TimestampDurationTestCases::_internal_timeval3() const {
  return *timeval3_;
}
inline const ::google::protobuf::testing::TimeStampType& TimestampDurationTestCases::timeval3() const {
  const ::google::protobuf::testing::TimeStampType* p = timeval3_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.TimestampDurationTestCases.timeval3)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::TimeStampType*>(
      &::google::protobuf::testing::_TimeStampType_default_instance_);
}
inline ::google::protobuf::testing::TimeStampType* TimestampDurationTestCases::release_timeval3() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.TimestampDurationTestCases.timeval3)
  
  ::google::protobuf::testing::TimeStampType* temp = timeval3_;
  timeval3_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::TimeStampType* TimestampDurationTestCases::mutable_timeval3() {
  
  if (timeval3_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::TimeStampType>(GetArenaNoVirtual());
    timeval3_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.TimestampDurationTestCases.timeval3)
  return timeval3_;
}
inline void TimestampDurationTestCases::set_allocated_timeval3(::google::protobuf::testing::TimeStampType* timeval3) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete timeval3_;
  }
  if (timeval3) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      timeval3 = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, timeval3, submessage_arena);
    }
    
  } else {
    
  }
  timeval3_ = timeval3;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.TimestampDurationTestCases.timeval3)
}

// .google.protobuf.testing.TimeStampType timeval4 = 8;
inline bool TimestampDurationTestCases::has_timeval4() const {
  return this != internal_default_instance() && timeval4_ != NULL;
}
inline void TimestampDurationTestCases::clear_timeval4() {
  if (GetArenaNoVirtual() == NULL && timeval4_ != NULL) {
    delete timeval4_;
  }
  timeval4_ = NULL;
}
inline const ::google::protobuf::testing::TimeStampType& TimestampDurationTestCases::_internal_timeval4() const {
  return *timeval4_;
}
inline const ::google::protobuf::testing::TimeStampType& TimestampDurationTestCases::timeval4() const {
  const ::google::protobuf::testing::TimeStampType* p = timeval4_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.TimestampDurationTestCases.timeval4)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::TimeStampType*>(
      &::google::protobuf::testing::_TimeStampType_default_instance_);
}
inline ::google::protobuf::testing::TimeStampType* TimestampDurationTestCases::release_timeval4() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.TimestampDurationTestCases.timeval4)
  
  ::google::protobuf::testing::TimeStampType* temp = timeval4_;
  timeval4_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::TimeStampType* TimestampDurationTestCases::mutable_timeval4() {
  
  if (timeval4_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::TimeStampType>(GetArenaNoVirtual());
    timeval4_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.TimestampDurationTestCases.timeval4)
  return timeval4_;
}
inline void TimestampDurationTestCases::set_allocated_timeval4(::google::protobuf::testing::TimeStampType* timeval4) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete timeval4_;
  }
  if (timeval4) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      timeval4 = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, timeval4, submessage_arena);
    }
    
  } else {
    
  }
  timeval4_ = timeval4;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.TimestampDurationTestCases.timeval4)
}

// .google.protobuf.testing.TimeStampType timeval5 = 9;
inline bool TimestampDurationTestCases::has_timeval5() const {
  return this != internal_default_instance() && timeval5_ != NULL;
}
inline void TimestampDurationTestCases::clear_timeval5() {
  if (GetArenaNoVirtual() == NULL && timeval5_ != NULL) {
    delete timeval5_;
  }
  timeval5_ = NULL;
}
inline const ::google::protobuf::testing::TimeStampType& TimestampDurationTestCases::_internal_timeval5() const {
  return *timeval5_;
}
inline const ::google::protobuf::testing::TimeStampType& TimestampDurationTestCases::timeval5() const {
  const ::google::protobuf::testing::TimeStampType* p = timeval5_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.TimestampDurationTestCases.timeval5)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::TimeStampType*>(
      &::google::protobuf::testing::_TimeStampType_default_instance_);
}
inline ::google::protobuf::testing::TimeStampType* TimestampDurationTestCases::release_timeval5() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.TimestampDurationTestCases.timeval5)
  
  ::google::protobuf::testing::TimeStampType* temp = timeval5_;
  timeval5_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::TimeStampType* TimestampDurationTestCases::mutable_timeval5() {
  
  if (timeval5_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::TimeStampType>(GetArenaNoVirtual());
    timeval5_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.TimestampDurationTestCases.timeval5)
  return timeval5_;
}
inline void TimestampDurationTestCases::set_allocated_timeval5(::google::protobuf::testing::TimeStampType* timeval5) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete timeval5_;
  }
  if (timeval5) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      timeval5 = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, timeval5, submessage_arena);
    }
    
  } else {
    
  }
  timeval5_ = timeval5;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.TimestampDurationTestCases.timeval5)
}

// .google.protobuf.testing.TimeStampType timeval6 = 10;
inline bool TimestampDurationTestCases::has_timeval6() const {
  return this != internal_default_instance() && timeval6_ != NULL;
}
inline void TimestampDurationTestCases::clear_timeval6() {
  if (GetArenaNoVirtual() == NULL && timeval6_ != NULL) {
    delete timeval6_;
  }
  timeval6_ = NULL;
}
inline const ::google::protobuf::testing::TimeStampType& TimestampDurationTestCases::_internal_timeval6() const {
  return *timeval6_;
}
inline const ::google::protobuf::testing::TimeStampType& TimestampDurationTestCases::timeval6() const {
  const ::google::protobuf::testing::TimeStampType* p = timeval6_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.TimestampDurationTestCases.timeval6)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::TimeStampType*>(
      &::google::protobuf::testing::_TimeStampType_default_instance_);
}
inline ::google::protobuf::testing::TimeStampType* TimestampDurationTestCases::release_timeval6() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.TimestampDurationTestCases.timeval6)
  
  ::google::protobuf::testing::TimeStampType* temp = timeval6_;
  timeval6_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::TimeStampType* TimestampDurationTestCases::mutable_timeval6() {
  
  if (timeval6_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::TimeStampType>(GetArenaNoVirtual());
    timeval6_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.TimestampDurationTestCases.timeval6)
  return timeval6_;
}
inline void TimestampDurationTestCases::set_allocated_timeval6(::google::protobuf::testing::TimeStampType* timeval6) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete timeval6_;
  }
  if (timeval6) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      timeval6 = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, timeval6, submessage_arena);
    }
    
  } else {
    
  }
  timeval6_ = timeval6;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.TimestampDurationTestCases.timeval6)
}

// .google.protobuf.testing.TimeStampType timeval7 = 11;
inline bool TimestampDurationTestCases::has_timeval7() const {
  return this != internal_default_instance() && timeval7_ != NULL;
}
inline void TimestampDurationTestCases::clear_timeval7() {
  if (GetArenaNoVirtual() == NULL && timeval7_ != NULL) {
    delete timeval7_;
  }
  timeval7_ = NULL;
}
inline const ::google::protobuf::testing::TimeStampType& TimestampDurationTestCases::_internal_timeval7() const {
  return *timeval7_;
}
inline const ::google::protobuf::testing::TimeStampType& TimestampDurationTestCases::timeval7() const {
  const ::google::protobuf::testing::TimeStampType* p = timeval7_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.TimestampDurationTestCases.timeval7)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::TimeStampType*>(
      &::google::protobuf::testing::_TimeStampType_default_instance_);
}
inline ::google::protobuf::testing::TimeStampType* TimestampDurationTestCases::release_timeval7() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.TimestampDurationTestCases.timeval7)
  
  ::google::protobuf::testing::TimeStampType* temp = timeval7_;
  timeval7_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::TimeStampType* TimestampDurationTestCases::mutable_timeval7() {
  
  if (timeval7_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::TimeStampType>(GetArenaNoVirtual());
    timeval7_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.TimestampDurationTestCases.timeval7)
  return timeval7_;
}
inline void TimestampDurationTestCases::set_allocated_timeval7(::google::protobuf::testing::TimeStampType* timeval7) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete timeval7_;
  }
  if (timeval7) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      timeval7 = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, timeval7, submessage_arena);
    }
    
  } else {
    
  }
  timeval7_ = timeval7;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.TimestampDurationTestCases.timeval7)
}

// .google.protobuf.Timestamp timeval8 = 12;
inline bool TimestampDurationTestCases::has_timeval8() const {
  return this != internal_default_instance() && timeval8_ != NULL;
}
inline const ::google::protobuf::Timestamp& TimestampDurationTestCases::_internal_timeval8() const {
  return *timeval8_;
}
inline const ::google::protobuf::Timestamp& TimestampDurationTestCases::timeval8() const {
  const ::google::protobuf::Timestamp* p = timeval8_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.TimestampDurationTestCases.timeval8)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::Timestamp*>(
      &::google::protobuf::_Timestamp_default_instance_);
}
inline ::google::protobuf::Timestamp* TimestampDurationTestCases::release_timeval8() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.TimestampDurationTestCases.timeval8)
  
  ::google::protobuf::Timestamp* temp = timeval8_;
  timeval8_ = NULL;
  return temp;
}
inline ::google::protobuf::Timestamp* TimestampDurationTestCases::mutable_timeval8() {
  
  if (timeval8_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::Timestamp>(GetArenaNoVirtual());
    timeval8_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.TimestampDurationTestCases.timeval8)
  return timeval8_;
}
inline void TimestampDurationTestCases::set_allocated_timeval8(::google::protobuf::Timestamp* timeval8) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete reinterpret_cast< ::google::protobuf::MessageLite*>(timeval8_);
  }
  if (timeval8) {
    ::google::protobuf::Arena* submessage_arena =
      reinterpret_cast<::google::protobuf::MessageLite*>(timeval8)->GetArena();
    if (message_arena != submessage_arena) {
      timeval8 = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, timeval8, submessage_arena);
    }
    
  } else {
    
  }
  timeval8_ = timeval8;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.TimestampDurationTestCases.timeval8)
}

// .google.protobuf.testing.DurationType zero_duration = 101;
inline bool TimestampDurationTestCases::has_zero_duration() const {
  return this != internal_default_instance() && zero_duration_ != NULL;
}
inline void TimestampDurationTestCases::clear_zero_duration() {
  if (GetArenaNoVirtual() == NULL && zero_duration_ != NULL) {
    delete zero_duration_;
  }
  zero_duration_ = NULL;
}
inline const ::google::protobuf::testing::DurationType& TimestampDurationTestCases::_internal_zero_duration() const {
  return *zero_duration_;
}
inline const ::google::protobuf::testing::DurationType& TimestampDurationTestCases::zero_duration() const {
  const ::google::protobuf::testing::DurationType* p = zero_duration_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.TimestampDurationTestCases.zero_duration)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::DurationType*>(
      &::google::protobuf::testing::_DurationType_default_instance_);
}
inline ::google::protobuf::testing::DurationType* TimestampDurationTestCases::release_zero_duration() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.TimestampDurationTestCases.zero_duration)
  
  ::google::protobuf::testing::DurationType* temp = zero_duration_;
  zero_duration_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::DurationType* TimestampDurationTestCases::mutable_zero_duration() {
  
  if (zero_duration_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::DurationType>(GetArenaNoVirtual());
    zero_duration_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.TimestampDurationTestCases.zero_duration)
  return zero_duration_;
}
inline void TimestampDurationTestCases::set_allocated_zero_duration(::google::protobuf::testing::DurationType* zero_duration) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete zero_duration_;
  }
  if (zero_duration) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      zero_duration = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, zero_duration, submessage_arena);
    }
    
  } else {
    
  }
  zero_duration_ = zero_duration;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.TimestampDurationTestCases.zero_duration)
}

// .google.protobuf.testing.DurationType min_duration = 102;
inline bool TimestampDurationTestCases::has_min_duration() const {
  return this != internal_default_instance() && min_duration_ != NULL;
}
inline void TimestampDurationTestCases::clear_min_duration() {
  if (GetArenaNoVirtual() == NULL && min_duration_ != NULL) {
    delete min_duration_;
  }
  min_duration_ = NULL;
}
inline const ::google::protobuf::testing::DurationType& TimestampDurationTestCases::_internal_min_duration() const {
  return *min_duration_;
}
inline const ::google::protobuf::testing::DurationType& TimestampDurationTestCases::min_duration() const {
  const ::google::protobuf::testing::DurationType* p = min_duration_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.TimestampDurationTestCases.min_duration)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::DurationType*>(
      &::google::protobuf::testing::_DurationType_default_instance_);
}
inline ::google::protobuf::testing::DurationType* TimestampDurationTestCases::release_min_duration() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.TimestampDurationTestCases.min_duration)
  
  ::google::protobuf::testing::DurationType* temp = min_duration_;
  min_duration_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::DurationType* TimestampDurationTestCases::mutable_min_duration() {
  
  if (min_duration_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::DurationType>(GetArenaNoVirtual());
    min_duration_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.TimestampDurationTestCases.min_duration)
  return min_duration_;
}
inline void TimestampDurationTestCases::set_allocated_min_duration(::google::protobuf::testing::DurationType* min_duration) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete min_duration_;
  }
  if (min_duration) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      min_duration = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, min_duration, submessage_arena);
    }
    
  } else {
    
  }
  min_duration_ = min_duration;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.TimestampDurationTestCases.min_duration)
}

// .google.protobuf.testing.DurationType max_duration = 103;
inline bool TimestampDurationTestCases::has_max_duration() const {
  return this != internal_default_instance() && max_duration_ != NULL;
}
inline void TimestampDurationTestCases::clear_max_duration() {
  if (GetArenaNoVirtual() == NULL && max_duration_ != NULL) {
    delete max_duration_;
  }
  max_duration_ = NULL;
}
inline const ::google::protobuf::testing::DurationType& TimestampDurationTestCases::_internal_max_duration() const {
  return *max_duration_;
}
inline const ::google::protobuf::testing::DurationType& TimestampDurationTestCases::max_duration() const {
  const ::google::protobuf::testing::DurationType* p = max_duration_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.TimestampDurationTestCases.max_duration)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::DurationType*>(
      &::google::protobuf::testing::_DurationType_default_instance_);
}
inline ::google::protobuf::testing::DurationType* TimestampDurationTestCases::release_max_duration() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.TimestampDurationTestCases.max_duration)
  
  ::google::protobuf::testing::DurationType* temp = max_duration_;
  max_duration_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::DurationType* TimestampDurationTestCases::mutable_max_duration() {
  
  if (max_duration_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::DurationType>(GetArenaNoVirtual());
    max_duration_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.TimestampDurationTestCases.max_duration)
  return max_duration_;
}
inline void TimestampDurationTestCases::set_allocated_max_duration(::google::protobuf::testing::DurationType* max_duration) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete max_duration_;
  }
  if (max_duration) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      max_duration = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, max_duration, submessage_arena);
    }
    
  } else {
    
  }
  max_duration_ = max_duration;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.TimestampDurationTestCases.max_duration)
}

// .google.protobuf.testing.DurationType duration1 = 104;
inline bool TimestampDurationTestCases::has_duration1() const {
  return this != internal_default_instance() && duration1_ != NULL;
}
inline void TimestampDurationTestCases::clear_duration1() {
  if (GetArenaNoVirtual() == NULL && duration1_ != NULL) {
    delete duration1_;
  }
  duration1_ = NULL;
}
inline const ::google::protobuf::testing::DurationType& TimestampDurationTestCases::_internal_duration1() const {
  return *duration1_;
}
inline const ::google::protobuf::testing::DurationType& TimestampDurationTestCases::duration1() const {
  const ::google::protobuf::testing::DurationType* p = duration1_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.TimestampDurationTestCases.duration1)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::DurationType*>(
      &::google::protobuf::testing::_DurationType_default_instance_);
}
inline ::google::protobuf::testing::DurationType* TimestampDurationTestCases::release_duration1() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.TimestampDurationTestCases.duration1)
  
  ::google::protobuf::testing::DurationType* temp = duration1_;
  duration1_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::DurationType* TimestampDurationTestCases::mutable_duration1() {
  
  if (duration1_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::DurationType>(GetArenaNoVirtual());
    duration1_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.TimestampDurationTestCases.duration1)
  return duration1_;
}
inline void TimestampDurationTestCases::set_allocated_duration1(::google::protobuf::testing::DurationType* duration1) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete duration1_;
  }
  if (duration1) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      duration1 = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, duration1, submessage_arena);
    }
    
  } else {
    
  }
  duration1_ = duration1;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.TimestampDurationTestCases.duration1)
}

// .google.protobuf.testing.DurationType duration2 = 105;
inline bool TimestampDurationTestCases::has_duration2() const {
  return this != internal_default_instance() && duration2_ != NULL;
}
inline void TimestampDurationTestCases::clear_duration2() {
  if (GetArenaNoVirtual() == NULL && duration2_ != NULL) {
    delete duration2_;
  }
  duration2_ = NULL;
}
inline const ::google::protobuf::testing::DurationType& TimestampDurationTestCases::_internal_duration2() const {
  return *duration2_;
}
inline const ::google::protobuf::testing::DurationType& TimestampDurationTestCases::duration2() const {
  const ::google::protobuf::testing::DurationType* p = duration2_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.TimestampDurationTestCases.duration2)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::DurationType*>(
      &::google::protobuf::testing::_DurationType_default_instance_);
}
inline ::google::protobuf::testing::DurationType* TimestampDurationTestCases::release_duration2() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.TimestampDurationTestCases.duration2)
  
  ::google::protobuf::testing::DurationType* temp = duration2_;
  duration2_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::DurationType* TimestampDurationTestCases::mutable_duration2() {
  
  if (duration2_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::DurationType>(GetArenaNoVirtual());
    duration2_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.TimestampDurationTestCases.duration2)
  return duration2_;
}
inline void TimestampDurationTestCases::set_allocated_duration2(::google::protobuf::testing::DurationType* duration2) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete duration2_;
  }
  if (duration2) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      duration2 = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, duration2, submessage_arena);
    }
    
  } else {
    
  }
  duration2_ = duration2;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.TimestampDurationTestCases.duration2)
}

// .google.protobuf.testing.DurationType duration3 = 106;
inline bool TimestampDurationTestCases::has_duration3() const {
  return this != internal_default_instance() && duration3_ != NULL;
}
inline void TimestampDurationTestCases::clear_duration3() {
  if (GetArenaNoVirtual() == NULL && duration3_ != NULL) {
    delete duration3_;
  }
  duration3_ = NULL;
}
inline const ::google::protobuf::testing::DurationType& TimestampDurationTestCases::_internal_duration3() const {
  return *duration3_;
}
inline const ::google::protobuf::testing::DurationType& TimestampDurationTestCases::duration3() const {
  const ::google::protobuf::testing::DurationType* p = duration3_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.TimestampDurationTestCases.duration3)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::DurationType*>(
      &::google::protobuf::testing::_DurationType_default_instance_);
}
inline ::google::protobuf::testing::DurationType* TimestampDurationTestCases::release_duration3() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.TimestampDurationTestCases.duration3)
  
  ::google::protobuf::testing::DurationType* temp = duration3_;
  duration3_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::DurationType* TimestampDurationTestCases::mutable_duration3() {
  
  if (duration3_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::DurationType>(GetArenaNoVirtual());
    duration3_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.TimestampDurationTestCases.duration3)
  return duration3_;
}
inline void TimestampDurationTestCases::set_allocated_duration3(::google::protobuf::testing::DurationType* duration3) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete duration3_;
  }
  if (duration3) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      duration3 = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, duration3, submessage_arena);
    }
    
  } else {
    
  }
  duration3_ = duration3;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.TimestampDurationTestCases.duration3)
}

// .google.protobuf.testing.DurationType duration4 = 107;
inline bool TimestampDurationTestCases::has_duration4() const {
  return this != internal_default_instance() && duration4_ != NULL;
}
inline void TimestampDurationTestCases::clear_duration4() {
  if (GetArenaNoVirtual() == NULL && duration4_ != NULL) {
    delete duration4_;
  }
  duration4_ = NULL;
}
inline const ::google::protobuf::testing::DurationType& TimestampDurationTestCases::_internal_duration4() const {
  return *duration4_;
}
inline const ::google::protobuf::testing::DurationType& TimestampDurationTestCases::duration4() const {
  const ::google::protobuf::testing::DurationType* p = duration4_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.TimestampDurationTestCases.duration4)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::testing::DurationType*>(
      &::google::protobuf::testing::_DurationType_default_instance_);
}
inline ::google::protobuf::testing::DurationType* TimestampDurationTestCases::release_duration4() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.TimestampDurationTestCases.duration4)
  
  ::google::protobuf::testing::DurationType* temp = duration4_;
  duration4_ = NULL;
  return temp;
}
inline ::google::protobuf::testing::DurationType* TimestampDurationTestCases::mutable_duration4() {
  
  if (duration4_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::testing::DurationType>(GetArenaNoVirtual());
    duration4_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.TimestampDurationTestCases.duration4)
  return duration4_;
}
inline void TimestampDurationTestCases::set_allocated_duration4(::google::protobuf::testing::DurationType* duration4) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete duration4_;
  }
  if (duration4) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      duration4 = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, duration4, submessage_arena);
    }
    
  } else {
    
  }
  duration4_ = duration4;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.TimestampDurationTestCases.duration4)
}

// .google.protobuf.Duration duration5 = 108;
inline bool TimestampDurationTestCases::has_duration5() const {
  return this != internal_default_instance() && duration5_ != NULL;
}
inline const ::google::protobuf::Duration& TimestampDurationTestCases::_internal_duration5() const {
  return *duration5_;
}
inline const ::google::protobuf::Duration& TimestampDurationTestCases::duration5() const {
  const ::google::protobuf::Duration* p = duration5_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.TimestampDurationTestCases.duration5)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::Duration*>(
      &::google::protobuf::_Duration_default_instance_);
}
inline ::google::protobuf::Duration* TimestampDurationTestCases::release_duration5() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.TimestampDurationTestCases.duration5)
  
  ::google::protobuf::Duration* temp = duration5_;
  duration5_ = NULL;
  return temp;
}
inline ::google::protobuf::Duration* TimestampDurationTestCases::mutable_duration5() {
  
  if (duration5_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::Duration>(GetArenaNoVirtual());
    duration5_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.TimestampDurationTestCases.duration5)
  return duration5_;
}
inline void TimestampDurationTestCases::set_allocated_duration5(::google::protobuf::Duration* duration5) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete reinterpret_cast< ::google::protobuf::MessageLite*>(duration5_);
  }
  if (duration5) {
    ::google::protobuf::Arena* submessage_arena =
      reinterpret_cast<::google::protobuf::MessageLite*>(duration5)->GetArena();
    if (message_arena != submessage_arena) {
      duration5 = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, duration5, submessage_arena);
    }
    
  } else {
    
  }
  duration5_ = duration5;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.TimestampDurationTestCases.duration5)
}

// -------------------------------------------------------------------

// TimeStampType

// .google.protobuf.Timestamp timestamp = 1;
inline bool TimeStampType::has_timestamp() const {
  return this != internal_default_instance() && timestamp_ != NULL;
}
inline const ::google::protobuf::Timestamp& TimeStampType::_internal_timestamp() const {
  return *timestamp_;
}
inline const ::google::protobuf::Timestamp& TimeStampType::timestamp() const {
  const ::google::protobuf::Timestamp* p = timestamp_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.TimeStampType.timestamp)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::Timestamp*>(
      &::google::protobuf::_Timestamp_default_instance_);
}
inline ::google::protobuf::Timestamp* TimeStampType::release_timestamp() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.TimeStampType.timestamp)
  
  ::google::protobuf::Timestamp* temp = timestamp_;
  timestamp_ = NULL;
  return temp;
}
inline ::google::protobuf::Timestamp* TimeStampType::mutable_timestamp() {
  
  if (timestamp_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::Timestamp>(GetArenaNoVirtual());
    timestamp_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.TimeStampType.timestamp)
  return timestamp_;
}
inline void TimeStampType::set_allocated_timestamp(::google::protobuf::Timestamp* timestamp) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete reinterpret_cast< ::google::protobuf::MessageLite*>(timestamp_);
  }
  if (timestamp) {
    ::google::protobuf::Arena* submessage_arena =
      reinterpret_cast<::google::protobuf::MessageLite*>(timestamp)->GetArena();
    if (message_arena != submessage_arena) {
      timestamp = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, timestamp, submessage_arena);
    }
    
  } else {
    
  }
  timestamp_ = timestamp;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.TimeStampType.timestamp)
}

// -------------------------------------------------------------------

// DurationType

// .google.protobuf.Duration duration = 1;
inline bool DurationType::has_duration() const {
  return this != internal_default_instance() && duration_ != NULL;
}
inline const ::google::protobuf::Duration& DurationType::_internal_duration() const {
  return *duration_;
}
inline const ::google::protobuf::Duration& DurationType::duration() const {
  const ::google::protobuf::Duration* p = duration_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.DurationType.duration)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::Duration*>(
      &::google::protobuf::_Duration_default_instance_);
}
inline ::google::protobuf::Duration* DurationType::release_duration() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.DurationType.duration)
  
  ::google::protobuf::Duration* temp = duration_;
  duration_ = NULL;
  return temp;
}
inline ::google::protobuf::Duration* DurationType::mutable_duration() {
  
  if (duration_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::Duration>(GetArenaNoVirtual());
    duration_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.DurationType.duration)
  return duration_;
}
inline void DurationType::set_allocated_duration(::google::protobuf::Duration* duration) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete reinterpret_cast< ::google::protobuf::MessageLite*>(duration_);
  }
  if (duration) {
    ::google::protobuf::Arena* submessage_arena =
      reinterpret_cast<::google::protobuf::MessageLite*>(duration)->GetArena();
    if (message_arena != submessage_arena) {
      duration = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, duration, submessage_arena);
    }
    
  } else {
    
  }
  duration_ = duration;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.DurationType.duration)
}

// -------------------------------------------------------------------

// TimestampDuration

// .google.protobuf.Timestamp ts = 1;
inline bool TimestampDuration::has_ts() const {
  return this != internal_default_instance() && ts_ != NULL;
}
inline const ::google::protobuf::Timestamp& TimestampDuration::_internal_ts() const {
  return *ts_;
}
inline const ::google::protobuf::Timestamp& TimestampDuration::ts() const {
  const ::google::protobuf::Timestamp* p = ts_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.TimestampDuration.ts)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::Timestamp*>(
      &::google::protobuf::_Timestamp_default_instance_);
}
inline ::google::protobuf::Timestamp* TimestampDuration::release_ts() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.TimestampDuration.ts)
  
  ::google::protobuf::Timestamp* temp = ts_;
  ts_ = NULL;
  return temp;
}
inline ::google::protobuf::Timestamp* TimestampDuration::mutable_ts() {
  
  if (ts_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::Timestamp>(GetArenaNoVirtual());
    ts_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.TimestampDuration.ts)
  return ts_;
}
inline void TimestampDuration::set_allocated_ts(::google::protobuf::Timestamp* ts) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete reinterpret_cast< ::google::protobuf::MessageLite*>(ts_);
  }
  if (ts) {
    ::google::protobuf::Arena* submessage_arena =
      reinterpret_cast<::google::protobuf::MessageLite*>(ts)->GetArena();
    if (message_arena != submessage_arena) {
      ts = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, ts, submessage_arena);
    }
    
  } else {
    
  }
  ts_ = ts;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.TimestampDuration.ts)
}

// .google.protobuf.Duration dur = 2;
inline bool TimestampDuration::has_dur() const {
  return this != internal_default_instance() && dur_ != NULL;
}
inline const ::google::protobuf::Duration& TimestampDuration::_internal_dur() const {
  return *dur_;
}
inline const ::google::protobuf::Duration& TimestampDuration::dur() const {
  const ::google::protobuf::Duration* p = dur_;
  // @@protoc_insertion_point(field_get:google.protobuf.testing.TimestampDuration.dur)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::Duration*>(
      &::google::protobuf::_Duration_default_instance_);
}
inline ::google::protobuf::Duration* TimestampDuration::release_dur() {
  // @@protoc_insertion_point(field_release:google.protobuf.testing.TimestampDuration.dur)
  
  ::google::protobuf::Duration* temp = dur_;
  dur_ = NULL;
  return temp;
}
inline ::google::protobuf::Duration* TimestampDuration::mutable_dur() {
  
  if (dur_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::Duration>(GetArenaNoVirtual());
    dur_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.TimestampDuration.dur)
  return dur_;
}
inline void TimestampDuration::set_allocated_dur(::google::protobuf::Duration* dur) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete reinterpret_cast< ::google::protobuf::MessageLite*>(dur_);
  }
  if (dur) {
    ::google::protobuf::Arena* submessage_arena =
      reinterpret_cast<::google::protobuf::MessageLite*>(dur)->GetArena();
    if (message_arena != submessage_arena) {
      dur = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, dur, submessage_arena);
    }
    
  } else {
    
  }
  dur_ = dur;
  // @@protoc_insertion_point(field_set_allocated:google.protobuf.testing.TimestampDuration.dur)
}

// repeated .google.protobuf.Timestamp rep_ts = 3;
inline int TimestampDuration::rep_ts_size() const {
  return rep_ts_.size();
}
inline ::google::protobuf::Timestamp* TimestampDuration::mutable_rep_ts(int index) {
  // @@protoc_insertion_point(field_mutable:google.protobuf.testing.TimestampDuration.rep_ts)
  return rep_ts_.Mutable(index);
}
inline ::google::protobuf::RepeatedPtrField< ::google::protobuf::Timestamp >*
TimestampDuration::mutable_rep_ts() {
  // @@protoc_insertion_point(field_mutable_list:google.protobuf.testing.TimestampDuration.rep_ts)
  return &rep_ts_;
}
inline const ::google::protobuf::Timestamp& TimestampDuration::rep_ts(int index) const {
  // @@protoc_insertion_point(field_get:google.protobuf.testing.TimestampDuration.rep_ts)
  return rep_ts_.Get(index);
}
inline ::google::protobuf::Timestamp* TimestampDuration::add_rep_ts() {
  // @@protoc_insertion_point(field_add:google.protobuf.testing.TimestampDuration.rep_ts)
  return rep_ts_.Add();
}
inline const ::google::protobuf::RepeatedPtrField< ::google::protobuf::Timestamp >&
TimestampDuration::rep_ts() const {
  // @@protoc_insertion_point(field_list:google.protobuf.testing.TimestampDuration.rep_ts)
  return rep_ts_;
}

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

// -------------------------------------------------------------------

// -------------------------------------------------------------------


// @@protoc_insertion_point(namespace_scope)

}  // namespace testing
}  // namespace protobuf
}  // namespace google

// @@protoc_insertion_point(global_scope)

#endif  // PROTOBUF_INCLUDED_google_2fprotobuf_2futil_2finternal_2ftestdata_2ftimestamp_5fduration_2eproto
