// Generated by the protocol buffer compiler.  DO NOT EDIT!
// NO CHECKED-IN PROTOBUF GENCODE
// source: task_spec.proto
// Protobuf C++ Version: 7.35.1

#ifndef task_5fspec_2eproto_2epb_2eh
#define task_5fspec_2eproto_2epb_2eh

#include <limits>
#include <string>
#include <type_traits>
#include <utility>

// clang-format off
#include "google/protobuf/runtime_version.h"
#if PROTOBUF_VERSION != 7035001
#error "Protobuf C++ gencode is built with an incompatible version of"
#error "Protobuf C++ headers/runtime. See"
#error "https://protobuf.dev/support/cross-version-runtime-guarantee/#cpp"
#endif
#include "google/protobuf/io/coded_stream.h"
#include "google/protobuf/arena.h"
#include "google/protobuf/arenastring.h"
#include "google/protobuf/generated_message_tctable_decl.h"
#include "google/protobuf/generated_message_util.h"
#include "google/protobuf/metadata_lite.h"
#include "google/protobuf/message_lite.h"
#include "google/protobuf/repeated_field.h"  // IWYU pragma: export
#include "google/protobuf/extension_set.h"  // IWYU pragma: export
// @@protoc_insertion_point(includes)

// Must be included last.
#include "google/protobuf/port_def.inc"

#define PROTOBUF_INTERNAL_EXPORT_task_5fspec_2eproto

namespace google {
namespace protobuf {
namespace internal {
template <typename T>
::absl::string_view GetAnyMessageName();
}  // namespace internal
}  // namespace protobuf
}  // namespace google

// Internal implementation detail -- do not use these members.
struct TableStruct_task_5fspec_2eproto {
  static const ::uint32_t offsets[];
};
namespace chrome_lang_id {
class TaskInput;
struct TaskInputGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern TaskInputGlobalsTypeInternal TaskInput_globals_;
extern const ::google::protobuf::internal::ClassDataLite TaskInput_class_data_;
#else
extern const TaskInputGlobalsTypeInternal TaskInput_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class TaskInput_Part;
struct TaskInput_PartGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern TaskInput_PartGlobalsTypeInternal TaskInput_Part_globals_;
extern const ::google::protobuf::internal::ClassDataLite TaskInput_Part_class_data_;
#else
extern const TaskInput_PartGlobalsTypeInternal TaskInput_Part_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class TaskOutput;
struct TaskOutputGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern TaskOutputGlobalsTypeInternal TaskOutput_globals_;
extern const ::google::protobuf::internal::ClassDataLite TaskOutput_class_data_;
#else
extern const TaskOutputGlobalsTypeInternal TaskOutput_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class TaskSpec;
struct TaskSpecGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern TaskSpecGlobalsTypeInternal TaskSpec_globals_;
extern const ::google::protobuf::internal::ClassDataLite TaskSpec_class_data_;
#else
extern const TaskSpecGlobalsTypeInternal TaskSpec_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class TaskSpec_Parameter;
struct TaskSpec_ParameterGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern TaskSpec_ParameterGlobalsTypeInternal TaskSpec_Parameter_globals_;
extern const ::google::protobuf::internal::ClassDataLite TaskSpec_Parameter_class_data_;
#else
extern const TaskSpec_ParameterGlobalsTypeInternal TaskSpec_Parameter_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
}  // namespace chrome_lang_id
namespace google {
namespace protobuf {
}  // namespace protobuf
}  // namespace google

namespace chrome_lang_id {

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


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

class  TaskSpec_Parameter final : public ::google::protobuf::MessageLite
/* @@protoc_insertion_point(class_definition:chrome_lang_id.TaskSpec.Parameter) */ {
 public:
  inline TaskSpec_Parameter() : TaskSpec_Parameter(nullptr) {}
  ~TaskSpec_Parameter() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(TaskSpec_Parameter* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(TaskSpec_Parameter));
  }
#endif

  template <typename = void>
  explicit constexpr TaskSpec_Parameter(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline TaskSpec_Parameter(const TaskSpec_Parameter& from) : TaskSpec_Parameter(nullptr, from) {}
  inline TaskSpec_Parameter(TaskSpec_Parameter&& from) noexcept : TaskSpec_Parameter(nullptr, ::std::move(from)) {}
  inline TaskSpec_Parameter& operator=(const TaskSpec_Parameter& from) {
    CopyFrom(from);
    return *this;
  }
  inline TaskSpec_Parameter& operator=(TaskSpec_Parameter&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::std::string& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString);
  }
  inline ::std::string* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::std::string>();
  }

  static const TaskSpec_Parameter& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<TaskSpec_Parameter>(&TaskSpec_Parameter_globals_);
  }
  static constexpr int kIndexInFileMessages = 3;
  friend void swap(TaskSpec_Parameter& a, TaskSpec_Parameter& b) { a.Swap(&b); }
  PROTOBUF_NOINLINE void Swap(TaskSpec_Parameter* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(TaskSpec_Parameter* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  TaskSpec_Parameter* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::MessageLite::DefaultConstruct<TaskSpec_Parameter>(arena);
  }
  void CopyFrom(const TaskSpec_Parameter& from);
  void MergeFrom(const TaskSpec_Parameter& from) { TaskSpec_Parameter::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  bool IsInitialized() const {
    return IsInitializedImpl(*this);
  }

  private:
  static bool IsInitializedImpl(const MessageLite& msg);

  public:
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  ::size_t ByteSizeLong() const final;
  ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(TaskSpec_Parameter* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "chrome_lang_id.TaskSpec.Parameter"; }

  explicit TaskSpec_Parameter(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  TaskSpec_Parameter(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const TaskSpec_Parameter& from);
  TaskSpec_Parameter(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, TaskSpec_Parameter&& from) noexcept
      : TaskSpec_Parameter(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

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

  // accessors -------------------------------------------------------
  enum : int {
    kNameFieldNumber = 4,
    kValueFieldNumber = 5,
  };
  // required string name = 4;
  bool has_name()
      const;
  void clear_name() ;
  const ::std::string& name() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_name(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_name();
  ::std::string* PROTOBUF_NULLABLE release_name();
  void set_allocated_name(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_name() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_name(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_name();

  public:
  // optional string value = 5;
  bool has_value()
      const;
  void clear_value() ;
  const ::std::string& value() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_value(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_value();
  ::std::string* PROTOBUF_NULLABLE release_value();
  void set_allocated_value(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_value() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_value(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_value();

  public:
  // @@protoc_insertion_point(class_scope:chrome_lang_id.TaskSpec.Parameter)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<2, 2,
                          0, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const TaskSpec_Parameter& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr name_;
    ::google::protobuf::internal::ArenaStringPtr value_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_task_5fspec_2eproto;
};
// -------------------------------------------------------------------

class  TaskOutput final : public ::google::protobuf::MessageLite
/* @@protoc_insertion_point(class_definition:chrome_lang_id.TaskOutput) */ {
 public:
  inline TaskOutput() : TaskOutput(nullptr) {}
  ~TaskOutput() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(TaskOutput* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(TaskOutput));
  }
#endif

  template <typename = void>
  explicit constexpr TaskOutput(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline TaskOutput(const TaskOutput& from) : TaskOutput(nullptr, from) {}
  inline TaskOutput(TaskOutput&& from) noexcept : TaskOutput(nullptr, ::std::move(from)) {}
  inline TaskOutput& operator=(const TaskOutput& from) {
    CopyFrom(from);
    return *this;
  }
  inline TaskOutput& operator=(TaskOutput&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::std::string& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString);
  }
  inline ::std::string* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::std::string>();
  }

  static const TaskOutput& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<TaskOutput>(&TaskOutput_globals_);
  }
  static constexpr int kIndexInFileMessages = 2;
  friend void swap(TaskOutput& a, TaskOutput& b) { a.Swap(&b); }
  PROTOBUF_NOINLINE void Swap(TaskOutput* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(TaskOutput* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  TaskOutput* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::MessageLite::DefaultConstruct<TaskOutput>(arena);
  }
  void CopyFrom(const TaskOutput& from);
  void MergeFrom(const TaskOutput& from) { TaskOutput::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  bool IsInitialized() const {
    return IsInitializedImpl(*this);
  }

  private:
  static bool IsInitializedImpl(const MessageLite& msg);

  public:
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  ::size_t ByteSizeLong() const final;
  ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(TaskOutput* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "chrome_lang_id.TaskOutput"; }

  explicit TaskOutput(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  TaskOutput(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const TaskOutput& from);
  TaskOutput(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, TaskOutput&& from) noexcept
      : TaskOutput(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

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

  // accessors -------------------------------------------------------
  enum : int {
    kNameFieldNumber = 1,
    kFileFormatFieldNumber = 2,
    kRecordFormatFieldNumber = 3,
    kFileBaseFieldNumber = 5,
    kFileExtensionFieldNumber = 6,
    kShardsFieldNumber = 4,
  };
  // required string name = 1;
  bool has_name()
      const;
  void clear_name() ;
  const ::std::string& name() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_name(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_name();
  ::std::string* PROTOBUF_NULLABLE release_name();
  void set_allocated_name(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_name() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_name(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_name();

  public:
  // optional string file_format = 2;
  bool has_file_format()
      const;
  void clear_file_format() ;
  const ::std::string& file_format() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_file_format(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_file_format();
  ::std::string* PROTOBUF_NULLABLE release_file_format();
  void set_allocated_file_format(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_file_format() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_file_format(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_file_format();

  public:
  // optional string record_format = 3;
  bool has_record_format()
      const;
  void clear_record_format() ;
  const ::std::string& record_format() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_record_format(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_record_format();
  ::std::string* PROTOBUF_NULLABLE release_record_format();
  void set_allocated_record_format(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_record_format() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_record_format(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_record_format();

  public:
  // optional string file_base = 5;
  bool has_file_base()
      const;
  void clear_file_base() ;
  const ::std::string& file_base() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_file_base(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_file_base();
  ::std::string* PROTOBUF_NULLABLE release_file_base();
  void set_allocated_file_base(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_file_base() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_file_base(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_file_base();

  public:
  // optional string file_extension = 6;
  bool has_file_extension()
      const;
  void clear_file_extension() ;
  const ::std::string& file_extension() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_file_extension(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_file_extension();
  ::std::string* PROTOBUF_NULLABLE release_file_extension();
  void set_allocated_file_extension(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_file_extension() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_file_extension(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_file_extension();

  public:
  // optional int32 shards = 4 [default = 0];
  bool has_shards()
      const;
  void clear_shards() ;
  ::int32_t shards() const;
  void set_shards(::int32_t value);

  private:
  ::int32_t _internal_shards() const;
  void _internal_set_shards(::int32_t value);

  public:
  // @@protoc_insertion_point(class_scope:chrome_lang_id.TaskOutput)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<3, 6,
                          0, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const TaskOutput& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr name_;
    ::google::protobuf::internal::ArenaStringPtr file_format_;
    ::google::protobuf::internal::ArenaStringPtr record_format_;
    ::google::protobuf::internal::ArenaStringPtr file_base_;
    ::google::protobuf::internal::ArenaStringPtr file_extension_;
    ::int32_t shards_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_task_5fspec_2eproto;
};
// -------------------------------------------------------------------

class  TaskInput_Part final : public ::google::protobuf::MessageLite
/* @@protoc_insertion_point(class_definition:chrome_lang_id.TaskInput.Part) */ {
 public:
  inline TaskInput_Part() : TaskInput_Part(nullptr) {}
  ~TaskInput_Part() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(TaskInput_Part* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(TaskInput_Part));
  }
#endif

  template <typename = void>
  explicit constexpr TaskInput_Part(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline TaskInput_Part(const TaskInput_Part& from) : TaskInput_Part(nullptr, from) {}
  inline TaskInput_Part(TaskInput_Part&& from) noexcept : TaskInput_Part(nullptr, ::std::move(from)) {}
  inline TaskInput_Part& operator=(const TaskInput_Part& from) {
    CopyFrom(from);
    return *this;
  }
  inline TaskInput_Part& operator=(TaskInput_Part&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::std::string& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString);
  }
  inline ::std::string* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::std::string>();
  }

  static const TaskInput_Part& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<TaskInput_Part>(&TaskInput_Part_globals_);
  }
  static constexpr int kIndexInFileMessages = 0;
  friend void swap(TaskInput_Part& a, TaskInput_Part& b) { a.Swap(&b); }
  PROTOBUF_NOINLINE void Swap(TaskInput_Part* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(TaskInput_Part* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  TaskInput_Part* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::MessageLite::DefaultConstruct<TaskInput_Part>(arena);
  }
  void CopyFrom(const TaskInput_Part& from);
  void MergeFrom(const TaskInput_Part& from) { TaskInput_Part::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  ::size_t ByteSizeLong() const final;
  ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(TaskInput_Part* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "chrome_lang_id.TaskInput.Part"; }

  explicit TaskInput_Part(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  TaskInput_Part(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const TaskInput_Part& from);
  TaskInput_Part(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, TaskInput_Part&& from) noexcept
      : TaskInput_Part(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

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

  // accessors -------------------------------------------------------
  enum : int {
    kFilePatternFieldNumber = 7,
    kFileFormatFieldNumber = 8,
    kRecordFormatFieldNumber = 9,
  };
  // optional string file_pattern = 7;
  bool has_file_pattern()
      const;
  void clear_file_pattern() ;
  const ::std::string& file_pattern() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_file_pattern(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_file_pattern();
  ::std::string* PROTOBUF_NULLABLE release_file_pattern();
  void set_allocated_file_pattern(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_file_pattern() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_file_pattern(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_file_pattern();

  public:
  // optional string file_format = 8;
  bool has_file_format()
      const;
  void clear_file_format() ;
  const ::std::string& file_format() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_file_format(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_file_format();
  ::std::string* PROTOBUF_NULLABLE release_file_format();
  void set_allocated_file_format(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_file_format() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_file_format(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_file_format();

  public:
  // optional string record_format = 9;
  bool has_record_format()
      const;
  void clear_record_format() ;
  const ::std::string& record_format() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_record_format(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_record_format();
  ::std::string* PROTOBUF_NULLABLE release_record_format();
  void set_allocated_record_format(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_record_format() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_record_format(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_record_format();

  public:
  // @@protoc_insertion_point(class_scope:chrome_lang_id.TaskInput.Part)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<2, 3,
                          0, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const TaskInput_Part& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr file_pattern_;
    ::google::protobuf::internal::ArenaStringPtr file_format_;
    ::google::protobuf::internal::ArenaStringPtr record_format_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_task_5fspec_2eproto;
};
// -------------------------------------------------------------------

class  TaskInput final : public ::google::protobuf::MessageLite
/* @@protoc_insertion_point(class_definition:chrome_lang_id.TaskInput) */ {
 public:
  inline TaskInput() : TaskInput(nullptr) {}
  ~TaskInput() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(TaskInput* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(TaskInput));
  }
#endif

  template <typename = void>
  explicit constexpr TaskInput(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline TaskInput(const TaskInput& from) : TaskInput(nullptr, from) {}
  inline TaskInput(TaskInput&& from) noexcept : TaskInput(nullptr, ::std::move(from)) {}
  inline TaskInput& operator=(const TaskInput& from) {
    CopyFrom(from);
    return *this;
  }
  inline TaskInput& operator=(TaskInput&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::std::string& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString);
  }
  inline ::std::string* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::std::string>();
  }

  static const TaskInput& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<TaskInput>(&TaskInput_globals_);
  }
  static constexpr int kIndexInFileMessages = 1;
  friend void swap(TaskInput& a, TaskInput& b) { a.Swap(&b); }
  PROTOBUF_NOINLINE void Swap(TaskInput* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(TaskInput* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  TaskInput* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::MessageLite::DefaultConstruct<TaskInput>(arena);
  }
  void CopyFrom(const TaskInput& from);
  void MergeFrom(const TaskInput& from) { TaskInput::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  bool IsInitialized() const {
    return IsInitializedImpl(*this);
  }

  private:
  static bool IsInitializedImpl(const MessageLite& msg);

  public:
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  ::size_t ByteSizeLong() const final;
  ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(TaskInput* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "chrome_lang_id.TaskInput"; }

  explicit TaskInput(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  TaskInput(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const TaskInput& from);
  TaskInput(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, TaskInput&& from) noexcept
      : TaskInput(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  // nested types ----------------------------------------------------
  using Part = TaskInput_Part;

  // accessors -------------------------------------------------------
  enum : int {
    kFileFormatFieldNumber = 3,
    kRecordFormatFieldNumber = 4,
    kPartFieldNumber = 6,
    kNameFieldNumber = 1,
    kCreatorFieldNumber = 2,
    kMultiFileFieldNumber = 5,
  };
  // repeated string file_format = 3;
  int file_format_size()
      const;
  private:
  int _internal_file_format_size() const;

  public:
  void clear_file_format() ;
  const ::std::string& file_format(int index) const;
  ::std::string* PROTOBUF_NONNULL mutable_file_format(int index);
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_file_format(int index, Arg_&& value, Args_... args);
  ::std::string* PROTOBUF_NONNULL add_file_format();
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void add_file_format(Arg_&& value, Args_... args);
  const
      ::google::protobuf::RepeatedPtrField<::std::string>&
      file_format() const;
  ::google::protobuf::RepeatedPtrField<::std::string>*
      PROTOBUF_NONNULL
      mutable_file_format();

  private:
  const ::google::protobuf::RepeatedPtrField<::std::string>& _internal_file_format() const;
  ::google::protobuf::RepeatedPtrField<::std::string>* PROTOBUF_NONNULL _internal_mutable_file_format();

  public:
  // repeated string record_format = 4;
  int record_format_size()
      const;
  private:
  int _internal_record_format_size() const;

  public:
  void clear_record_format() ;
  const ::std::string& record_format(int index) const;
  ::std::string* PROTOBUF_NONNULL mutable_record_format(int index);
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_record_format(int index, Arg_&& value, Args_... args);
  ::std::string* PROTOBUF_NONNULL add_record_format();
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void add_record_format(Arg_&& value, Args_... args);
  const
      ::google::protobuf::RepeatedPtrField<::std::string>&
      record_format() const;
  ::google::protobuf::RepeatedPtrField<::std::string>*
      PROTOBUF_NONNULL
      mutable_record_format();

  private:
  const ::google::protobuf::RepeatedPtrField<::std::string>& _internal_record_format() const;
  ::google::protobuf::RepeatedPtrField<::std::string>* PROTOBUF_NONNULL _internal_mutable_record_format();

  public:
  // repeated group Part = 6 { ... };
  int part_size()
      const;
  private:
  int _internal_part_size() const;

  public:
  void clear_part() ;
  const ::chrome_lang_id::TaskInput_Part& part(int index) const;
  ::chrome_lang_id::TaskInput_Part* PROTOBUF_NONNULL mutable_part(int index);
  ::chrome_lang_id::TaskInput_Part* PROTOBUF_NONNULL add_part();
  const ::google::protobuf::RepeatedPtrField<::chrome_lang_id::TaskInput_Part>&
  part() const;
  ::google::protobuf::RepeatedPtrField<::chrome_lang_id::TaskInput_Part>* PROTOBUF_NONNULL
  mutable_part();

  private:
  const ::google::protobuf::RepeatedPtrField<::chrome_lang_id::TaskInput_Part>& _internal_part() const;
  ::google::protobuf::RepeatedPtrField<::chrome_lang_id::TaskInput_Part>* PROTOBUF_NONNULL _internal_mutable_part();

  public:
  // required string name = 1;
  bool has_name()
      const;
  void clear_name() ;
  const ::std::string& name() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_name(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_name();
  ::std::string* PROTOBUF_NULLABLE release_name();
  void set_allocated_name(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_name() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_name(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_name();

  public:
  // optional string creator = 2;
  bool has_creator()
      const;
  void clear_creator() ;
  const ::std::string& creator() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_creator(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_creator();
  ::std::string* PROTOBUF_NULLABLE release_creator();
  void set_allocated_creator(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_creator() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_creator(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_creator();

  public:
  // optional bool multi_file = 5 [default = false];
  bool has_multi_file()
      const;
  void clear_multi_file() ;
  bool multi_file() const;
  void set_multi_file(bool value);

  private:
  bool _internal_multi_file() const;
  void _internal_set_multi_file(bool value);

  public:
  // @@protoc_insertion_point(class_scope:chrome_lang_id.TaskInput)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<3, 6,
                          1, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const TaskInput& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::RepeatedPtrField<::std::string> file_format_;
    ::google::protobuf::RepeatedPtrField<::std::string> record_format_;
    ::google::protobuf::RepeatedPtrField< ::chrome_lang_id::TaskInput_Part > part_;
    ::google::protobuf::internal::ArenaStringPtr name_;
    ::google::protobuf::internal::ArenaStringPtr creator_;
    bool multi_file_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_task_5fspec_2eproto;
};
// -------------------------------------------------------------------

class  TaskSpec final : public ::google::protobuf::MessageLite
/* @@protoc_insertion_point(class_definition:chrome_lang_id.TaskSpec) */ {
 public:
  inline TaskSpec() : TaskSpec(nullptr) {}
  ~TaskSpec() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(TaskSpec* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(TaskSpec));
  }
#endif

  template <typename = void>
  explicit constexpr TaskSpec(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline TaskSpec(const TaskSpec& from) : TaskSpec(nullptr, from) {}
  inline TaskSpec(TaskSpec&& from) noexcept : TaskSpec(nullptr, ::std::move(from)) {}
  inline TaskSpec& operator=(const TaskSpec& from) {
    CopyFrom(from);
    return *this;
  }
  inline TaskSpec& operator=(TaskSpec&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::std::string& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString);
  }
  inline ::std::string* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::std::string>();
  }

  static const TaskSpec& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<TaskSpec>(&TaskSpec_globals_);
  }
  static constexpr int kIndexInFileMessages = 4;
  friend void swap(TaskSpec& a, TaskSpec& b) { a.Swap(&b); }
  PROTOBUF_NOINLINE void Swap(TaskSpec* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(TaskSpec* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  TaskSpec* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::MessageLite::DefaultConstruct<TaskSpec>(arena);
  }
  void CopyFrom(const TaskSpec& from);
  void MergeFrom(const TaskSpec& from) { TaskSpec::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  bool IsInitialized() const {
    return IsInitializedImpl(*this);
  }

  private:
  static bool IsInitializedImpl(const MessageLite& msg);

  public:
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  ::size_t ByteSizeLong() const final;
  ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(TaskSpec* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "chrome_lang_id.TaskSpec"; }

  explicit TaskSpec(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  TaskSpec(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const TaskSpec& from);
  TaskSpec(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, TaskSpec&& from) noexcept
      : TaskSpec(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  // nested types ----------------------------------------------------
  using Parameter = TaskSpec_Parameter;

  // accessors -------------------------------------------------------
  enum : int {
    kParameterFieldNumber = 3,
    kInputFieldNumber = 6,
    kOutputFieldNumber = 7,
    kTaskNameFieldNumber = 1,
    kTaskTypeFieldNumber = 2,
  };
  // repeated group Parameter = 3 { ... };
  int parameter_size()
      const;
  private:
  int _internal_parameter_size() const;

  public:
  void clear_parameter() ;
  const ::chrome_lang_id::TaskSpec_Parameter& parameter(int index) const;
  ::chrome_lang_id::TaskSpec_Parameter* PROTOBUF_NONNULL mutable_parameter(int index);
  ::chrome_lang_id::TaskSpec_Parameter* PROTOBUF_NONNULL add_parameter();
  const ::google::protobuf::RepeatedPtrField<::chrome_lang_id::TaskSpec_Parameter>&
  parameter() const;
  ::google::protobuf::RepeatedPtrField<::chrome_lang_id::TaskSpec_Parameter>* PROTOBUF_NONNULL
  mutable_parameter();

  private:
  const ::google::protobuf::RepeatedPtrField<::chrome_lang_id::TaskSpec_Parameter>& _internal_parameter() const;
  ::google::protobuf::RepeatedPtrField<::chrome_lang_id::TaskSpec_Parameter>* PROTOBUF_NONNULL _internal_mutable_parameter();

  public:
  // repeated .chrome_lang_id.TaskInput input = 6;
  int input_size()
      const;
  private:
  int _internal_input_size() const;

  public:
  void clear_input() ;
  const ::chrome_lang_id::TaskInput& input(int index) const;
  ::chrome_lang_id::TaskInput* PROTOBUF_NONNULL mutable_input(int index);
  ::chrome_lang_id::TaskInput* PROTOBUF_NONNULL add_input();
  const ::google::protobuf::RepeatedPtrField<::chrome_lang_id::TaskInput>&
  input() const;
  ::google::protobuf::RepeatedPtrField<::chrome_lang_id::TaskInput>* PROTOBUF_NONNULL
  mutable_input();

  private:
  const ::google::protobuf::RepeatedPtrField<::chrome_lang_id::TaskInput>& _internal_input() const;
  ::google::protobuf::RepeatedPtrField<::chrome_lang_id::TaskInput>* PROTOBUF_NONNULL _internal_mutable_input();

  public:
  // repeated .chrome_lang_id.TaskOutput output = 7;
  int output_size()
      const;
  private:
  int _internal_output_size() const;

  public:
  void clear_output() ;
  const ::chrome_lang_id::TaskOutput& output(int index) const;
  ::chrome_lang_id::TaskOutput* PROTOBUF_NONNULL mutable_output(int index);
  ::chrome_lang_id::TaskOutput* PROTOBUF_NONNULL add_output();
  const ::google::protobuf::RepeatedPtrField<::chrome_lang_id::TaskOutput>&
  output() const;
  ::google::protobuf::RepeatedPtrField<::chrome_lang_id::TaskOutput>* PROTOBUF_NONNULL
  mutable_output();

  private:
  const ::google::protobuf::RepeatedPtrField<::chrome_lang_id::TaskOutput>& _internal_output() const;
  ::google::protobuf::RepeatedPtrField<::chrome_lang_id::TaskOutput>* PROTOBUF_NONNULL _internal_mutable_output();

  public:
  // optional string task_name = 1;
  bool has_task_name()
      const;
  void clear_task_name() ;
  const ::std::string& task_name() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_task_name(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_task_name();
  ::std::string* PROTOBUF_NULLABLE release_task_name();
  void set_allocated_task_name(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_task_name() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_task_name(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_task_name();

  public:
  // optional string task_type = 2;
  bool has_task_type()
      const;
  void clear_task_type() ;
  const ::std::string& task_type() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_task_type(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_task_type();
  ::std::string* PROTOBUF_NULLABLE release_task_type();
  void set_allocated_task_type(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_task_type() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_task_type(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_task_type();

  public:
  // @@protoc_insertion_point(class_scope:chrome_lang_id.TaskSpec)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<3, 5,
                          3, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const TaskSpec& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::RepeatedPtrField< ::chrome_lang_id::TaskSpec_Parameter > parameter_;
    ::google::protobuf::RepeatedPtrField< ::chrome_lang_id::TaskInput > input_;
    ::google::protobuf::RepeatedPtrField< ::chrome_lang_id::TaskOutput > output_;
    ::google::protobuf::internal::ArenaStringPtr task_name_;
    ::google::protobuf::internal::ArenaStringPtr task_type_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_task_5fspec_2eproto;
};

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




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


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

// TaskInput_Part

// optional string file_pattern = 7;
inline bool TaskInput_Part::has_file_pattern() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  return value;
}
inline void TaskInput_Part::clear_file_pattern() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.file_pattern_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::std::string& TaskInput_Part::file_pattern() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:chrome_lang_id.TaskInput.Part.file_pattern)
  return _internal_file_pattern();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void TaskInput_Part::set_file_pattern(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  _impl_.file_pattern_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:chrome_lang_id.TaskInput.Part.file_pattern)
}
inline ::std::string* PROTOBUF_NONNULL TaskInput_Part::mutable_file_pattern()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::std::string* _s = _internal_mutable_file_pattern();
  // @@protoc_insertion_point(field_mutable:chrome_lang_id.TaskInput.Part.file_pattern)
  return _s;
}
inline const ::std::string& TaskInput_Part::_internal_file_pattern() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.file_pattern_.Get();
}
inline void TaskInput_Part::_internal_set_file_pattern(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.file_pattern_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL TaskInput_Part::_internal_mutable_file_pattern() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.file_pattern_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE TaskInput_Part::release_file_pattern() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:chrome_lang_id.TaskInput.Part.file_pattern)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000001U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  auto* released = _impl_.file_pattern_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.file_pattern_.Set("", GetArena());
  }
  return released;
}
inline void TaskInput_Part::set_allocated_file_pattern(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  _impl_.file_pattern_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.file_pattern_.IsDefault()) {
    _impl_.file_pattern_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:chrome_lang_id.TaskInput.Part.file_pattern)
}

// optional string file_format = 8;
inline bool TaskInput_Part::has_file_format() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000002U);
  return value;
}
inline void TaskInput_Part::clear_file_format() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.file_format_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::std::string& TaskInput_Part::file_format() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:chrome_lang_id.TaskInput.Part.file_format)
  return _internal_file_format();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void TaskInput_Part::set_file_format(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  _impl_.file_format_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:chrome_lang_id.TaskInput.Part.file_format)
}
inline ::std::string* PROTOBUF_NONNULL TaskInput_Part::mutable_file_format()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::std::string* _s = _internal_mutable_file_format();
  // @@protoc_insertion_point(field_mutable:chrome_lang_id.TaskInput.Part.file_format)
  return _s;
}
inline const ::std::string& TaskInput_Part::_internal_file_format() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.file_format_.Get();
}
inline void TaskInput_Part::_internal_set_file_format(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.file_format_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL TaskInput_Part::_internal_mutable_file_format() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.file_format_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE TaskInput_Part::release_file_format() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:chrome_lang_id.TaskInput.Part.file_format)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000002U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  auto* released = _impl_.file_format_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.file_format_.Set("", GetArena());
  }
  return released;
}
inline void TaskInput_Part::set_allocated_file_format(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  _impl_.file_format_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.file_format_.IsDefault()) {
    _impl_.file_format_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:chrome_lang_id.TaskInput.Part.file_format)
}

// optional string record_format = 9;
inline bool TaskInput_Part::has_record_format() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000004U);
  return value;
}
inline void TaskInput_Part::clear_record_format() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.record_format_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline const ::std::string& TaskInput_Part::record_format() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:chrome_lang_id.TaskInput.Part.record_format)
  return _internal_record_format();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void TaskInput_Part::set_record_format(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  _impl_.record_format_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:chrome_lang_id.TaskInput.Part.record_format)
}
inline ::std::string* PROTOBUF_NONNULL TaskInput_Part::mutable_record_format()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::std::string* _s = _internal_mutable_record_format();
  // @@protoc_insertion_point(field_mutable:chrome_lang_id.TaskInput.Part.record_format)
  return _s;
}
inline const ::std::string& TaskInput_Part::_internal_record_format() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.record_format_.Get();
}
inline void TaskInput_Part::_internal_set_record_format(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.record_format_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL TaskInput_Part::_internal_mutable_record_format() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.record_format_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE TaskInput_Part::release_record_format() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:chrome_lang_id.TaskInput.Part.record_format)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000004U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  auto* released = _impl_.record_format_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.record_format_.Set("", GetArena());
  }
  return released;
}
inline void TaskInput_Part::set_allocated_record_format(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  }
  _impl_.record_format_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.record_format_.IsDefault()) {
    _impl_.record_format_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:chrome_lang_id.TaskInput.Part.record_format)
}

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

// TaskInput

// required string name = 1;
inline bool TaskInput::has_name() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000008U);
  return value;
}
inline void TaskInput::clear_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.name_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
}
inline const ::std::string& TaskInput::name() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:chrome_lang_id.TaskInput.name)
  return _internal_name();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void TaskInput::set_name(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  _impl_.name_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:chrome_lang_id.TaskInput.name)
}
inline ::std::string* PROTOBUF_NONNULL TaskInput::mutable_name()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  ::std::string* _s = _internal_mutable_name();
  // @@protoc_insertion_point(field_mutable:chrome_lang_id.TaskInput.name)
  return _s;
}
inline const ::std::string& TaskInput::_internal_name() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.name_.Get();
}
inline void TaskInput::_internal_set_name(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.name_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL TaskInput::_internal_mutable_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.name_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE TaskInput::release_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:chrome_lang_id.TaskInput.name)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000008U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  auto* released = _impl_.name_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.name_.Set("", GetArena());
  }
  return released;
}
inline void TaskInput::set_allocated_name(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  }
  _impl_.name_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.name_.IsDefault()) {
    _impl_.name_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:chrome_lang_id.TaskInput.name)
}

// optional string creator = 2;
inline bool TaskInput::has_creator() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000010U);
  return value;
}
inline void TaskInput::clear_creator() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.creator_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
}
inline const ::std::string& TaskInput::creator() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:chrome_lang_id.TaskInput.creator)
  return _internal_creator();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void TaskInput::set_creator(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  _impl_.creator_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:chrome_lang_id.TaskInput.creator)
}
inline ::std::string* PROTOBUF_NONNULL TaskInput::mutable_creator()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  ::std::string* _s = _internal_mutable_creator();
  // @@protoc_insertion_point(field_mutable:chrome_lang_id.TaskInput.creator)
  return _s;
}
inline const ::std::string& TaskInput::_internal_creator() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.creator_.Get();
}
inline void TaskInput::_internal_set_creator(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.creator_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL TaskInput::_internal_mutable_creator() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.creator_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE TaskInput::release_creator() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:chrome_lang_id.TaskInput.creator)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000010U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
  auto* released = _impl_.creator_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.creator_.Set("", GetArena());
  }
  return released;
}
inline void TaskInput::set_allocated_creator(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
  }
  _impl_.creator_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.creator_.IsDefault()) {
    _impl_.creator_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:chrome_lang_id.TaskInput.creator)
}

// repeated string file_format = 3;
inline int TaskInput::_internal_file_format_size() const {
  return _internal_file_format().size();
}
inline int TaskInput::file_format_size() const {
  return _internal_file_format_size();
}
inline void TaskInput::clear_file_format() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.file_format_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline ::std::string* PROTOBUF_NONNULL TaskInput::add_file_format()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::std::string* _s =
      _internal_mutable_file_format()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add_mutable:chrome_lang_id.TaskInput.file_format)
  return _s;
}
inline const ::std::string& TaskInput::file_format(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:chrome_lang_id.TaskInput.file_format)
  return _internal_file_format().Get(index);
}
inline ::std::string* PROTOBUF_NONNULL TaskInput::mutable_file_format(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:chrome_lang_id.TaskInput.file_format)
  return _internal_mutable_file_format()->Mutable(index);
}
template <typename Arg_, typename... Args_>
inline void TaskInput::set_file_format(int index, Arg_&& value, Args_... args) {
  ::google::protobuf::internal::AssignToString(
      *_internal_mutable_file_format()->Mutable(index),
      ::std::forward<Arg_>(value), args... );
  // @@protoc_insertion_point(field_set:chrome_lang_id.TaskInput.file_format)
}
template <typename Arg_, typename... Args_>
inline void TaskInput::add_file_format(Arg_&& value, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::google::protobuf::internal::AddToRepeatedPtrField(
      ::google::protobuf::MessageLite::internal_visibility(), GetArena(),
      *_internal_mutable_file_format(), ::std::forward<Arg_>(value),
      args... );
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add:chrome_lang_id.TaskInput.file_format)
}
inline const ::google::protobuf::RepeatedPtrField<::std::string>& TaskInput::file_format()
    const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:chrome_lang_id.TaskInput.file_format)
  return _internal_file_format();
}
inline ::google::protobuf::RepeatedPtrField<::std::string>* PROTOBUF_NONNULL
TaskInput::mutable_file_format() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_mutable_list:chrome_lang_id.TaskInput.file_format)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_file_format();
}
inline const ::google::protobuf::RepeatedPtrField<::std::string>&
TaskInput::_internal_file_format() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.file_format_;
}
inline ::google::protobuf::RepeatedPtrField<::std::string>* PROTOBUF_NONNULL
TaskInput::_internal_mutable_file_format() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.file_format_;
}

// repeated string record_format = 4;
inline int TaskInput::_internal_record_format_size() const {
  return _internal_record_format().size();
}
inline int TaskInput::record_format_size() const {
  return _internal_record_format_size();
}
inline void TaskInput::clear_record_format() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.record_format_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline ::std::string* PROTOBUF_NONNULL TaskInput::add_record_format()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::std::string* _s =
      _internal_mutable_record_format()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_add_mutable:chrome_lang_id.TaskInput.record_format)
  return _s;
}
inline const ::std::string& TaskInput::record_format(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:chrome_lang_id.TaskInput.record_format)
  return _internal_record_format().Get(index);
}
inline ::std::string* PROTOBUF_NONNULL TaskInput::mutable_record_format(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:chrome_lang_id.TaskInput.record_format)
  return _internal_mutable_record_format()->Mutable(index);
}
template <typename Arg_, typename... Args_>
inline void TaskInput::set_record_format(int index, Arg_&& value, Args_... args) {
  ::google::protobuf::internal::AssignToString(
      *_internal_mutable_record_format()->Mutable(index),
      ::std::forward<Arg_>(value), args... );
  // @@protoc_insertion_point(field_set:chrome_lang_id.TaskInput.record_format)
}
template <typename Arg_, typename... Args_>
inline void TaskInput::add_record_format(Arg_&& value, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::google::protobuf::internal::AddToRepeatedPtrField(
      ::google::protobuf::MessageLite::internal_visibility(), GetArena(),
      *_internal_mutable_record_format(), ::std::forward<Arg_>(value),
      args... );
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_add:chrome_lang_id.TaskInput.record_format)
}
inline const ::google::protobuf::RepeatedPtrField<::std::string>& TaskInput::record_format()
    const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:chrome_lang_id.TaskInput.record_format)
  return _internal_record_format();
}
inline ::google::protobuf::RepeatedPtrField<::std::string>* PROTOBUF_NONNULL
TaskInput::mutable_record_format() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_mutable_list:chrome_lang_id.TaskInput.record_format)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_record_format();
}
inline const ::google::protobuf::RepeatedPtrField<::std::string>&
TaskInput::_internal_record_format() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.record_format_;
}
inline ::google::protobuf::RepeatedPtrField<::std::string>* PROTOBUF_NONNULL
TaskInput::_internal_mutable_record_format() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.record_format_;
}

// optional bool multi_file = 5 [default = false];
inline bool TaskInput::has_multi_file() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000020U);
  return value;
}
inline void TaskInput::clear_multi_file() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.multi_file_ = false;
  ClearHasBit(_impl_._has_bits_[0], 0x00000020U);
}
inline bool TaskInput::multi_file() const {
  // @@protoc_insertion_point(field_get:chrome_lang_id.TaskInput.multi_file)
  return _internal_multi_file();
}
inline void TaskInput::set_multi_file(bool value) {
  _internal_set_multi_file(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000020U);
  // @@protoc_insertion_point(field_set:chrome_lang_id.TaskInput.multi_file)
}
inline bool TaskInput::_internal_multi_file() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.multi_file_;
}
inline void TaskInput::_internal_set_multi_file(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.multi_file_ = value;
}

// repeated group Part = 6 { ... };
inline int TaskInput::_internal_part_size() const {
  return _internal_part().size();
}
inline int TaskInput::part_size() const {
  return _internal_part_size();
}
inline void TaskInput::clear_part() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.part_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline const ::chrome_lang_id::TaskInput_Part& TaskInput::part(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:chrome_lang_id.TaskInput.part)
  return _internal_part().Get(index);
}
inline ::chrome_lang_id::TaskInput_Part* PROTOBUF_NONNULL TaskInput::mutable_part(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:chrome_lang_id.TaskInput.part)
  return _internal_mutable_part()->Mutable(index);
}
inline ::chrome_lang_id::TaskInput_Part* PROTOBUF_NONNULL TaskInput::add_part()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::chrome_lang_id::TaskInput_Part* _add =
      _internal_mutable_part()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  // @@protoc_insertion_point(field_add:chrome_lang_id.TaskInput.part)
  return _add;
}
inline const ::google::protobuf::RepeatedPtrField<::chrome_lang_id::TaskInput_Part>& TaskInput::part() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:chrome_lang_id.TaskInput.part)
  return _internal_part();
}
inline ::google::protobuf::RepeatedPtrField<::chrome_lang_id::TaskInput_Part>* PROTOBUF_NONNULL
TaskInput::mutable_part() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  // @@protoc_insertion_point(field_mutable_list:chrome_lang_id.TaskInput.part)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_part();
}
inline const ::google::protobuf::RepeatedPtrField<::chrome_lang_id::TaskInput_Part>&
TaskInput::_internal_part() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.part_;
}
inline ::google::protobuf::RepeatedPtrField<::chrome_lang_id::TaskInput_Part>* PROTOBUF_NONNULL
TaskInput::_internal_mutable_part() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.part_;
}

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

// TaskOutput

// required string name = 1;
inline bool TaskOutput::has_name() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  return value;
}
inline void TaskOutput::clear_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.name_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::std::string& TaskOutput::name() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:chrome_lang_id.TaskOutput.name)
  return _internal_name();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void TaskOutput::set_name(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  _impl_.name_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:chrome_lang_id.TaskOutput.name)
}
inline ::std::string* PROTOBUF_NONNULL TaskOutput::mutable_name()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::std::string* _s = _internal_mutable_name();
  // @@protoc_insertion_point(field_mutable:chrome_lang_id.TaskOutput.name)
  return _s;
}
inline const ::std::string& TaskOutput::_internal_name() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.name_.Get();
}
inline void TaskOutput::_internal_set_name(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.name_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL TaskOutput::_internal_mutable_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.name_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE TaskOutput::release_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:chrome_lang_id.TaskOutput.name)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000001U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  auto* released = _impl_.name_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.name_.Set("", GetArena());
  }
  return released;
}
inline void TaskOutput::set_allocated_name(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  _impl_.name_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.name_.IsDefault()) {
    _impl_.name_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:chrome_lang_id.TaskOutput.name)
}

// optional string file_format = 2;
inline bool TaskOutput::has_file_format() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000002U);
  return value;
}
inline void TaskOutput::clear_file_format() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.file_format_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::std::string& TaskOutput::file_format() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:chrome_lang_id.TaskOutput.file_format)
  return _internal_file_format();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void TaskOutput::set_file_format(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  _impl_.file_format_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:chrome_lang_id.TaskOutput.file_format)
}
inline ::std::string* PROTOBUF_NONNULL TaskOutput::mutable_file_format()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::std::string* _s = _internal_mutable_file_format();
  // @@protoc_insertion_point(field_mutable:chrome_lang_id.TaskOutput.file_format)
  return _s;
}
inline const ::std::string& TaskOutput::_internal_file_format() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.file_format_.Get();
}
inline void TaskOutput::_internal_set_file_format(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.file_format_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL TaskOutput::_internal_mutable_file_format() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.file_format_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE TaskOutput::release_file_format() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:chrome_lang_id.TaskOutput.file_format)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000002U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  auto* released = _impl_.file_format_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.file_format_.Set("", GetArena());
  }
  return released;
}
inline void TaskOutput::set_allocated_file_format(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  _impl_.file_format_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.file_format_.IsDefault()) {
    _impl_.file_format_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:chrome_lang_id.TaskOutput.file_format)
}

// optional string record_format = 3;
inline bool TaskOutput::has_record_format() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000004U);
  return value;
}
inline void TaskOutput::clear_record_format() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.record_format_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline const ::std::string& TaskOutput::record_format() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:chrome_lang_id.TaskOutput.record_format)
  return _internal_record_format();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void TaskOutput::set_record_format(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  _impl_.record_format_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:chrome_lang_id.TaskOutput.record_format)
}
inline ::std::string* PROTOBUF_NONNULL TaskOutput::mutable_record_format()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::std::string* _s = _internal_mutable_record_format();
  // @@protoc_insertion_point(field_mutable:chrome_lang_id.TaskOutput.record_format)
  return _s;
}
inline const ::std::string& TaskOutput::_internal_record_format() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.record_format_.Get();
}
inline void TaskOutput::_internal_set_record_format(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.record_format_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL TaskOutput::_internal_mutable_record_format() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.record_format_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE TaskOutput::release_record_format() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:chrome_lang_id.TaskOutput.record_format)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000004U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  auto* released = _impl_.record_format_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.record_format_.Set("", GetArena());
  }
  return released;
}
inline void TaskOutput::set_allocated_record_format(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  }
  _impl_.record_format_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.record_format_.IsDefault()) {
    _impl_.record_format_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:chrome_lang_id.TaskOutput.record_format)
}

// optional int32 shards = 4 [default = 0];
inline bool TaskOutput::has_shards() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000020U);
  return value;
}
inline void TaskOutput::clear_shards() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.shards_ = 0;
  ClearHasBit(_impl_._has_bits_[0], 0x00000020U);
}
inline ::int32_t TaskOutput::shards() const {
  // @@protoc_insertion_point(field_get:chrome_lang_id.TaskOutput.shards)
  return _internal_shards();
}
inline void TaskOutput::set_shards(::int32_t value) {
  _internal_set_shards(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000020U);
  // @@protoc_insertion_point(field_set:chrome_lang_id.TaskOutput.shards)
}
inline ::int32_t TaskOutput::_internal_shards() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.shards_;
}
inline void TaskOutput::_internal_set_shards(::int32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.shards_ = value;
}

// optional string file_base = 5;
inline bool TaskOutput::has_file_base() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000008U);
  return value;
}
inline void TaskOutput::clear_file_base() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.file_base_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
}
inline const ::std::string& TaskOutput::file_base() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:chrome_lang_id.TaskOutput.file_base)
  return _internal_file_base();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void TaskOutput::set_file_base(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  _impl_.file_base_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:chrome_lang_id.TaskOutput.file_base)
}
inline ::std::string* PROTOBUF_NONNULL TaskOutput::mutable_file_base()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  ::std::string* _s = _internal_mutable_file_base();
  // @@protoc_insertion_point(field_mutable:chrome_lang_id.TaskOutput.file_base)
  return _s;
}
inline const ::std::string& TaskOutput::_internal_file_base() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.file_base_.Get();
}
inline void TaskOutput::_internal_set_file_base(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.file_base_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL TaskOutput::_internal_mutable_file_base() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.file_base_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE TaskOutput::release_file_base() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:chrome_lang_id.TaskOutput.file_base)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000008U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  auto* released = _impl_.file_base_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.file_base_.Set("", GetArena());
  }
  return released;
}
inline void TaskOutput::set_allocated_file_base(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  }
  _impl_.file_base_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.file_base_.IsDefault()) {
    _impl_.file_base_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:chrome_lang_id.TaskOutput.file_base)
}

// optional string file_extension = 6;
inline bool TaskOutput::has_file_extension() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000010U);
  return value;
}
inline void TaskOutput::clear_file_extension() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.file_extension_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
}
inline const ::std::string& TaskOutput::file_extension() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:chrome_lang_id.TaskOutput.file_extension)
  return _internal_file_extension();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void TaskOutput::set_file_extension(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  _impl_.file_extension_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:chrome_lang_id.TaskOutput.file_extension)
}
inline ::std::string* PROTOBUF_NONNULL TaskOutput::mutable_file_extension()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  ::std::string* _s = _internal_mutable_file_extension();
  // @@protoc_insertion_point(field_mutable:chrome_lang_id.TaskOutput.file_extension)
  return _s;
}
inline const ::std::string& TaskOutput::_internal_file_extension() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.file_extension_.Get();
}
inline void TaskOutput::_internal_set_file_extension(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.file_extension_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL TaskOutput::_internal_mutable_file_extension() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.file_extension_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE TaskOutput::release_file_extension() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:chrome_lang_id.TaskOutput.file_extension)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000010U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
  auto* released = _impl_.file_extension_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.file_extension_.Set("", GetArena());
  }
  return released;
}
inline void TaskOutput::set_allocated_file_extension(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
  }
  _impl_.file_extension_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.file_extension_.IsDefault()) {
    _impl_.file_extension_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:chrome_lang_id.TaskOutput.file_extension)
}

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

// TaskSpec_Parameter

// required string name = 4;
inline bool TaskSpec_Parameter::has_name() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  return value;
}
inline void TaskSpec_Parameter::clear_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.name_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::std::string& TaskSpec_Parameter::name() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:chrome_lang_id.TaskSpec.Parameter.name)
  return _internal_name();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void TaskSpec_Parameter::set_name(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  _impl_.name_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:chrome_lang_id.TaskSpec.Parameter.name)
}
inline ::std::string* PROTOBUF_NONNULL TaskSpec_Parameter::mutable_name()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::std::string* _s = _internal_mutable_name();
  // @@protoc_insertion_point(field_mutable:chrome_lang_id.TaskSpec.Parameter.name)
  return _s;
}
inline const ::std::string& TaskSpec_Parameter::_internal_name() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.name_.Get();
}
inline void TaskSpec_Parameter::_internal_set_name(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.name_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL TaskSpec_Parameter::_internal_mutable_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.name_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE TaskSpec_Parameter::release_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:chrome_lang_id.TaskSpec.Parameter.name)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000001U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  auto* released = _impl_.name_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.name_.Set("", GetArena());
  }
  return released;
}
inline void TaskSpec_Parameter::set_allocated_name(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  _impl_.name_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.name_.IsDefault()) {
    _impl_.name_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:chrome_lang_id.TaskSpec.Parameter.name)
}

// optional string value = 5;
inline bool TaskSpec_Parameter::has_value() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000002U);
  return value;
}
inline void TaskSpec_Parameter::clear_value() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.value_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::std::string& TaskSpec_Parameter::value() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:chrome_lang_id.TaskSpec.Parameter.value)
  return _internal_value();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void TaskSpec_Parameter::set_value(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  _impl_.value_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:chrome_lang_id.TaskSpec.Parameter.value)
}
inline ::std::string* PROTOBUF_NONNULL TaskSpec_Parameter::mutable_value()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::std::string* _s = _internal_mutable_value();
  // @@protoc_insertion_point(field_mutable:chrome_lang_id.TaskSpec.Parameter.value)
  return _s;
}
inline const ::std::string& TaskSpec_Parameter::_internal_value() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.value_.Get();
}
inline void TaskSpec_Parameter::_internal_set_value(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.value_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL TaskSpec_Parameter::_internal_mutable_value() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.value_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE TaskSpec_Parameter::release_value() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:chrome_lang_id.TaskSpec.Parameter.value)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000002U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  auto* released = _impl_.value_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.value_.Set("", GetArena());
  }
  return released;
}
inline void TaskSpec_Parameter::set_allocated_value(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  _impl_.value_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.value_.IsDefault()) {
    _impl_.value_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:chrome_lang_id.TaskSpec.Parameter.value)
}

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

// TaskSpec

// optional string task_name = 1;
inline bool TaskSpec::has_task_name() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000008U);
  return value;
}
inline void TaskSpec::clear_task_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.task_name_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
}
inline const ::std::string& TaskSpec::task_name() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:chrome_lang_id.TaskSpec.task_name)
  return _internal_task_name();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void TaskSpec::set_task_name(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  _impl_.task_name_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:chrome_lang_id.TaskSpec.task_name)
}
inline ::std::string* PROTOBUF_NONNULL TaskSpec::mutable_task_name()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  ::std::string* _s = _internal_mutable_task_name();
  // @@protoc_insertion_point(field_mutable:chrome_lang_id.TaskSpec.task_name)
  return _s;
}
inline const ::std::string& TaskSpec::_internal_task_name() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.task_name_.Get();
}
inline void TaskSpec::_internal_set_task_name(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.task_name_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL TaskSpec::_internal_mutable_task_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.task_name_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE TaskSpec::release_task_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:chrome_lang_id.TaskSpec.task_name)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000008U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  auto* released = _impl_.task_name_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.task_name_.Set("", GetArena());
  }
  return released;
}
inline void TaskSpec::set_allocated_task_name(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  }
  _impl_.task_name_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.task_name_.IsDefault()) {
    _impl_.task_name_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:chrome_lang_id.TaskSpec.task_name)
}

// optional string task_type = 2;
inline bool TaskSpec::has_task_type() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000010U);
  return value;
}
inline void TaskSpec::clear_task_type() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.task_type_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
}
inline const ::std::string& TaskSpec::task_type() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:chrome_lang_id.TaskSpec.task_type)
  return _internal_task_type();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void TaskSpec::set_task_type(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  _impl_.task_type_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:chrome_lang_id.TaskSpec.task_type)
}
inline ::std::string* PROTOBUF_NONNULL TaskSpec::mutable_task_type()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  ::std::string* _s = _internal_mutable_task_type();
  // @@protoc_insertion_point(field_mutable:chrome_lang_id.TaskSpec.task_type)
  return _s;
}
inline const ::std::string& TaskSpec::_internal_task_type() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.task_type_.Get();
}
inline void TaskSpec::_internal_set_task_type(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.task_type_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL TaskSpec::_internal_mutable_task_type() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.task_type_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE TaskSpec::release_task_type() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:chrome_lang_id.TaskSpec.task_type)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000010U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
  auto* released = _impl_.task_type_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.task_type_.Set("", GetArena());
  }
  return released;
}
inline void TaskSpec::set_allocated_task_type(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
  }
  _impl_.task_type_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.task_type_.IsDefault()) {
    _impl_.task_type_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:chrome_lang_id.TaskSpec.task_type)
}

// repeated group Parameter = 3 { ... };
inline int TaskSpec::_internal_parameter_size() const {
  return _internal_parameter().size();
}
inline int TaskSpec::parameter_size() const {
  return _internal_parameter_size();
}
inline void TaskSpec::clear_parameter() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.parameter_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::chrome_lang_id::TaskSpec_Parameter& TaskSpec::parameter(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:chrome_lang_id.TaskSpec.parameter)
  return _internal_parameter().Get(index);
}
inline ::chrome_lang_id::TaskSpec_Parameter* PROTOBUF_NONNULL TaskSpec::mutable_parameter(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:chrome_lang_id.TaskSpec.parameter)
  return _internal_mutable_parameter()->Mutable(index);
}
inline ::chrome_lang_id::TaskSpec_Parameter* PROTOBUF_NONNULL TaskSpec::add_parameter()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::chrome_lang_id::TaskSpec_Parameter* _add =
      _internal_mutable_parameter()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add:chrome_lang_id.TaskSpec.parameter)
  return _add;
}
inline const ::google::protobuf::RepeatedPtrField<::chrome_lang_id::TaskSpec_Parameter>& TaskSpec::parameter() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:chrome_lang_id.TaskSpec.parameter)
  return _internal_parameter();
}
inline ::google::protobuf::RepeatedPtrField<::chrome_lang_id::TaskSpec_Parameter>* PROTOBUF_NONNULL
TaskSpec::mutable_parameter() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_mutable_list:chrome_lang_id.TaskSpec.parameter)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_parameter();
}
inline const ::google::protobuf::RepeatedPtrField<::chrome_lang_id::TaskSpec_Parameter>&
TaskSpec::_internal_parameter() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.parameter_;
}
inline ::google::protobuf::RepeatedPtrField<::chrome_lang_id::TaskSpec_Parameter>* PROTOBUF_NONNULL
TaskSpec::_internal_mutable_parameter() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.parameter_;
}

// repeated .chrome_lang_id.TaskInput input = 6;
inline int TaskSpec::_internal_input_size() const {
  return _internal_input().size();
}
inline int TaskSpec::input_size() const {
  return _internal_input_size();
}
inline void TaskSpec::clear_input() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.input_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::chrome_lang_id::TaskInput& TaskSpec::input(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:chrome_lang_id.TaskSpec.input)
  return _internal_input().Get(index);
}
inline ::chrome_lang_id::TaskInput* PROTOBUF_NONNULL TaskSpec::mutable_input(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:chrome_lang_id.TaskSpec.input)
  return _internal_mutable_input()->Mutable(index);
}
inline ::chrome_lang_id::TaskInput* PROTOBUF_NONNULL TaskSpec::add_input()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::chrome_lang_id::TaskInput* _add =
      _internal_mutable_input()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_add:chrome_lang_id.TaskSpec.input)
  return _add;
}
inline const ::google::protobuf::RepeatedPtrField<::chrome_lang_id::TaskInput>& TaskSpec::input() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:chrome_lang_id.TaskSpec.input)
  return _internal_input();
}
inline ::google::protobuf::RepeatedPtrField<::chrome_lang_id::TaskInput>* PROTOBUF_NONNULL
TaskSpec::mutable_input() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_mutable_list:chrome_lang_id.TaskSpec.input)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_input();
}
inline const ::google::protobuf::RepeatedPtrField<::chrome_lang_id::TaskInput>&
TaskSpec::_internal_input() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.input_;
}
inline ::google::protobuf::RepeatedPtrField<::chrome_lang_id::TaskInput>* PROTOBUF_NONNULL
TaskSpec::_internal_mutable_input() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.input_;
}

// repeated .chrome_lang_id.TaskOutput output = 7;
inline int TaskSpec::_internal_output_size() const {
  return _internal_output().size();
}
inline int TaskSpec::output_size() const {
  return _internal_output_size();
}
inline void TaskSpec::clear_output() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.output_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline const ::chrome_lang_id::TaskOutput& TaskSpec::output(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:chrome_lang_id.TaskSpec.output)
  return _internal_output().Get(index);
}
inline ::chrome_lang_id::TaskOutput* PROTOBUF_NONNULL TaskSpec::mutable_output(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:chrome_lang_id.TaskSpec.output)
  return _internal_mutable_output()->Mutable(index);
}
inline ::chrome_lang_id::TaskOutput* PROTOBUF_NONNULL TaskSpec::add_output()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::chrome_lang_id::TaskOutput* _add =
      _internal_mutable_output()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  // @@protoc_insertion_point(field_add:chrome_lang_id.TaskSpec.output)
  return _add;
}
inline const ::google::protobuf::RepeatedPtrField<::chrome_lang_id::TaskOutput>& TaskSpec::output() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:chrome_lang_id.TaskSpec.output)
  return _internal_output();
}
inline ::google::protobuf::RepeatedPtrField<::chrome_lang_id::TaskOutput>* PROTOBUF_NONNULL
TaskSpec::mutable_output() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  // @@protoc_insertion_point(field_mutable_list:chrome_lang_id.TaskSpec.output)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_output();
}
inline const ::google::protobuf::RepeatedPtrField<::chrome_lang_id::TaskOutput>&
TaskSpec::_internal_output() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.output_;
}
inline ::google::protobuf::RepeatedPtrField<::chrome_lang_id::TaskOutput>* PROTOBUF_NONNULL
TaskSpec::_internal_mutable_output() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.output_;
}

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

// @@protoc_insertion_point(namespace_scope)
}  // namespace chrome_lang_id


// @@protoc_insertion_point(global_scope)

#include "google/protobuf/port_undef.inc"
// clang-format on

#endif  // task_5fspec_2eproto_2epb_2eh
