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

#ifndef lens_5foverlay_5fservice_5fdeps_2eproto_2epb_2eh
#define lens_5foverlay_5fservice_5fdeps_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
#include "google/protobuf/generated_enum_util.h"
#include "lens_overlay_client_context.pb.h"
#include "lens_overlay_cluster_info.pb.h"
#include "lens_overlay_content_metadata.pb.h"
#include "lens_overlay_deep_gleam_data.pb.h"
#include "lens_overlay_document.pb.h"
#include "lens_overlay_image_crop.pb.h"
#include "lens_overlay_image_data.pb.h"
#include "lens_overlay_interaction_request_metadata.pb.h"
#include "lens_overlay_overlay_object.pb.h"
#include "lens_overlay_request_id.pb.h"
#include "lens_overlay_request_type.pb.h"
#include "lens_overlay_text.pb.h"
// @@protoc_insertion_point(includes)

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

#define PROTOBUF_INTERNAL_EXPORT_lens_5foverlay_5fservice_5fdeps_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_lens_5foverlay_5fservice_5fdeps_2eproto {
  static const ::uint32_t offsets[];
};
namespace lens {
enum CompressionType : int;
extern const uint32_t CompressionType_internal_data_[];
enum ContentData_ContentType : int;
extern const uint32_t ContentData_ContentType_internal_data_[];
class ChunkDebugMetadata;
struct ChunkDebugMetadataGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern ChunkDebugMetadataGlobalsTypeInternal ChunkDebugMetadata_globals_;
extern const ::google::protobuf::internal::ClassDataLite ChunkDebugMetadata_class_data_;
#else
extern const ChunkDebugMetadataGlobalsTypeInternal ChunkDebugMetadata_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class ChunkDebugOptions;
struct ChunkDebugOptionsGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern ChunkDebugOptionsGlobalsTypeInternal ChunkDebugOptions_globals_;
extern const ::google::protobuf::internal::ClassDataLite ChunkDebugOptions_class_data_;
#else
extern const ChunkDebugOptionsGlobalsTypeInternal ChunkDebugOptions_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class Content;
struct ContentGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern ContentGlobalsTypeInternal Content_globals_;
extern const ::google::protobuf::internal::ClassDataLite Content_class_data_;
#else
extern const ContentGlobalsTypeInternal Content_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class ContentData;
struct ContentDataGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern ContentDataGlobalsTypeInternal ContentData_globals_;
extern const ::google::protobuf::internal::ClassDataLite ContentData_class_data_;
#else
extern const ContentDataGlobalsTypeInternal ContentData_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class LensOverlayInteractionRequest;
struct LensOverlayInteractionRequestGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern LensOverlayInteractionRequestGlobalsTypeInternal LensOverlayInteractionRequest_globals_;
extern const ::google::protobuf::internal::ClassDataLite LensOverlayInteractionRequest_class_data_;
#else
extern const LensOverlayInteractionRequestGlobalsTypeInternal LensOverlayInteractionRequest_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class LensOverlayInteractionResponse;
struct LensOverlayInteractionResponseGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern LensOverlayInteractionResponseGlobalsTypeInternal LensOverlayInteractionResponse_globals_;
extern const ::google::protobuf::internal::ClassDataLite LensOverlayInteractionResponse_class_data_;
#else
extern const LensOverlayInteractionResponseGlobalsTypeInternal LensOverlayInteractionResponse_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class LensOverlayObjectsRequest;
struct LensOverlayObjectsRequestGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern LensOverlayObjectsRequestGlobalsTypeInternal LensOverlayObjectsRequest_globals_;
extern const ::google::protobuf::internal::ClassDataLite LensOverlayObjectsRequest_class_data_;
#else
extern const LensOverlayObjectsRequestGlobalsTypeInternal LensOverlayObjectsRequest_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class LensOverlayObjectsResponse;
struct LensOverlayObjectsResponseGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern LensOverlayObjectsResponseGlobalsTypeInternal LensOverlayObjectsResponse_globals_;
extern const ::google::protobuf::internal::ClassDataLite LensOverlayObjectsResponse_class_data_;
#else
extern const LensOverlayObjectsResponseGlobalsTypeInternal LensOverlayObjectsResponse_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class LensOverlayRequestContext;
struct LensOverlayRequestContextGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern LensOverlayRequestContextGlobalsTypeInternal LensOverlayRequestContext_globals_;
extern const ::google::protobuf::internal::ClassDataLite LensOverlayRequestContext_class_data_;
#else
extern const LensOverlayRequestContextGlobalsTypeInternal LensOverlayRequestContext_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class LensOverlayUploadChunkRequest;
struct LensOverlayUploadChunkRequestGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern LensOverlayUploadChunkRequestGlobalsTypeInternal LensOverlayUploadChunkRequest_globals_;
extern const ::google::protobuf::internal::ClassDataLite LensOverlayUploadChunkRequest_class_data_;
#else
extern const LensOverlayUploadChunkRequestGlobalsTypeInternal LensOverlayUploadChunkRequest_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class LensOverlayUploadChunkResponse;
struct LensOverlayUploadChunkResponseGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern LensOverlayUploadChunkResponseGlobalsTypeInternal LensOverlayUploadChunkResponse_globals_;
extern const ::google::protobuf::internal::ClassDataLite LensOverlayUploadChunkResponse_class_data_;
#else
extern const LensOverlayUploadChunkResponseGlobalsTypeInternal LensOverlayUploadChunkResponse_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class Payload;
struct PayloadGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern PayloadGlobalsTypeInternal Payload_globals_;
extern const ::google::protobuf::internal::ClassDataLite Payload_class_data_;
#else
extern const PayloadGlobalsTypeInternal Payload_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class StoredChunkOptions;
struct StoredChunkOptionsGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern StoredChunkOptionsGlobalsTypeInternal StoredChunkOptions_globals_;
extern const ::google::protobuf::internal::ClassDataLite StoredChunkOptions_class_data_;
#else
extern const StoredChunkOptionsGlobalsTypeInternal StoredChunkOptions_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class ViewportRequestContext;
struct ViewportRequestContextGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern ViewportRequestContextGlobalsTypeInternal ViewportRequestContext_globals_;
extern const ::google::protobuf::internal::ClassDataLite ViewportRequestContext_class_data_;
#else
extern const ViewportRequestContextGlobalsTypeInternal ViewportRequestContext_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
}  // namespace lens
namespace google {
namespace protobuf {
template <>
internal::EnumTraitsT<::lens::CompressionType_internal_data_>
    internal::EnumTraitsImpl::value<::lens::CompressionType>;
template <>
internal::EnumTraitsT<::lens::ContentData_ContentType_internal_data_>
    internal::EnumTraitsImpl::value<::lens::ContentData_ContentType>;
}  // namespace protobuf
}  // namespace google

namespace lens {
enum ContentData_ContentType : int {
  ContentData_ContentType_CONTENT_TYPE_UNSPECIFIED = 0,
  ContentData_ContentType_CONTENT_TYPE_PDF = 1,
  ContentData_ContentType_CONTENT_TYPE_INNER_TEXT = 2,
  ContentData_ContentType_CONTENT_TYPE_INNER_HTML = 3,
  ContentData_ContentType_CONTENT_TYPE_ANNOTATED_PAGE_CONTENT = 4,
  ContentData_ContentType_CONTENT_TYPE_EARLY_PARTIAL_PDF = 5,
  ContentData_ContentType_ContentData_ContentType_INT_MIN_SENTINEL_DO_NOT_USE_ =
      ::std::numeric_limits<::int32_t>::min(),
  ContentData_ContentType_ContentData_ContentType_INT_MAX_SENTINEL_DO_NOT_USE_ =
      ::std::numeric_limits<::int32_t>::max(),
};

extern const uint32_t ContentData_ContentType_internal_data_[];
inline constexpr ContentData_ContentType ContentData_ContentType_ContentType_MIN =
    static_cast<ContentData_ContentType>(0);
inline constexpr ContentData_ContentType ContentData_ContentType_ContentType_MAX =
    static_cast<ContentData_ContentType>(5);
inline bool ContentData_ContentType_IsValid(int value) {
  return 0 <= value && value <= 5;
}
inline constexpr int ContentData_ContentType_ContentType_ARRAYSIZE = 5 + 1;
const ::std::string& ContentData_ContentType_Name(ContentData_ContentType value);
template <typename T>
const ::std::string& ContentData_ContentType_Name(T value) {
  static_assert(::std::is_same<T, ContentData_ContentType>::value ||
                    ::std::is_integral<T>::value,
                "Incorrect type passed to ContentType_Name().");
  return ContentData_ContentType_Name(static_cast<ContentData_ContentType>(value));
}
bool ContentData_ContentType_Parse(
    ::absl::string_view name, ContentData_ContentType* PROTOBUF_NONNULL value);
enum CompressionType : int {
  UNCOMPRESSED = 0,
  ZSTD = 1,
  CompressionType_INT_MIN_SENTINEL_DO_NOT_USE_ =
      ::std::numeric_limits<::int32_t>::min(),
  CompressionType_INT_MAX_SENTINEL_DO_NOT_USE_ =
      ::std::numeric_limits<::int32_t>::max(),
};

extern const uint32_t CompressionType_internal_data_[];
inline constexpr CompressionType CompressionType_MIN =
    static_cast<CompressionType>(0);
inline constexpr CompressionType CompressionType_MAX =
    static_cast<CompressionType>(1);
inline bool CompressionType_IsValid(int value) {
  return 0 <= value && value <= 1;
}
inline constexpr int CompressionType_ARRAYSIZE = 1 + 1;
const ::std::string& CompressionType_Name(CompressionType value);
template <typename T>
const ::std::string& CompressionType_Name(T value) {
  static_assert(::std::is_same<T, CompressionType>::value ||
                    ::std::is_integral<T>::value,
                "Incorrect type passed to CompressionType_Name().");
  return CompressionType_Name(static_cast<CompressionType>(value));
}
bool CompressionType_Parse(
    ::absl::string_view name, CompressionType* PROTOBUF_NONNULL value);
using ::google::protobuf::internal::generated_enum::AbslParseFlag;
using ::google::protobuf::internal::generated_enum::AbslUnparseFlag;

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


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

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

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

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

  inline ViewportRequestContext(const ViewportRequestContext& from) : ViewportRequestContext(nullptr, from) {}
  inline ViewportRequestContext(ViewportRequestContext&& from) noexcept : ViewportRequestContext(nullptr, ::std::move(from)) {}
  inline ViewportRequestContext& operator=(const ViewportRequestContext& from) {
    CopyFrom(from);
    return *this;
  }
  inline ViewportRequestContext& operator=(ViewportRequestContext&& 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 ViewportRequestContext& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<ViewportRequestContext>(&ViewportRequestContext_globals_);
  }
  static constexpr int kIndexInFileMessages = 1;
  friend void swap(ViewportRequestContext& a, ViewportRequestContext& b) { a.Swap(&b); }
  PROTOBUF_NOINLINE void Swap(ViewportRequestContext* 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(ViewportRequestContext* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  ViewportRequestContext* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::MessageLite::DefaultConstruct<ViewportRequestContext>(arena);
  }
  void CopyFrom(const ViewportRequestContext& from);
  void MergeFrom(const ViewportRequestContext& from) { ViewportRequestContext::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(ViewportRequestContext* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "lens.ViewportRequestContext"; }

  explicit ViewportRequestContext(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  ViewportRequestContext(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const ViewportRequestContext& from);
  ViewportRequestContext(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, ViewportRequestContext&& from) noexcept
      : ViewportRequestContext(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 {
    kPdfPageNumberFieldNumber = 1,
  };
  // int32 pdf_page_number = 1;
  void clear_pdf_page_number() ;
  ::int32_t pdf_page_number() const;
  void set_pdf_page_number(::int32_t value);

  private:
  ::int32_t _internal_pdf_page_number() const;
  void _internal_set_pdf_page_number(::int32_t value);

  public:
  // @@protoc_insertion_point(class_scope:lens.ViewportRequestContext)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<0, 1,
                          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 ViewportRequestContext& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::int32_t pdf_page_number_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_lens_5foverlay_5fservice_5fdeps_2eproto;
};
// -------------------------------------------------------------------

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

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

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

  inline StoredChunkOptions(const StoredChunkOptions& from) : StoredChunkOptions(nullptr, from) {}
  inline StoredChunkOptions(StoredChunkOptions&& from) noexcept : StoredChunkOptions(nullptr, ::std::move(from)) {}
  inline StoredChunkOptions& operator=(const StoredChunkOptions& from) {
    CopyFrom(from);
    return *this;
  }
  inline StoredChunkOptions& operator=(StoredChunkOptions&& 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 StoredChunkOptions& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<StoredChunkOptions>(&StoredChunkOptions_globals_);
  }
  static constexpr int kIndexInFileMessages = 11;
  friend void swap(StoredChunkOptions& a, StoredChunkOptions& b) { a.Swap(&b); }
  PROTOBUF_NOINLINE void Swap(StoredChunkOptions* 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(StoredChunkOptions* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  StoredChunkOptions* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::MessageLite::DefaultConstruct<StoredChunkOptions>(arena);
  }
  void CopyFrom(const StoredChunkOptions& from);
  void MergeFrom(const StoredChunkOptions& from) { StoredChunkOptions::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(StoredChunkOptions* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "lens.StoredChunkOptions"; }

  explicit StoredChunkOptions(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  StoredChunkOptions(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const StoredChunkOptions& from);
  StoredChunkOptions(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, StoredChunkOptions&& from) noexcept
      : StoredChunkOptions(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 {
    kTotalStoredChunksFieldNumber = 2,
    kReadStoredChunksFieldNumber = 1,
    kIsReadRetryFieldNumber = 3,
  };
  // int64 total_stored_chunks = 2;
  void clear_total_stored_chunks() ;
  ::int64_t total_stored_chunks() const;
  void set_total_stored_chunks(::int64_t value);

  private:
  ::int64_t _internal_total_stored_chunks() const;
  void _internal_set_total_stored_chunks(::int64_t value);

  public:
  // bool read_stored_chunks = 1;
  void clear_read_stored_chunks() ;
  bool read_stored_chunks() const;
  void set_read_stored_chunks(bool value);

  private:
  bool _internal_read_stored_chunks() const;
  void _internal_set_read_stored_chunks(bool value);

  public:
  // bool is_read_retry = 3;
  void clear_is_read_retry() ;
  bool is_read_retry() const;
  void set_is_read_retry(bool value);

  private:
  bool _internal_is_read_retry() const;
  void _internal_set_is_read_retry(bool value);

  public:
  // @@protoc_insertion_point(class_scope:lens.StoredChunkOptions)
 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 StoredChunkOptions& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::int64_t total_stored_chunks_;
    bool read_stored_chunks_;
    bool is_read_retry_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_lens_5foverlay_5fservice_5fdeps_2eproto;
};
// -------------------------------------------------------------------

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

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

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

  inline ChunkDebugOptions(const ChunkDebugOptions& from) : ChunkDebugOptions(nullptr, from) {}
  inline ChunkDebugOptions(ChunkDebugOptions&& from) noexcept : ChunkDebugOptions(nullptr, ::std::move(from)) {}
  inline ChunkDebugOptions& operator=(const ChunkDebugOptions& from) {
    CopyFrom(from);
    return *this;
  }
  inline ChunkDebugOptions& operator=(ChunkDebugOptions&& 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 ChunkDebugOptions& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<ChunkDebugOptions>(&ChunkDebugOptions_globals_);
  }
  static constexpr int kIndexInFileMessages = 5;
  friend void swap(ChunkDebugOptions& a, ChunkDebugOptions& b) { a.Swap(&b); }
  PROTOBUF_NOINLINE void Swap(ChunkDebugOptions* 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(ChunkDebugOptions* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  ChunkDebugOptions* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::MessageLite::DefaultConstruct<ChunkDebugOptions>(arena);
  }
  void CopyFrom(const ChunkDebugOptions& from);
  void MergeFrom(const ChunkDebugOptions& from) { ChunkDebugOptions::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(ChunkDebugOptions* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "lens.ChunkDebugOptions"; }

  explicit ChunkDebugOptions(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  ChunkDebugOptions(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const ChunkDebugOptions& from);
  ChunkDebugOptions(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, ChunkDebugOptions&& from) noexcept
      : ChunkDebugOptions(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 {
    kTotalChunksFieldNumber = 1,
    kQueryChunksFieldNumber = 2,
  };
  // int64 total_chunks = 1;
  void clear_total_chunks() ;
  ::int64_t total_chunks() const;
  void set_total_chunks(::int64_t value);

  private:
  ::int64_t _internal_total_chunks() const;
  void _internal_set_total_chunks(::int64_t value);

  public:
  // bool query_chunks = 2;
  void clear_query_chunks() ;
  bool query_chunks() const;
  void set_query_chunks(bool value);

  private:
  bool _internal_query_chunks() const;
  void _internal_set_query_chunks(bool value);

  public:
  // @@protoc_insertion_point(class_scope:lens.ChunkDebugOptions)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<1, 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 ChunkDebugOptions& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::int64_t total_chunks_;
    bool query_chunks_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_lens_5foverlay_5fservice_5fdeps_2eproto;
};
// -------------------------------------------------------------------

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

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

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

  inline ChunkDebugMetadata(const ChunkDebugMetadata& from) : ChunkDebugMetadata(nullptr, from) {}
  inline ChunkDebugMetadata(ChunkDebugMetadata&& from) noexcept : ChunkDebugMetadata(nullptr, ::std::move(from)) {}
  inline ChunkDebugMetadata& operator=(const ChunkDebugMetadata& from) {
    CopyFrom(from);
    return *this;
  }
  inline ChunkDebugMetadata& operator=(ChunkDebugMetadata&& 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 ChunkDebugMetadata& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<ChunkDebugMetadata>(&ChunkDebugMetadata_globals_);
  }
  static constexpr int kIndexInFileMessages = 6;
  friend void swap(ChunkDebugMetadata& a, ChunkDebugMetadata& b) { a.Swap(&b); }
  PROTOBUF_NOINLINE void Swap(ChunkDebugMetadata* 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(ChunkDebugMetadata* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  ChunkDebugMetadata* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::MessageLite::DefaultConstruct<ChunkDebugMetadata>(arena);
  }
  void CopyFrom(const ChunkDebugMetadata& from);
  void MergeFrom(const ChunkDebugMetadata& from) { ChunkDebugMetadata::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(ChunkDebugMetadata* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "lens.ChunkDebugMetadata"; }

  explicit ChunkDebugMetadata(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  ChunkDebugMetadata(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const ChunkDebugMetadata& from);
  ChunkDebugMetadata(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, ChunkDebugMetadata&& from) noexcept
      : ChunkDebugMetadata(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 {
    kRemainingChunksFieldNumber = 1,
  };
  // repeated int64 remaining_chunks = 1;
  int remaining_chunks_size()
      const;
  private:
  int _internal_remaining_chunks_size() const;

  public:
  void clear_remaining_chunks() ;
  ::int64_t remaining_chunks(int index) const;
  void set_remaining_chunks(int index, ::int64_t value);
  void add_remaining_chunks(::int64_t value);
  const ::google::protobuf::RepeatedField<::int64_t>& remaining_chunks()
      const;
  ::google::protobuf::RepeatedField<::int64_t>* PROTOBUF_NONNULL mutable_remaining_chunks();

  private:
  const ::google::protobuf::RepeatedField<::int64_t>& _internal_remaining_chunks() const;
  ::google::protobuf::RepeatedField<::int64_t>* PROTOBUF_NONNULL _internal_mutable_remaining_chunks();

  public:
  // @@protoc_insertion_point(class_scope:lens.ChunkDebugMetadata)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<0, 1,
                          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 ChunkDebugMetadata& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::RepeatedField<::int64_t> remaining_chunks_;
    ::google::protobuf::internal::CachedSize _remaining_chunks_cached_byte_size_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_lens_5foverlay_5fservice_5fdeps_2eproto;
};
// -------------------------------------------------------------------

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

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

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

  inline LensOverlayUploadChunkResponse(const LensOverlayUploadChunkResponse& from) : LensOverlayUploadChunkResponse(nullptr, from) {}
  inline LensOverlayUploadChunkResponse(LensOverlayUploadChunkResponse&& from) noexcept : LensOverlayUploadChunkResponse(nullptr, ::std::move(from)) {}
  inline LensOverlayUploadChunkResponse& operator=(const LensOverlayUploadChunkResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline LensOverlayUploadChunkResponse& operator=(LensOverlayUploadChunkResponse&& 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 LensOverlayUploadChunkResponse& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<LensOverlayUploadChunkResponse>(&LensOverlayUploadChunkResponse_globals_);
  }
  static constexpr int kIndexInFileMessages = 4;
  friend void swap(LensOverlayUploadChunkResponse& a, LensOverlayUploadChunkResponse& b) { a.Swap(&b); }
  PROTOBUF_NOINLINE void Swap(LensOverlayUploadChunkResponse* 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(LensOverlayUploadChunkResponse* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  LensOverlayUploadChunkResponse* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::MessageLite::DefaultConstruct<LensOverlayUploadChunkResponse>(arena);
  }
  void CopyFrom(const LensOverlayUploadChunkResponse& from);
  void MergeFrom(const LensOverlayUploadChunkResponse& from) { LensOverlayUploadChunkResponse::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(LensOverlayUploadChunkResponse* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "lens.LensOverlayUploadChunkResponse"; }

  explicit LensOverlayUploadChunkResponse(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  LensOverlayUploadChunkResponse(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const LensOverlayUploadChunkResponse& from);
  LensOverlayUploadChunkResponse(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, LensOverlayUploadChunkResponse&& from) noexcept
      : LensOverlayUploadChunkResponse(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 {
    kDebugMetadataFieldNumber = 2,
  };
  // .lens.ChunkDebugMetadata debug_metadata = 2;
  bool has_debug_metadata()
      const;
  void clear_debug_metadata() ;
  const ::lens::ChunkDebugMetadata& debug_metadata() const;
  ::lens::ChunkDebugMetadata* PROTOBUF_NULLABLE release_debug_metadata();
  ::lens::ChunkDebugMetadata* PROTOBUF_NONNULL mutable_debug_metadata();
  void set_allocated_debug_metadata(::lens::ChunkDebugMetadata* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_debug_metadata(::lens::ChunkDebugMetadata* PROTOBUF_NULLABLE value);
  ::lens::ChunkDebugMetadata* PROTOBUF_NULLABLE unsafe_arena_release_debug_metadata();

  private:
  const ::lens::ChunkDebugMetadata& _internal_debug_metadata() const;
  ::lens::ChunkDebugMetadata* PROTOBUF_NONNULL _internal_mutable_debug_metadata();

  public:
  // @@protoc_insertion_point(class_scope:lens.LensOverlayUploadChunkResponse)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<0, 1,
                          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 LensOverlayUploadChunkResponse& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::lens::ChunkDebugMetadata* PROTOBUF_NULLABLE debug_metadata_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_lens_5foverlay_5fservice_5fdeps_2eproto;
};
// -------------------------------------------------------------------

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

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

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

  inline ContentData(const ContentData& from) : ContentData(nullptr, from) {}
  inline ContentData(ContentData&& from) noexcept : ContentData(nullptr, ::std::move(from)) {}
  inline ContentData& operator=(const ContentData& from) {
    CopyFrom(from);
    return *this;
  }
  inline ContentData& operator=(ContentData&& 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 ContentData& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<ContentData>(&ContentData_globals_);
  }
  static constexpr int kIndexInFileMessages = 13;
  friend void swap(ContentData& a, ContentData& b) { a.Swap(&b); }
  PROTOBUF_NOINLINE void Swap(ContentData* 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(ContentData* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  ContentData* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::MessageLite::DefaultConstruct<ContentData>(arena);
  }
  void CopyFrom(const ContentData& from);
  void MergeFrom(const ContentData& from) { ContentData::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(ContentData* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "lens.ContentData"; }

  explicit ContentData(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  ContentData(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const ContentData& from);
  ContentData(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, ContentData&& from) noexcept
      : ContentData(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 ContentType = ContentData_ContentType;
  static constexpr ContentType CONTENT_TYPE_UNSPECIFIED = ContentData_ContentType_CONTENT_TYPE_UNSPECIFIED;
  static constexpr ContentType CONTENT_TYPE_PDF = ContentData_ContentType_CONTENT_TYPE_PDF;
  static constexpr ContentType CONTENT_TYPE_INNER_TEXT = ContentData_ContentType_CONTENT_TYPE_INNER_TEXT;
  static constexpr ContentType CONTENT_TYPE_INNER_HTML = ContentData_ContentType_CONTENT_TYPE_INNER_HTML;
  static constexpr ContentType CONTENT_TYPE_ANNOTATED_PAGE_CONTENT = ContentData_ContentType_CONTENT_TYPE_ANNOTATED_PAGE_CONTENT;
  static constexpr ContentType CONTENT_TYPE_EARLY_PARTIAL_PDF = ContentData_ContentType_CONTENT_TYPE_EARLY_PARTIAL_PDF;
  static inline bool ContentType_IsValid(int value) {
    return ContentData_ContentType_IsValid(value);
  }
  static constexpr ContentType ContentType_MIN = ContentData_ContentType_ContentType_MIN;
  static constexpr ContentType ContentType_MAX = ContentData_ContentType_ContentType_MAX;
  static constexpr int ContentType_ARRAYSIZE = ContentData_ContentType_ContentType_ARRAYSIZE;
  template <typename T>
  static inline const ::std::string& ContentType_Name(T value) {
    return ContentData_ContentType_Name(value);
  }
  static inline bool ContentType_Parse(
      ::absl::string_view name, ContentType* PROTOBUF_NONNULL value) {
    return ContentData_ContentType_Parse(name, value);
  }

  // accessors -------------------------------------------------------
  enum : int {
    kDataFieldNumber = 2,
    kStoredChunkOptionsFieldNumber = 4,
    kContentTypeFieldNumber = 1,
    kCompressionTypeFieldNumber = 3,
  };
  // bytes data = 2;
  void clear_data() ;
  const ::std::string& data() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_data(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_data();
  ::std::string* PROTOBUF_NULLABLE release_data();
  void set_allocated_data(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_data() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_data(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_data();

  public:
  // .lens.StoredChunkOptions stored_chunk_options = 4;
  bool has_stored_chunk_options()
      const;
  void clear_stored_chunk_options() ;
  const ::lens::StoredChunkOptions& stored_chunk_options() const;
  ::lens::StoredChunkOptions* PROTOBUF_NULLABLE release_stored_chunk_options();
  ::lens::StoredChunkOptions* PROTOBUF_NONNULL mutable_stored_chunk_options();
  void set_allocated_stored_chunk_options(::lens::StoredChunkOptions* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_stored_chunk_options(::lens::StoredChunkOptions* PROTOBUF_NULLABLE value);
  ::lens::StoredChunkOptions* PROTOBUF_NULLABLE unsafe_arena_release_stored_chunk_options();

  private:
  const ::lens::StoredChunkOptions& _internal_stored_chunk_options() const;
  ::lens::StoredChunkOptions* PROTOBUF_NONNULL _internal_mutable_stored_chunk_options();

  public:
  // .lens.ContentData.ContentType content_type = 1;
  void clear_content_type() ;
  ::lens::ContentData_ContentType content_type() const;
  void set_content_type(::lens::ContentData_ContentType value);

  private:
  ::lens::ContentData_ContentType _internal_content_type() const;
  void _internal_set_content_type(::lens::ContentData_ContentType value);

  public:
  // .lens.CompressionType compression_type = 3;
  void clear_compression_type() ;
  ::lens::CompressionType compression_type() const;
  void set_compression_type(::lens::CompressionType value);

  private:
  ::lens::CompressionType _internal_compression_type() const;
  void _internal_set_compression_type(::lens::CompressionType value);

  public:
  // @@protoc_insertion_point(class_scope:lens.ContentData)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<2, 4,
                          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 ContentData& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr data_;
    ::lens::StoredChunkOptions* PROTOBUF_NULLABLE stored_chunk_options_;
    int content_type_;
    int compression_type_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_lens_5foverlay_5fservice_5fdeps_2eproto;
};
// -------------------------------------------------------------------

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

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

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

  inline Content(const Content& from) : Content(nullptr, from) {}
  inline Content(Content&& from) noexcept : Content(nullptr, ::std::move(from)) {}
  inline Content& operator=(const Content& from) {
    CopyFrom(from);
    return *this;
  }
  inline Content& operator=(Content&& 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 Content& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<Content>(&Content_globals_);
  }
  static constexpr int kIndexInFileMessages = 12;
  friend void swap(Content& a, Content& b) { a.Swap(&b); }
  PROTOBUF_NOINLINE void Swap(Content* 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(Content* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  Content* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::MessageLite::DefaultConstruct<Content>(arena);
  }
  void CopyFrom(const Content& from);
  void MergeFrom(const Content& from) { Content::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(Content* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "lens.Content"; }

  explicit Content(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  Content(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Content& from);
  Content(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, Content&& from) noexcept
      : Content(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 {
    kContentDataFieldNumber = 2,
    kWebpageUrlFieldNumber = 1,
    kWebpageTitleFieldNumber = 4,
    kRequestTypeFieldNumber = 3,
  };
  // repeated .lens.ContentData content_data = 2;
  int content_data_size()
      const;
  private:
  int _internal_content_data_size() const;

  public:
  void clear_content_data() ;
  const ::lens::ContentData& content_data(int index) const;
  ::lens::ContentData* PROTOBUF_NONNULL mutable_content_data(int index);
  ::lens::ContentData* PROTOBUF_NONNULL add_content_data();
  const ::google::protobuf::RepeatedPtrField<::lens::ContentData>&
  content_data() const;
  ::google::protobuf::RepeatedPtrField<::lens::ContentData>* PROTOBUF_NONNULL
  mutable_content_data();

  private:
  const ::google::protobuf::RepeatedPtrField<::lens::ContentData>& _internal_content_data() const;
  ::google::protobuf::RepeatedPtrField<::lens::ContentData>* PROTOBUF_NONNULL _internal_mutable_content_data();

  public:
  // string webpage_url = 1;
  void clear_webpage_url() ;
  const ::std::string& webpage_url() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_webpage_url(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_webpage_url();
  ::std::string* PROTOBUF_NULLABLE release_webpage_url();
  void set_allocated_webpage_url(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_webpage_url() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_webpage_url(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_webpage_url();

  public:
  // string webpage_title = 4;
  void clear_webpage_title() ;
  const ::std::string& webpage_title() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_webpage_title(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_webpage_title();
  ::std::string* PROTOBUF_NULLABLE release_webpage_title();
  void set_allocated_webpage_title(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_webpage_title() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_webpage_title(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_webpage_title();

  public:
  // .lens.RequestType request_type = 3;
  void clear_request_type() ;
  ::lens::RequestType request_type() const;
  void set_request_type(::lens::RequestType value);

  private:
  ::lens::RequestType _internal_request_type() const;
  void _internal_set_request_type(::lens::RequestType value);

  public:
  // @@protoc_insertion_point(class_scope:lens.Content)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<2, 4,
                          1, 45,
                          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 Content& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::RepeatedPtrField< ::lens::ContentData > content_data_;
    ::google::protobuf::internal::ArenaStringPtr webpage_url_;
    ::google::protobuf::internal::ArenaStringPtr webpage_title_;
    int request_type_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_lens_5foverlay_5fservice_5fdeps_2eproto;
};
// -------------------------------------------------------------------

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

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

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

  inline Payload(const Payload& from) : Payload(nullptr, from) {}
  inline Payload(Payload&& from) noexcept : Payload(nullptr, ::std::move(from)) {}
  inline Payload& operator=(const Payload& from) {
    CopyFrom(from);
    return *this;
  }
  inline Payload& operator=(Payload&& 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 Payload& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<Payload>(&Payload_globals_);
  }
  static constexpr int kIndexInFileMessages = 10;
  friend void swap(Payload& a, Payload& b) { a.Swap(&b); }
  PROTOBUF_NOINLINE void Swap(Payload* 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(Payload* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  Payload* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::MessageLite::DefaultConstruct<Payload>(arena);
  }
  void CopyFrom(const Payload& from);
  void MergeFrom(const Payload& from) { Payload::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(Payload* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "lens.Payload"; }

  explicit Payload(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  Payload(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Payload& from);
  Payload(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, Payload&& from) noexcept
      : Payload(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 {
    kContentDataFieldNumber = 3,
    kContentTypeFieldNumber = 4,
    kPageUrlFieldNumber = 5,
    kImageDataFieldNumber = 2,
    kPartialPdfDocumentFieldNumber = 7,
    kStoredChunkOptionsFieldNumber = 9,
    kContentFieldNumber = 10,
    kContentMetadataFieldNumber = 12,
    kRequestTypeFieldNumber = 6,
    kCompressionTypeFieldNumber = 8,
  };
  // bytes content_data = 3;
  void clear_content_data() ;
  const ::std::string& content_data() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_content_data(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_content_data();
  ::std::string* PROTOBUF_NULLABLE release_content_data();
  void set_allocated_content_data(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_content_data() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_content_data(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_content_data();

  public:
  // string content_type = 4;
  void clear_content_type() ;
  const ::std::string& content_type() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_content_type(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_content_type();
  ::std::string* PROTOBUF_NULLABLE release_content_type();
  void set_allocated_content_type(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_content_type() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_content_type(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_content_type();

  public:
  // string page_url = 5;
  void clear_page_url() ;
  const ::std::string& page_url() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_page_url(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_page_url();
  ::std::string* PROTOBUF_NULLABLE release_page_url();
  void set_allocated_page_url(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_page_url() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_page_url(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_page_url();

  public:
  // .lens.ImageData image_data = 2;
  bool has_image_data()
      const;
  void clear_image_data() ;
  const ::lens::ImageData& image_data() const;
  ::lens::ImageData* PROTOBUF_NULLABLE release_image_data();
  ::lens::ImageData* PROTOBUF_NONNULL mutable_image_data();
  void set_allocated_image_data(::lens::ImageData* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_image_data(::lens::ImageData* PROTOBUF_NULLABLE value);
  ::lens::ImageData* PROTOBUF_NULLABLE unsafe_arena_release_image_data();

  private:
  const ::lens::ImageData& _internal_image_data() const;
  ::lens::ImageData* PROTOBUF_NONNULL _internal_mutable_image_data();

  public:
  // .lens.LensOverlayDocument partial_pdf_document = 7;
  bool has_partial_pdf_document()
      const;
  void clear_partial_pdf_document() ;
  const ::lens::LensOverlayDocument& partial_pdf_document() const;
  ::lens::LensOverlayDocument* PROTOBUF_NULLABLE release_partial_pdf_document();
  ::lens::LensOverlayDocument* PROTOBUF_NONNULL mutable_partial_pdf_document();
  void set_allocated_partial_pdf_document(::lens::LensOverlayDocument* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_partial_pdf_document(::lens::LensOverlayDocument* PROTOBUF_NULLABLE value);
  ::lens::LensOverlayDocument* PROTOBUF_NULLABLE unsafe_arena_release_partial_pdf_document();

  private:
  const ::lens::LensOverlayDocument& _internal_partial_pdf_document() const;
  ::lens::LensOverlayDocument* PROTOBUF_NONNULL _internal_mutable_partial_pdf_document();

  public:
  // .lens.StoredChunkOptions stored_chunk_options = 9;
  bool has_stored_chunk_options()
      const;
  void clear_stored_chunk_options() ;
  const ::lens::StoredChunkOptions& stored_chunk_options() const;
  ::lens::StoredChunkOptions* PROTOBUF_NULLABLE release_stored_chunk_options();
  ::lens::StoredChunkOptions* PROTOBUF_NONNULL mutable_stored_chunk_options();
  void set_allocated_stored_chunk_options(::lens::StoredChunkOptions* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_stored_chunk_options(::lens::StoredChunkOptions* PROTOBUF_NULLABLE value);
  ::lens::StoredChunkOptions* PROTOBUF_NULLABLE unsafe_arena_release_stored_chunk_options();

  private:
  const ::lens::StoredChunkOptions& _internal_stored_chunk_options() const;
  ::lens::StoredChunkOptions* PROTOBUF_NONNULL _internal_mutable_stored_chunk_options();

  public:
  // .lens.Content content = 10;
  bool has_content()
      const;
  void clear_content() ;
  const ::lens::Content& content() const;
  ::lens::Content* PROTOBUF_NULLABLE release_content();
  ::lens::Content* PROTOBUF_NONNULL mutable_content();
  void set_allocated_content(::lens::Content* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_content(::lens::Content* PROTOBUF_NULLABLE value);
  ::lens::Content* PROTOBUF_NULLABLE unsafe_arena_release_content();

  private:
  const ::lens::Content& _internal_content() const;
  ::lens::Content* PROTOBUF_NONNULL _internal_mutable_content();

  public:
  // .lens.LensOverlayContentMetadata content_metadata = 12;
  bool has_content_metadata()
      const;
  void clear_content_metadata() ;
  const ::lens::LensOverlayContentMetadata& content_metadata() const;
  ::lens::LensOverlayContentMetadata* PROTOBUF_NULLABLE release_content_metadata();
  ::lens::LensOverlayContentMetadata* PROTOBUF_NONNULL mutable_content_metadata();
  void set_allocated_content_metadata(::lens::LensOverlayContentMetadata* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_content_metadata(::lens::LensOverlayContentMetadata* PROTOBUF_NULLABLE value);
  ::lens::LensOverlayContentMetadata* PROTOBUF_NULLABLE unsafe_arena_release_content_metadata();

  private:
  const ::lens::LensOverlayContentMetadata& _internal_content_metadata() const;
  ::lens::LensOverlayContentMetadata* PROTOBUF_NONNULL _internal_mutable_content_metadata();

  public:
  // .lens.RequestType request_type = 6;
  void clear_request_type() ;
  ::lens::RequestType request_type() const;
  void set_request_type(::lens::RequestType value);

  private:
  ::lens::RequestType _internal_request_type() const;
  void _internal_set_request_type(::lens::RequestType value);

  public:
  // .lens.CompressionType compression_type = 8;
  void clear_compression_type() ;
  ::lens::CompressionType compression_type() const;
  void set_compression_type(::lens::CompressionType value);

  private:
  ::lens::CompressionType _internal_compression_type() const;
  void _internal_set_compression_type(::lens::CompressionType value);

  public:
  // @@protoc_insertion_point(class_scope:lens.Payload)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<4, 10,
                          5, 49,
                          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 Payload& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr content_data_;
    ::google::protobuf::internal::ArenaStringPtr content_type_;
    ::google::protobuf::internal::ArenaStringPtr page_url_;
    ::lens::ImageData* PROTOBUF_NULLABLE image_data_;
    ::lens::LensOverlayDocument* PROTOBUF_NULLABLE partial_pdf_document_;
    ::lens::StoredChunkOptions* PROTOBUF_NULLABLE stored_chunk_options_;
    ::lens::Content* PROTOBUF_NULLABLE content_;
    ::lens::LensOverlayContentMetadata* PROTOBUF_NULLABLE content_metadata_;
    int request_type_;
    int compression_type_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_lens_5foverlay_5fservice_5fdeps_2eproto;
};
// -------------------------------------------------------------------

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

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

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

  inline LensOverlayRequestContext(const LensOverlayRequestContext& from) : LensOverlayRequestContext(nullptr, from) {}
  inline LensOverlayRequestContext(LensOverlayRequestContext&& from) noexcept : LensOverlayRequestContext(nullptr, ::std::move(from)) {}
  inline LensOverlayRequestContext& operator=(const LensOverlayRequestContext& from) {
    CopyFrom(from);
    return *this;
  }
  inline LensOverlayRequestContext& operator=(LensOverlayRequestContext&& 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 LensOverlayRequestContext& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<LensOverlayRequestContext>(&LensOverlayRequestContext_globals_);
  }
  static constexpr int kIndexInFileMessages = 0;
  friend void swap(LensOverlayRequestContext& a, LensOverlayRequestContext& b) { a.Swap(&b); }
  PROTOBUF_NOINLINE void Swap(LensOverlayRequestContext* 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(LensOverlayRequestContext* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  LensOverlayRequestContext* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::MessageLite::DefaultConstruct<LensOverlayRequestContext>(arena);
  }
  void CopyFrom(const LensOverlayRequestContext& from);
  void MergeFrom(const LensOverlayRequestContext& from) { LensOverlayRequestContext::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(LensOverlayRequestContext* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "lens.LensOverlayRequestContext"; }

  explicit LensOverlayRequestContext(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  LensOverlayRequestContext(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const LensOverlayRequestContext& from);
  LensOverlayRequestContext(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, LensOverlayRequestContext&& from) noexcept
      : LensOverlayRequestContext(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 {
    kRequestIdFieldNumber = 3,
    kClientContextFieldNumber = 4,
  };
  // .lens.LensOverlayRequestId request_id = 3;
  bool has_request_id()
      const;
  void clear_request_id() ;
  const ::lens::LensOverlayRequestId& request_id() const;
  ::lens::LensOverlayRequestId* PROTOBUF_NULLABLE release_request_id();
  ::lens::LensOverlayRequestId* PROTOBUF_NONNULL mutable_request_id();
  void set_allocated_request_id(::lens::LensOverlayRequestId* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_request_id(::lens::LensOverlayRequestId* PROTOBUF_NULLABLE value);
  ::lens::LensOverlayRequestId* PROTOBUF_NULLABLE unsafe_arena_release_request_id();

  private:
  const ::lens::LensOverlayRequestId& _internal_request_id() const;
  ::lens::LensOverlayRequestId* PROTOBUF_NONNULL _internal_mutable_request_id();

  public:
  // .lens.LensOverlayClientContext client_context = 4;
  bool has_client_context()
      const;
  void clear_client_context() ;
  const ::lens::LensOverlayClientContext& client_context() const;
  ::lens::LensOverlayClientContext* PROTOBUF_NULLABLE release_client_context();
  ::lens::LensOverlayClientContext* PROTOBUF_NONNULL mutable_client_context();
  void set_allocated_client_context(::lens::LensOverlayClientContext* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_client_context(::lens::LensOverlayClientContext* PROTOBUF_NULLABLE value);
  ::lens::LensOverlayClientContext* PROTOBUF_NULLABLE unsafe_arena_release_client_context();

  private:
  const ::lens::LensOverlayClientContext& _internal_client_context() const;
  ::lens::LensOverlayClientContext* PROTOBUF_NONNULL _internal_mutable_client_context();

  public:
  // @@protoc_insertion_point(class_scope:lens.LensOverlayRequestContext)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<1, 2,
                          2, 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 LensOverlayRequestContext& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::lens::LensOverlayRequestId* PROTOBUF_NULLABLE request_id_;
    ::lens::LensOverlayClientContext* PROTOBUF_NULLABLE client_context_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_lens_5foverlay_5fservice_5fdeps_2eproto;
};
// -------------------------------------------------------------------

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

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

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

  inline LensOverlayUploadChunkRequest(const LensOverlayUploadChunkRequest& from) : LensOverlayUploadChunkRequest(nullptr, from) {}
  inline LensOverlayUploadChunkRequest(LensOverlayUploadChunkRequest&& from) noexcept : LensOverlayUploadChunkRequest(nullptr, ::std::move(from)) {}
  inline LensOverlayUploadChunkRequest& operator=(const LensOverlayUploadChunkRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline LensOverlayUploadChunkRequest& operator=(LensOverlayUploadChunkRequest&& 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 LensOverlayUploadChunkRequest& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<LensOverlayUploadChunkRequest>(&LensOverlayUploadChunkRequest_globals_);
  }
  static constexpr int kIndexInFileMessages = 3;
  friend void swap(LensOverlayUploadChunkRequest& a, LensOverlayUploadChunkRequest& b) { a.Swap(&b); }
  PROTOBUF_NOINLINE void Swap(LensOverlayUploadChunkRequest* 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(LensOverlayUploadChunkRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  LensOverlayUploadChunkRequest* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::MessageLite::DefaultConstruct<LensOverlayUploadChunkRequest>(arena);
  }
  void CopyFrom(const LensOverlayUploadChunkRequest& from);
  void MergeFrom(const LensOverlayUploadChunkRequest& from) { LensOverlayUploadChunkRequest::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(LensOverlayUploadChunkRequest* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "lens.LensOverlayUploadChunkRequest"; }

  explicit LensOverlayUploadChunkRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  LensOverlayUploadChunkRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const LensOverlayUploadChunkRequest& from);
  LensOverlayUploadChunkRequest(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, LensOverlayUploadChunkRequest&& from) noexcept
      : LensOverlayUploadChunkRequest(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 {
    kChunkBytesFieldNumber = 4,
    kRequestContextFieldNumber = 1,
    kDebugOptionsFieldNumber = 6,
    kChunkIdFieldNumber = 3,
  };
  // bytes chunk_bytes = 4;
  void clear_chunk_bytes() ;
  const ::std::string& chunk_bytes() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_chunk_bytes(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_chunk_bytes();
  ::std::string* PROTOBUF_NULLABLE release_chunk_bytes();
  void set_allocated_chunk_bytes(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_chunk_bytes() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_chunk_bytes(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_chunk_bytes();

  public:
  // .lens.LensOverlayRequestContext request_context = 1;
  bool has_request_context()
      const;
  void clear_request_context() ;
  const ::lens::LensOverlayRequestContext& request_context() const;
  ::lens::LensOverlayRequestContext* PROTOBUF_NULLABLE release_request_context();
  ::lens::LensOverlayRequestContext* PROTOBUF_NONNULL mutable_request_context();
  void set_allocated_request_context(::lens::LensOverlayRequestContext* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_request_context(::lens::LensOverlayRequestContext* PROTOBUF_NULLABLE value);
  ::lens::LensOverlayRequestContext* PROTOBUF_NULLABLE unsafe_arena_release_request_context();

  private:
  const ::lens::LensOverlayRequestContext& _internal_request_context() const;
  ::lens::LensOverlayRequestContext* PROTOBUF_NONNULL _internal_mutable_request_context();

  public:
  // .lens.ChunkDebugOptions debug_options = 6;
  bool has_debug_options()
      const;
  void clear_debug_options() ;
  const ::lens::ChunkDebugOptions& debug_options() const;
  ::lens::ChunkDebugOptions* PROTOBUF_NULLABLE release_debug_options();
  ::lens::ChunkDebugOptions* PROTOBUF_NONNULL mutable_debug_options();
  void set_allocated_debug_options(::lens::ChunkDebugOptions* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_debug_options(::lens::ChunkDebugOptions* PROTOBUF_NULLABLE value);
  ::lens::ChunkDebugOptions* PROTOBUF_NULLABLE unsafe_arena_release_debug_options();

  private:
  const ::lens::ChunkDebugOptions& _internal_debug_options() const;
  ::lens::ChunkDebugOptions* PROTOBUF_NONNULL _internal_mutable_debug_options();

  public:
  // int64 chunk_id = 3;
  void clear_chunk_id() ;
  ::int64_t chunk_id() const;
  void set_chunk_id(::int64_t value);

  private:
  ::int64_t _internal_chunk_id() const;
  void _internal_set_chunk_id(::int64_t value);

  public:
  // @@protoc_insertion_point(class_scope:lens.LensOverlayUploadChunkRequest)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<2, 4,
                          2, 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 LensOverlayUploadChunkRequest& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr chunk_bytes_;
    ::lens::LensOverlayRequestContext* PROTOBUF_NULLABLE request_context_;
    ::lens::ChunkDebugOptions* PROTOBUF_NULLABLE debug_options_;
    ::int64_t chunk_id_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_lens_5foverlay_5fservice_5fdeps_2eproto;
};
// -------------------------------------------------------------------

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

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

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

  inline LensOverlayObjectsRequest(const LensOverlayObjectsRequest& from) : LensOverlayObjectsRequest(nullptr, from) {}
  inline LensOverlayObjectsRequest(LensOverlayObjectsRequest&& from) noexcept : LensOverlayObjectsRequest(nullptr, ::std::move(from)) {}
  inline LensOverlayObjectsRequest& operator=(const LensOverlayObjectsRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline LensOverlayObjectsRequest& operator=(LensOverlayObjectsRequest&& 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 LensOverlayObjectsRequest& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<LensOverlayObjectsRequest>(&LensOverlayObjectsRequest_globals_);
  }
  static constexpr int kIndexInFileMessages = 2;
  friend void swap(LensOverlayObjectsRequest& a, LensOverlayObjectsRequest& b) { a.Swap(&b); }
  PROTOBUF_NOINLINE void Swap(LensOverlayObjectsRequest* 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(LensOverlayObjectsRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  LensOverlayObjectsRequest* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::MessageLite::DefaultConstruct<LensOverlayObjectsRequest>(arena);
  }
  void CopyFrom(const LensOverlayObjectsRequest& from);
  void MergeFrom(const LensOverlayObjectsRequest& from) { LensOverlayObjectsRequest::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(LensOverlayObjectsRequest* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "lens.LensOverlayObjectsRequest"; }

  explicit LensOverlayObjectsRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  LensOverlayObjectsRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const LensOverlayObjectsRequest& from);
  LensOverlayObjectsRequest(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, LensOverlayObjectsRequest&& from) noexcept
      : LensOverlayObjectsRequest(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 {
    kRequestContextFieldNumber = 1,
    kImageDataFieldNumber = 3,
    kPayloadFieldNumber = 4,
    kViewportRequestContextFieldNumber = 5,
  };
  // .lens.LensOverlayRequestContext request_context = 1;
  bool has_request_context()
      const;
  void clear_request_context() ;
  const ::lens::LensOverlayRequestContext& request_context() const;
  ::lens::LensOverlayRequestContext* PROTOBUF_NULLABLE release_request_context();
  ::lens::LensOverlayRequestContext* PROTOBUF_NONNULL mutable_request_context();
  void set_allocated_request_context(::lens::LensOverlayRequestContext* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_request_context(::lens::LensOverlayRequestContext* PROTOBUF_NULLABLE value);
  ::lens::LensOverlayRequestContext* PROTOBUF_NULLABLE unsafe_arena_release_request_context();

  private:
  const ::lens::LensOverlayRequestContext& _internal_request_context() const;
  ::lens::LensOverlayRequestContext* PROTOBUF_NONNULL _internal_mutable_request_context();

  public:
  // .lens.ImageData image_data = 3;
  bool has_image_data()
      const;
  void clear_image_data() ;
  const ::lens::ImageData& image_data() const;
  ::lens::ImageData* PROTOBUF_NULLABLE release_image_data();
  ::lens::ImageData* PROTOBUF_NONNULL mutable_image_data();
  void set_allocated_image_data(::lens::ImageData* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_image_data(::lens::ImageData* PROTOBUF_NULLABLE value);
  ::lens::ImageData* PROTOBUF_NULLABLE unsafe_arena_release_image_data();

  private:
  const ::lens::ImageData& _internal_image_data() const;
  ::lens::ImageData* PROTOBUF_NONNULL _internal_mutable_image_data();

  public:
  // .lens.Payload payload = 4;
  bool has_payload()
      const;
  void clear_payload() ;
  const ::lens::Payload& payload() const;
  ::lens::Payload* PROTOBUF_NULLABLE release_payload();
  ::lens::Payload* PROTOBUF_NONNULL mutable_payload();
  void set_allocated_payload(::lens::Payload* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_payload(::lens::Payload* PROTOBUF_NULLABLE value);
  ::lens::Payload* PROTOBUF_NULLABLE unsafe_arena_release_payload();

  private:
  const ::lens::Payload& _internal_payload() const;
  ::lens::Payload* PROTOBUF_NONNULL _internal_mutable_payload();

  public:
  // .lens.ViewportRequestContext viewport_request_context = 5;
  bool has_viewport_request_context()
      const;
  void clear_viewport_request_context() ;
  const ::lens::ViewportRequestContext& viewport_request_context() const;
  ::lens::ViewportRequestContext* PROTOBUF_NULLABLE release_viewport_request_context();
  ::lens::ViewportRequestContext* PROTOBUF_NONNULL mutable_viewport_request_context();
  void set_allocated_viewport_request_context(::lens::ViewportRequestContext* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_viewport_request_context(::lens::ViewportRequestContext* PROTOBUF_NULLABLE value);
  ::lens::ViewportRequestContext* PROTOBUF_NULLABLE unsafe_arena_release_viewport_request_context();

  private:
  const ::lens::ViewportRequestContext& _internal_viewport_request_context() const;
  ::lens::ViewportRequestContext* PROTOBUF_NONNULL _internal_mutable_viewport_request_context();

  public:
  // @@protoc_insertion_point(class_scope:lens.LensOverlayObjectsRequest)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<3, 4,
                          4, 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 LensOverlayObjectsRequest& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::lens::LensOverlayRequestContext* PROTOBUF_NULLABLE request_context_;
    ::lens::ImageData* PROTOBUF_NULLABLE image_data_;
    ::lens::Payload* PROTOBUF_NULLABLE payload_;
    ::lens::ViewportRequestContext* PROTOBUF_NULLABLE viewport_request_context_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_lens_5foverlay_5fservice_5fdeps_2eproto;
};
// -------------------------------------------------------------------

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

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

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

  inline LensOverlayInteractionRequest(const LensOverlayInteractionRequest& from) : LensOverlayInteractionRequest(nullptr, from) {}
  inline LensOverlayInteractionRequest(LensOverlayInteractionRequest&& from) noexcept : LensOverlayInteractionRequest(nullptr, ::std::move(from)) {}
  inline LensOverlayInteractionRequest& operator=(const LensOverlayInteractionRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline LensOverlayInteractionRequest& operator=(LensOverlayInteractionRequest&& 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 LensOverlayInteractionRequest& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<LensOverlayInteractionRequest>(&LensOverlayInteractionRequest_globals_);
  }
  static constexpr int kIndexInFileMessages = 8;
  friend void swap(LensOverlayInteractionRequest& a, LensOverlayInteractionRequest& b) { a.Swap(&b); }
  PROTOBUF_NOINLINE void Swap(LensOverlayInteractionRequest* 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(LensOverlayInteractionRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  LensOverlayInteractionRequest* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::MessageLite::DefaultConstruct<LensOverlayInteractionRequest>(arena);
  }
  void CopyFrom(const LensOverlayInteractionRequest& from);
  void MergeFrom(const LensOverlayInteractionRequest& from) { LensOverlayInteractionRequest::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(LensOverlayInteractionRequest* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "lens.LensOverlayInteractionRequest"; }

  explicit LensOverlayInteractionRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  LensOverlayInteractionRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const LensOverlayInteractionRequest& from);
  LensOverlayInteractionRequest(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, LensOverlayInteractionRequest&& from) noexcept
      : LensOverlayInteractionRequest(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 {
    kRequestContextFieldNumber = 1,
    kInteractionRequestMetadataFieldNumber = 2,
    kImageCropFieldNumber = 3,
  };
  // .lens.LensOverlayRequestContext request_context = 1;
  bool has_request_context()
      const;
  void clear_request_context() ;
  const ::lens::LensOverlayRequestContext& request_context() const;
  ::lens::LensOverlayRequestContext* PROTOBUF_NULLABLE release_request_context();
  ::lens::LensOverlayRequestContext* PROTOBUF_NONNULL mutable_request_context();
  void set_allocated_request_context(::lens::LensOverlayRequestContext* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_request_context(::lens::LensOverlayRequestContext* PROTOBUF_NULLABLE value);
  ::lens::LensOverlayRequestContext* PROTOBUF_NULLABLE unsafe_arena_release_request_context();

  private:
  const ::lens::LensOverlayRequestContext& _internal_request_context() const;
  ::lens::LensOverlayRequestContext* PROTOBUF_NONNULL _internal_mutable_request_context();

  public:
  // .lens.LensOverlayInteractionRequestMetadata interaction_request_metadata = 2;
  bool has_interaction_request_metadata()
      const;
  void clear_interaction_request_metadata() ;
  const ::lens::LensOverlayInteractionRequestMetadata& interaction_request_metadata() const;
  ::lens::LensOverlayInteractionRequestMetadata* PROTOBUF_NULLABLE release_interaction_request_metadata();
  ::lens::LensOverlayInteractionRequestMetadata* PROTOBUF_NONNULL mutable_interaction_request_metadata();
  void set_allocated_interaction_request_metadata(::lens::LensOverlayInteractionRequestMetadata* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_interaction_request_metadata(::lens::LensOverlayInteractionRequestMetadata* PROTOBUF_NULLABLE value);
  ::lens::LensOverlayInteractionRequestMetadata* PROTOBUF_NULLABLE unsafe_arena_release_interaction_request_metadata();

  private:
  const ::lens::LensOverlayInteractionRequestMetadata& _internal_interaction_request_metadata() const;
  ::lens::LensOverlayInteractionRequestMetadata* PROTOBUF_NONNULL _internal_mutable_interaction_request_metadata();

  public:
  // .lens.ImageCrop image_crop = 3;
  bool has_image_crop()
      const;
  void clear_image_crop() ;
  const ::lens::ImageCrop& image_crop() const;
  ::lens::ImageCrop* PROTOBUF_NULLABLE release_image_crop();
  ::lens::ImageCrop* PROTOBUF_NONNULL mutable_image_crop();
  void set_allocated_image_crop(::lens::ImageCrop* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_image_crop(::lens::ImageCrop* PROTOBUF_NULLABLE value);
  ::lens::ImageCrop* PROTOBUF_NULLABLE unsafe_arena_release_image_crop();

  private:
  const ::lens::ImageCrop& _internal_image_crop() const;
  ::lens::ImageCrop* PROTOBUF_NONNULL _internal_mutable_image_crop();

  public:
  // @@protoc_insertion_point(class_scope:lens.LensOverlayInteractionRequest)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<2, 3,
                          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 LensOverlayInteractionRequest& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::lens::LensOverlayRequestContext* PROTOBUF_NULLABLE request_context_;
    ::lens::LensOverlayInteractionRequestMetadata* PROTOBUF_NULLABLE interaction_request_metadata_;
    ::lens::ImageCrop* PROTOBUF_NULLABLE image_crop_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_lens_5foverlay_5fservice_5fdeps_2eproto;
};
// -------------------------------------------------------------------

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

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

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

  inline LensOverlayObjectsResponse(const LensOverlayObjectsResponse& from) : LensOverlayObjectsResponse(nullptr, from) {}
  inline LensOverlayObjectsResponse(LensOverlayObjectsResponse&& from) noexcept : LensOverlayObjectsResponse(nullptr, ::std::move(from)) {}
  inline LensOverlayObjectsResponse& operator=(const LensOverlayObjectsResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline LensOverlayObjectsResponse& operator=(LensOverlayObjectsResponse&& 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 LensOverlayObjectsResponse& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<LensOverlayObjectsResponse>(&LensOverlayObjectsResponse_globals_);
  }
  static constexpr int kIndexInFileMessages = 7;
  friend void swap(LensOverlayObjectsResponse& a, LensOverlayObjectsResponse& b) { a.Swap(&b); }
  PROTOBUF_NOINLINE void Swap(LensOverlayObjectsResponse* 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(LensOverlayObjectsResponse* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  LensOverlayObjectsResponse* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::MessageLite::DefaultConstruct<LensOverlayObjectsResponse>(arena);
  }
  void CopyFrom(const LensOverlayObjectsResponse& from);
  void MergeFrom(const LensOverlayObjectsResponse& from) { LensOverlayObjectsResponse::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(LensOverlayObjectsResponse* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "lens.LensOverlayObjectsResponse"; }

  explicit LensOverlayObjectsResponse(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  LensOverlayObjectsResponse(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const LensOverlayObjectsResponse& from);
  LensOverlayObjectsResponse(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, LensOverlayObjectsResponse&& from) noexcept
      : LensOverlayObjectsResponse(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 {
    kOverlayObjectsFieldNumber = 2,
    kDeepGleamsFieldNumber = 4,
    kTextFieldNumber = 3,
    kClusterInfoFieldNumber = 7,
  };
  // repeated .lens.OverlayObject overlay_objects = 2;
  int overlay_objects_size()
      const;
  private:
  int _internal_overlay_objects_size() const;

  public:
  void clear_overlay_objects() ;
  const ::lens::OverlayObject& overlay_objects(int index) const;
  ::lens::OverlayObject* PROTOBUF_NONNULL mutable_overlay_objects(int index);
  ::lens::OverlayObject* PROTOBUF_NONNULL add_overlay_objects();
  const ::google::protobuf::RepeatedPtrField<::lens::OverlayObject>&
  overlay_objects() const;
  ::google::protobuf::RepeatedPtrField<::lens::OverlayObject>* PROTOBUF_NONNULL
  mutable_overlay_objects();

  private:
  const ::google::protobuf::RepeatedPtrField<::lens::OverlayObject>& _internal_overlay_objects() const;
  ::google::protobuf::RepeatedPtrField<::lens::OverlayObject>* PROTOBUF_NONNULL _internal_mutable_overlay_objects();

  public:
  // repeated .lens.DeepGleamData deep_gleams = 4;
  int deep_gleams_size()
      const;
  private:
  int _internal_deep_gleams_size() const;

  public:
  void clear_deep_gleams() ;
  const ::lens::DeepGleamData& deep_gleams(int index) const;
  ::lens::DeepGleamData* PROTOBUF_NONNULL mutable_deep_gleams(int index);
  ::lens::DeepGleamData* PROTOBUF_NONNULL add_deep_gleams();
  const ::google::protobuf::RepeatedPtrField<::lens::DeepGleamData>&
  deep_gleams() const;
  ::google::protobuf::RepeatedPtrField<::lens::DeepGleamData>* PROTOBUF_NONNULL
  mutable_deep_gleams();

  private:
  const ::google::protobuf::RepeatedPtrField<::lens::DeepGleamData>& _internal_deep_gleams() const;
  ::google::protobuf::RepeatedPtrField<::lens::DeepGleamData>* PROTOBUF_NONNULL _internal_mutable_deep_gleams();

  public:
  // .lens.Text text = 3;
  bool has_text()
      const;
  void clear_text() ;
  const ::lens::Text& text() const;
  ::lens::Text* PROTOBUF_NULLABLE release_text();
  ::lens::Text* PROTOBUF_NONNULL mutable_text();
  void set_allocated_text(::lens::Text* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_text(::lens::Text* PROTOBUF_NULLABLE value);
  ::lens::Text* PROTOBUF_NULLABLE unsafe_arena_release_text();

  private:
  const ::lens::Text& _internal_text() const;
  ::lens::Text* PROTOBUF_NONNULL _internal_mutable_text();

  public:
  // .lens.LensOverlayClusterInfo cluster_info = 7;
  bool has_cluster_info()
      const;
  void clear_cluster_info() ;
  const ::lens::LensOverlayClusterInfo& cluster_info() const;
  ::lens::LensOverlayClusterInfo* PROTOBUF_NULLABLE release_cluster_info();
  ::lens::LensOverlayClusterInfo* PROTOBUF_NONNULL mutable_cluster_info();
  void set_allocated_cluster_info(::lens::LensOverlayClusterInfo* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_cluster_info(::lens::LensOverlayClusterInfo* PROTOBUF_NULLABLE value);
  ::lens::LensOverlayClusterInfo* PROTOBUF_NULLABLE unsafe_arena_release_cluster_info();

  private:
  const ::lens::LensOverlayClusterInfo& _internal_cluster_info() const;
  ::lens::LensOverlayClusterInfo* PROTOBUF_NONNULL _internal_mutable_cluster_info();

  public:
  // @@protoc_insertion_point(class_scope:lens.LensOverlayObjectsResponse)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<3, 4,
                          4, 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 LensOverlayObjectsResponse& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::RepeatedPtrField< ::lens::OverlayObject > overlay_objects_;
    ::google::protobuf::RepeatedPtrField< ::lens::DeepGleamData > deep_gleams_;
    ::lens::Text* PROTOBUF_NULLABLE text_;
    ::lens::LensOverlayClusterInfo* PROTOBUF_NULLABLE cluster_info_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_lens_5foverlay_5fservice_5fdeps_2eproto;
};
// -------------------------------------------------------------------

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

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

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

  inline LensOverlayInteractionResponse(const LensOverlayInteractionResponse& from) : LensOverlayInteractionResponse(nullptr, from) {}
  inline LensOverlayInteractionResponse(LensOverlayInteractionResponse&& from) noexcept : LensOverlayInteractionResponse(nullptr, ::std::move(from)) {}
  inline LensOverlayInteractionResponse& operator=(const LensOverlayInteractionResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline LensOverlayInteractionResponse& operator=(LensOverlayInteractionResponse&& 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 LensOverlayInteractionResponse& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<LensOverlayInteractionResponse>(&LensOverlayInteractionResponse_globals_);
  }
  static constexpr int kIndexInFileMessages = 9;
  friend void swap(LensOverlayInteractionResponse& a, LensOverlayInteractionResponse& b) { a.Swap(&b); }
  PROTOBUF_NOINLINE void Swap(LensOverlayInteractionResponse* 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(LensOverlayInteractionResponse* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  LensOverlayInteractionResponse* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::MessageLite::DefaultConstruct<LensOverlayInteractionResponse>(arena);
  }
  void CopyFrom(const LensOverlayInteractionResponse& from);
  void MergeFrom(const LensOverlayInteractionResponse& from) { LensOverlayInteractionResponse::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(LensOverlayInteractionResponse* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "lens.LensOverlayInteractionResponse"; }

  explicit LensOverlayInteractionResponse(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  LensOverlayInteractionResponse(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const LensOverlayInteractionResponse& from);
  LensOverlayInteractionResponse(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, LensOverlayInteractionResponse&& from) noexcept
      : LensOverlayInteractionResponse(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 {
    kEncodedResponseFieldNumber = 3,
    kTextFieldNumber = 5,
  };
  // string encoded_response = 3;
  void clear_encoded_response() ;
  const ::std::string& encoded_response() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_encoded_response(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_encoded_response();
  ::std::string* PROTOBUF_NULLABLE release_encoded_response();
  void set_allocated_encoded_response(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_encoded_response() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_encoded_response(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_encoded_response();

  public:
  // .lens.Text text = 5;
  bool has_text()
      const;
  void clear_text() ;
  const ::lens::Text& text() const;
  ::lens::Text* PROTOBUF_NULLABLE release_text();
  ::lens::Text* PROTOBUF_NONNULL mutable_text();
  void set_allocated_text(::lens::Text* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_text(::lens::Text* PROTOBUF_NULLABLE value);
  ::lens::Text* PROTOBUF_NULLABLE unsafe_arena_release_text();

  private:
  const ::lens::Text& _internal_text() const;
  ::lens::Text* PROTOBUF_NONNULL _internal_mutable_text();

  public:
  // @@protoc_insertion_point(class_scope:lens.LensOverlayInteractionResponse)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<2, 2,
                          1, 60,
                          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 LensOverlayInteractionResponse& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr encoded_response_;
    ::lens::Text* PROTOBUF_NULLABLE text_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_lens_5foverlay_5fservice_5fdeps_2eproto;
};

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




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


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

// LensOverlayRequestContext

// .lens.LensOverlayRequestId request_id = 3;
inline bool LensOverlayRequestContext::has_request_id() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  PROTOBUF_ASSUME(!value || _impl_.request_id_ != nullptr);
  return value;
}
inline const ::lens::LensOverlayRequestId& LensOverlayRequestContext::_internal_request_id() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::lens::LensOverlayRequestId* p = _impl_.request_id_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::lens::LensOverlayRequestId>(&::lens::LensOverlayRequestId_globals_);
}
inline const ::lens::LensOverlayRequestId& LensOverlayRequestContext::request_id() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:lens.LensOverlayRequestContext.request_id)
  return _internal_request_id();
}
inline void LensOverlayRequestContext::unsafe_arena_set_allocated_request_id(
    ::lens::LensOverlayRequestId* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.request_id_);
  }
  _impl_.request_id_ = reinterpret_cast<::lens::LensOverlayRequestId*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:lens.LensOverlayRequestContext.request_id)
}
inline ::lens::LensOverlayRequestId* PROTOBUF_NULLABLE LensOverlayRequestContext::release_request_id() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::lens::LensOverlayRequestId* released = _impl_.request_id_;
  _impl_.request_id_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::lens::LensOverlayRequestId* PROTOBUF_NULLABLE LensOverlayRequestContext::unsafe_arena_release_request_id() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:lens.LensOverlayRequestContext.request_id)

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::lens::LensOverlayRequestId* temp = _impl_.request_id_;
  _impl_.request_id_ = nullptr;
  return temp;
}
inline ::lens::LensOverlayRequestId* PROTOBUF_NONNULL LensOverlayRequestContext::_internal_mutable_request_id() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.request_id_ == nullptr) {
    auto* p = ::google::protobuf::MessageLite::DefaultConstruct<::lens::LensOverlayRequestId>(GetArena());
    _impl_.request_id_ = reinterpret_cast<::lens::LensOverlayRequestId*>(p);
  }
  return _impl_.request_id_;
}
inline ::lens::LensOverlayRequestId* PROTOBUF_NONNULL LensOverlayRequestContext::mutable_request_id()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::lens::LensOverlayRequestId* _msg = _internal_mutable_request_id();
  // @@protoc_insertion_point(field_mutable:lens.LensOverlayRequestContext.request_id)
  return _msg;
}
inline void LensOverlayRequestContext::set_allocated_request_id(::lens::LensOverlayRequestId* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.request_id_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = reinterpret_cast<::google::protobuf::MessageLite*>(value)->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }

  _impl_.request_id_ = reinterpret_cast<::lens::LensOverlayRequestId*>(value);
  // @@protoc_insertion_point(field_set_allocated:lens.LensOverlayRequestContext.request_id)
}

// .lens.LensOverlayClientContext client_context = 4;
inline bool LensOverlayRequestContext::has_client_context() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000002U);
  PROTOBUF_ASSUME(!value || _impl_.client_context_ != nullptr);
  return value;
}
inline const ::lens::LensOverlayClientContext& LensOverlayRequestContext::_internal_client_context() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::lens::LensOverlayClientContext* p = _impl_.client_context_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::lens::LensOverlayClientContext>(&::lens::LensOverlayClientContext_globals_);
}
inline const ::lens::LensOverlayClientContext& LensOverlayRequestContext::client_context() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:lens.LensOverlayRequestContext.client_context)
  return _internal_client_context();
}
inline void LensOverlayRequestContext::unsafe_arena_set_allocated_client_context(
    ::lens::LensOverlayClientContext* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.client_context_);
  }
  _impl_.client_context_ = reinterpret_cast<::lens::LensOverlayClientContext*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:lens.LensOverlayRequestContext.client_context)
}
inline ::lens::LensOverlayClientContext* PROTOBUF_NULLABLE LensOverlayRequestContext::release_client_context() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::lens::LensOverlayClientContext* released = _impl_.client_context_;
  _impl_.client_context_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::lens::LensOverlayClientContext* PROTOBUF_NULLABLE LensOverlayRequestContext::unsafe_arena_release_client_context() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:lens.LensOverlayRequestContext.client_context)

  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::lens::LensOverlayClientContext* temp = _impl_.client_context_;
  _impl_.client_context_ = nullptr;
  return temp;
}
inline ::lens::LensOverlayClientContext* PROTOBUF_NONNULL LensOverlayRequestContext::_internal_mutable_client_context() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.client_context_ == nullptr) {
    auto* p = ::google::protobuf::MessageLite::DefaultConstruct<::lens::LensOverlayClientContext>(GetArena());
    _impl_.client_context_ = reinterpret_cast<::lens::LensOverlayClientContext*>(p);
  }
  return _impl_.client_context_;
}
inline ::lens::LensOverlayClientContext* PROTOBUF_NONNULL LensOverlayRequestContext::mutable_client_context()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::lens::LensOverlayClientContext* _msg = _internal_mutable_client_context();
  // @@protoc_insertion_point(field_mutable:lens.LensOverlayRequestContext.client_context)
  return _msg;
}
inline void LensOverlayRequestContext::set_allocated_client_context(::lens::LensOverlayClientContext* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.client_context_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = reinterpret_cast<::google::protobuf::MessageLite*>(value)->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }

  _impl_.client_context_ = reinterpret_cast<::lens::LensOverlayClientContext*>(value);
  // @@protoc_insertion_point(field_set_allocated:lens.LensOverlayRequestContext.client_context)
}

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

// ViewportRequestContext

// int32 pdf_page_number = 1;
inline void ViewportRequestContext::clear_pdf_page_number() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.pdf_page_number_ = 0;
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline ::int32_t ViewportRequestContext::pdf_page_number() const {
  // @@protoc_insertion_point(field_get:lens.ViewportRequestContext.pdf_page_number)
  return _internal_pdf_page_number();
}
inline void ViewportRequestContext::set_pdf_page_number(::int32_t value) {
  _internal_set_pdf_page_number(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_set:lens.ViewportRequestContext.pdf_page_number)
}
inline ::int32_t ViewportRequestContext::_internal_pdf_page_number() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.pdf_page_number_;
}
inline void ViewportRequestContext::_internal_set_pdf_page_number(::int32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.pdf_page_number_ = value;
}

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

// LensOverlayObjectsRequest

// .lens.LensOverlayRequestContext request_context = 1;
inline bool LensOverlayObjectsRequest::has_request_context() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  PROTOBUF_ASSUME(!value || _impl_.request_context_ != nullptr);
  return value;
}
inline void LensOverlayObjectsRequest::clear_request_context() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.request_context_ != nullptr) _impl_.request_context_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::lens::LensOverlayRequestContext& LensOverlayObjectsRequest::_internal_request_context() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::lens::LensOverlayRequestContext* p = _impl_.request_context_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::lens::LensOverlayRequestContext>(&::lens::LensOverlayRequestContext_globals_);
}
inline const ::lens::LensOverlayRequestContext& LensOverlayObjectsRequest::request_context() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:lens.LensOverlayObjectsRequest.request_context)
  return _internal_request_context();
}
inline void LensOverlayObjectsRequest::unsafe_arena_set_allocated_request_context(
    ::lens::LensOverlayRequestContext* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.request_context_);
  }
  _impl_.request_context_ = reinterpret_cast<::lens::LensOverlayRequestContext*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:lens.LensOverlayObjectsRequest.request_context)
}
inline ::lens::LensOverlayRequestContext* PROTOBUF_NULLABLE LensOverlayObjectsRequest::release_request_context() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::lens::LensOverlayRequestContext* released = _impl_.request_context_;
  _impl_.request_context_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::lens::LensOverlayRequestContext* PROTOBUF_NULLABLE LensOverlayObjectsRequest::unsafe_arena_release_request_context() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:lens.LensOverlayObjectsRequest.request_context)

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::lens::LensOverlayRequestContext* temp = _impl_.request_context_;
  _impl_.request_context_ = nullptr;
  return temp;
}
inline ::lens::LensOverlayRequestContext* PROTOBUF_NONNULL LensOverlayObjectsRequest::_internal_mutable_request_context() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.request_context_ == nullptr) {
    auto* p = ::google::protobuf::MessageLite::DefaultConstruct<::lens::LensOverlayRequestContext>(GetArena());
    _impl_.request_context_ = reinterpret_cast<::lens::LensOverlayRequestContext*>(p);
  }
  return _impl_.request_context_;
}
inline ::lens::LensOverlayRequestContext* PROTOBUF_NONNULL LensOverlayObjectsRequest::mutable_request_context()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::lens::LensOverlayRequestContext* _msg = _internal_mutable_request_context();
  // @@protoc_insertion_point(field_mutable:lens.LensOverlayObjectsRequest.request_context)
  return _msg;
}
inline void LensOverlayObjectsRequest::set_allocated_request_context(::lens::LensOverlayRequestContext* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.request_context_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }

  _impl_.request_context_ = reinterpret_cast<::lens::LensOverlayRequestContext*>(value);
  // @@protoc_insertion_point(field_set_allocated:lens.LensOverlayObjectsRequest.request_context)
}

// .lens.ImageData image_data = 3;
inline bool LensOverlayObjectsRequest::has_image_data() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000002U);
  PROTOBUF_ASSUME(!value || _impl_.image_data_ != nullptr);
  return value;
}
inline const ::lens::ImageData& LensOverlayObjectsRequest::_internal_image_data() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::lens::ImageData* p = _impl_.image_data_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::lens::ImageData>(&::lens::ImageData_globals_);
}
inline const ::lens::ImageData& LensOverlayObjectsRequest::image_data() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:lens.LensOverlayObjectsRequest.image_data)
  return _internal_image_data();
}
inline void LensOverlayObjectsRequest::unsafe_arena_set_allocated_image_data(
    ::lens::ImageData* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.image_data_);
  }
  _impl_.image_data_ = reinterpret_cast<::lens::ImageData*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:lens.LensOverlayObjectsRequest.image_data)
}
inline ::lens::ImageData* PROTOBUF_NULLABLE LensOverlayObjectsRequest::release_image_data() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::lens::ImageData* released = _impl_.image_data_;
  _impl_.image_data_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::lens::ImageData* PROTOBUF_NULLABLE LensOverlayObjectsRequest::unsafe_arena_release_image_data() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:lens.LensOverlayObjectsRequest.image_data)

  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::lens::ImageData* temp = _impl_.image_data_;
  _impl_.image_data_ = nullptr;
  return temp;
}
inline ::lens::ImageData* PROTOBUF_NONNULL LensOverlayObjectsRequest::_internal_mutable_image_data() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.image_data_ == nullptr) {
    auto* p = ::google::protobuf::MessageLite::DefaultConstruct<::lens::ImageData>(GetArena());
    _impl_.image_data_ = reinterpret_cast<::lens::ImageData*>(p);
  }
  return _impl_.image_data_;
}
inline ::lens::ImageData* PROTOBUF_NONNULL LensOverlayObjectsRequest::mutable_image_data()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::lens::ImageData* _msg = _internal_mutable_image_data();
  // @@protoc_insertion_point(field_mutable:lens.LensOverlayObjectsRequest.image_data)
  return _msg;
}
inline void LensOverlayObjectsRequest::set_allocated_image_data(::lens::ImageData* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.image_data_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = reinterpret_cast<::google::protobuf::MessageLite*>(value)->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }

  _impl_.image_data_ = reinterpret_cast<::lens::ImageData*>(value);
  // @@protoc_insertion_point(field_set_allocated:lens.LensOverlayObjectsRequest.image_data)
}

// .lens.Payload payload = 4;
inline bool LensOverlayObjectsRequest::has_payload() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000004U);
  PROTOBUF_ASSUME(!value || _impl_.payload_ != nullptr);
  return value;
}
inline void LensOverlayObjectsRequest::clear_payload() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.payload_ != nullptr) _impl_.payload_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline const ::lens::Payload& LensOverlayObjectsRequest::_internal_payload() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::lens::Payload* p = _impl_.payload_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::lens::Payload>(&::lens::Payload_globals_);
}
inline const ::lens::Payload& LensOverlayObjectsRequest::payload() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:lens.LensOverlayObjectsRequest.payload)
  return _internal_payload();
}
inline void LensOverlayObjectsRequest::unsafe_arena_set_allocated_payload(
    ::lens::Payload* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.payload_);
  }
  _impl_.payload_ = reinterpret_cast<::lens::Payload*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:lens.LensOverlayObjectsRequest.payload)
}
inline ::lens::Payload* PROTOBUF_NULLABLE LensOverlayObjectsRequest::release_payload() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::lens::Payload* released = _impl_.payload_;
  _impl_.payload_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::lens::Payload* PROTOBUF_NULLABLE LensOverlayObjectsRequest::unsafe_arena_release_payload() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:lens.LensOverlayObjectsRequest.payload)

  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::lens::Payload* temp = _impl_.payload_;
  _impl_.payload_ = nullptr;
  return temp;
}
inline ::lens::Payload* PROTOBUF_NONNULL LensOverlayObjectsRequest::_internal_mutable_payload() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.payload_ == nullptr) {
    auto* p = ::google::protobuf::MessageLite::DefaultConstruct<::lens::Payload>(GetArena());
    _impl_.payload_ = reinterpret_cast<::lens::Payload*>(p);
  }
  return _impl_.payload_;
}
inline ::lens::Payload* PROTOBUF_NONNULL LensOverlayObjectsRequest::mutable_payload()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::lens::Payload* _msg = _internal_mutable_payload();
  // @@protoc_insertion_point(field_mutable:lens.LensOverlayObjectsRequest.payload)
  return _msg;
}
inline void LensOverlayObjectsRequest::set_allocated_payload(::lens::Payload* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.payload_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  }

  _impl_.payload_ = reinterpret_cast<::lens::Payload*>(value);
  // @@protoc_insertion_point(field_set_allocated:lens.LensOverlayObjectsRequest.payload)
}

// .lens.ViewportRequestContext viewport_request_context = 5;
inline bool LensOverlayObjectsRequest::has_viewport_request_context() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000008U);
  PROTOBUF_ASSUME(!value || _impl_.viewport_request_context_ != nullptr);
  return value;
}
inline void LensOverlayObjectsRequest::clear_viewport_request_context() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.viewport_request_context_ != nullptr) _impl_.viewport_request_context_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
}
inline const ::lens::ViewportRequestContext& LensOverlayObjectsRequest::_internal_viewport_request_context() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::lens::ViewportRequestContext* p = _impl_.viewport_request_context_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::lens::ViewportRequestContext>(&::lens::ViewportRequestContext_globals_);
}
inline const ::lens::ViewportRequestContext& LensOverlayObjectsRequest::viewport_request_context() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:lens.LensOverlayObjectsRequest.viewport_request_context)
  return _internal_viewport_request_context();
}
inline void LensOverlayObjectsRequest::unsafe_arena_set_allocated_viewport_request_context(
    ::lens::ViewportRequestContext* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.viewport_request_context_);
  }
  _impl_.viewport_request_context_ = reinterpret_cast<::lens::ViewportRequestContext*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:lens.LensOverlayObjectsRequest.viewport_request_context)
}
inline ::lens::ViewportRequestContext* PROTOBUF_NULLABLE LensOverlayObjectsRequest::release_viewport_request_context() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  ::lens::ViewportRequestContext* released = _impl_.viewport_request_context_;
  _impl_.viewport_request_context_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::lens::ViewportRequestContext* PROTOBUF_NULLABLE LensOverlayObjectsRequest::unsafe_arena_release_viewport_request_context() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:lens.LensOverlayObjectsRequest.viewport_request_context)

  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  ::lens::ViewportRequestContext* temp = _impl_.viewport_request_context_;
  _impl_.viewport_request_context_ = nullptr;
  return temp;
}
inline ::lens::ViewportRequestContext* PROTOBUF_NONNULL LensOverlayObjectsRequest::_internal_mutable_viewport_request_context() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.viewport_request_context_ == nullptr) {
    auto* p = ::google::protobuf::MessageLite::DefaultConstruct<::lens::ViewportRequestContext>(GetArena());
    _impl_.viewport_request_context_ = reinterpret_cast<::lens::ViewportRequestContext*>(p);
  }
  return _impl_.viewport_request_context_;
}
inline ::lens::ViewportRequestContext* PROTOBUF_NONNULL LensOverlayObjectsRequest::mutable_viewport_request_context()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  ::lens::ViewportRequestContext* _msg = _internal_mutable_viewport_request_context();
  // @@protoc_insertion_point(field_mutable:lens.LensOverlayObjectsRequest.viewport_request_context)
  return _msg;
}
inline void LensOverlayObjectsRequest::set_allocated_viewport_request_context(::lens::ViewportRequestContext* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.viewport_request_context_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  }

  _impl_.viewport_request_context_ = reinterpret_cast<::lens::ViewportRequestContext*>(value);
  // @@protoc_insertion_point(field_set_allocated:lens.LensOverlayObjectsRequest.viewport_request_context)
}

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

// LensOverlayUploadChunkRequest

// .lens.LensOverlayRequestContext request_context = 1;
inline bool LensOverlayUploadChunkRequest::has_request_context() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000002U);
  PROTOBUF_ASSUME(!value || _impl_.request_context_ != nullptr);
  return value;
}
inline void LensOverlayUploadChunkRequest::clear_request_context() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.request_context_ != nullptr) _impl_.request_context_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::lens::LensOverlayRequestContext& LensOverlayUploadChunkRequest::_internal_request_context() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::lens::LensOverlayRequestContext* p = _impl_.request_context_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::lens::LensOverlayRequestContext>(&::lens::LensOverlayRequestContext_globals_);
}
inline const ::lens::LensOverlayRequestContext& LensOverlayUploadChunkRequest::request_context() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:lens.LensOverlayUploadChunkRequest.request_context)
  return _internal_request_context();
}
inline void LensOverlayUploadChunkRequest::unsafe_arena_set_allocated_request_context(
    ::lens::LensOverlayRequestContext* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.request_context_);
  }
  _impl_.request_context_ = reinterpret_cast<::lens::LensOverlayRequestContext*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:lens.LensOverlayUploadChunkRequest.request_context)
}
inline ::lens::LensOverlayRequestContext* PROTOBUF_NULLABLE LensOverlayUploadChunkRequest::release_request_context() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::lens::LensOverlayRequestContext* released = _impl_.request_context_;
  _impl_.request_context_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::lens::LensOverlayRequestContext* PROTOBUF_NULLABLE LensOverlayUploadChunkRequest::unsafe_arena_release_request_context() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:lens.LensOverlayUploadChunkRequest.request_context)

  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::lens::LensOverlayRequestContext* temp = _impl_.request_context_;
  _impl_.request_context_ = nullptr;
  return temp;
}
inline ::lens::LensOverlayRequestContext* PROTOBUF_NONNULL LensOverlayUploadChunkRequest::_internal_mutable_request_context() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.request_context_ == nullptr) {
    auto* p = ::google::protobuf::MessageLite::DefaultConstruct<::lens::LensOverlayRequestContext>(GetArena());
    _impl_.request_context_ = reinterpret_cast<::lens::LensOverlayRequestContext*>(p);
  }
  return _impl_.request_context_;
}
inline ::lens::LensOverlayRequestContext* PROTOBUF_NONNULL LensOverlayUploadChunkRequest::mutable_request_context()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::lens::LensOverlayRequestContext* _msg = _internal_mutable_request_context();
  // @@protoc_insertion_point(field_mutable:lens.LensOverlayUploadChunkRequest.request_context)
  return _msg;
}
inline void LensOverlayUploadChunkRequest::set_allocated_request_context(::lens::LensOverlayRequestContext* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.request_context_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }

  _impl_.request_context_ = reinterpret_cast<::lens::LensOverlayRequestContext*>(value);
  // @@protoc_insertion_point(field_set_allocated:lens.LensOverlayUploadChunkRequest.request_context)
}

// .lens.ChunkDebugOptions debug_options = 6;
inline bool LensOverlayUploadChunkRequest::has_debug_options() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000004U);
  PROTOBUF_ASSUME(!value || _impl_.debug_options_ != nullptr);
  return value;
}
inline void LensOverlayUploadChunkRequest::clear_debug_options() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.debug_options_ != nullptr) _impl_.debug_options_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline const ::lens::ChunkDebugOptions& LensOverlayUploadChunkRequest::_internal_debug_options() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::lens::ChunkDebugOptions* p = _impl_.debug_options_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::lens::ChunkDebugOptions>(&::lens::ChunkDebugOptions_globals_);
}
inline const ::lens::ChunkDebugOptions& LensOverlayUploadChunkRequest::debug_options() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:lens.LensOverlayUploadChunkRequest.debug_options)
  return _internal_debug_options();
}
inline void LensOverlayUploadChunkRequest::unsafe_arena_set_allocated_debug_options(
    ::lens::ChunkDebugOptions* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.debug_options_);
  }
  _impl_.debug_options_ = reinterpret_cast<::lens::ChunkDebugOptions*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:lens.LensOverlayUploadChunkRequest.debug_options)
}
inline ::lens::ChunkDebugOptions* PROTOBUF_NULLABLE LensOverlayUploadChunkRequest::release_debug_options() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::lens::ChunkDebugOptions* released = _impl_.debug_options_;
  _impl_.debug_options_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::lens::ChunkDebugOptions* PROTOBUF_NULLABLE LensOverlayUploadChunkRequest::unsafe_arena_release_debug_options() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:lens.LensOverlayUploadChunkRequest.debug_options)

  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::lens::ChunkDebugOptions* temp = _impl_.debug_options_;
  _impl_.debug_options_ = nullptr;
  return temp;
}
inline ::lens::ChunkDebugOptions* PROTOBUF_NONNULL LensOverlayUploadChunkRequest::_internal_mutable_debug_options() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.debug_options_ == nullptr) {
    auto* p = ::google::protobuf::MessageLite::DefaultConstruct<::lens::ChunkDebugOptions>(GetArena());
    _impl_.debug_options_ = reinterpret_cast<::lens::ChunkDebugOptions*>(p);
  }
  return _impl_.debug_options_;
}
inline ::lens::ChunkDebugOptions* PROTOBUF_NONNULL LensOverlayUploadChunkRequest::mutable_debug_options()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::lens::ChunkDebugOptions* _msg = _internal_mutable_debug_options();
  // @@protoc_insertion_point(field_mutable:lens.LensOverlayUploadChunkRequest.debug_options)
  return _msg;
}
inline void LensOverlayUploadChunkRequest::set_allocated_debug_options(::lens::ChunkDebugOptions* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.debug_options_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  }

  _impl_.debug_options_ = reinterpret_cast<::lens::ChunkDebugOptions*>(value);
  // @@protoc_insertion_point(field_set_allocated:lens.LensOverlayUploadChunkRequest.debug_options)
}

// int64 chunk_id = 3;
inline void LensOverlayUploadChunkRequest::clear_chunk_id() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.chunk_id_ = ::int64_t{0};
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
}
inline ::int64_t LensOverlayUploadChunkRequest::chunk_id() const {
  // @@protoc_insertion_point(field_get:lens.LensOverlayUploadChunkRequest.chunk_id)
  return _internal_chunk_id();
}
inline void LensOverlayUploadChunkRequest::set_chunk_id(::int64_t value) {
  _internal_set_chunk_id(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  // @@protoc_insertion_point(field_set:lens.LensOverlayUploadChunkRequest.chunk_id)
}
inline ::int64_t LensOverlayUploadChunkRequest::_internal_chunk_id() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.chunk_id_;
}
inline void LensOverlayUploadChunkRequest::_internal_set_chunk_id(::int64_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.chunk_id_ = value;
}

// bytes chunk_bytes = 4;
inline void LensOverlayUploadChunkRequest::clear_chunk_bytes() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.chunk_bytes_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::std::string& LensOverlayUploadChunkRequest::chunk_bytes() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:lens.LensOverlayUploadChunkRequest.chunk_bytes)
  return _internal_chunk_bytes();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void LensOverlayUploadChunkRequest::set_chunk_bytes(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  _impl_.chunk_bytes_.SetBytes(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:lens.LensOverlayUploadChunkRequest.chunk_bytes)
}
inline ::std::string* PROTOBUF_NONNULL LensOverlayUploadChunkRequest::mutable_chunk_bytes()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::std::string* _s = _internal_mutable_chunk_bytes();
  // @@protoc_insertion_point(field_mutable:lens.LensOverlayUploadChunkRequest.chunk_bytes)
  return _s;
}
inline const ::std::string& LensOverlayUploadChunkRequest::_internal_chunk_bytes() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.chunk_bytes_.Get();
}
inline void LensOverlayUploadChunkRequest::_internal_set_chunk_bytes(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.chunk_bytes_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL LensOverlayUploadChunkRequest::_internal_mutable_chunk_bytes() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.chunk_bytes_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE LensOverlayUploadChunkRequest::release_chunk_bytes() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:lens.LensOverlayUploadChunkRequest.chunk_bytes)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000001U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  auto* released = _impl_.chunk_bytes_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.chunk_bytes_.Set("", GetArena());
  }
  return released;
}
inline void LensOverlayUploadChunkRequest::set_allocated_chunk_bytes(::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_.chunk_bytes_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.chunk_bytes_.IsDefault()) {
    _impl_.chunk_bytes_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:lens.LensOverlayUploadChunkRequest.chunk_bytes)
}

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

// LensOverlayUploadChunkResponse

// .lens.ChunkDebugMetadata debug_metadata = 2;
inline bool LensOverlayUploadChunkResponse::has_debug_metadata() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  PROTOBUF_ASSUME(!value || _impl_.debug_metadata_ != nullptr);
  return value;
}
inline void LensOverlayUploadChunkResponse::clear_debug_metadata() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.debug_metadata_ != nullptr) _impl_.debug_metadata_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::lens::ChunkDebugMetadata& LensOverlayUploadChunkResponse::_internal_debug_metadata() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::lens::ChunkDebugMetadata* p = _impl_.debug_metadata_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::lens::ChunkDebugMetadata>(&::lens::ChunkDebugMetadata_globals_);
}
inline const ::lens::ChunkDebugMetadata& LensOverlayUploadChunkResponse::debug_metadata() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:lens.LensOverlayUploadChunkResponse.debug_metadata)
  return _internal_debug_metadata();
}
inline void LensOverlayUploadChunkResponse::unsafe_arena_set_allocated_debug_metadata(
    ::lens::ChunkDebugMetadata* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.debug_metadata_);
  }
  _impl_.debug_metadata_ = reinterpret_cast<::lens::ChunkDebugMetadata*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:lens.LensOverlayUploadChunkResponse.debug_metadata)
}
inline ::lens::ChunkDebugMetadata* PROTOBUF_NULLABLE LensOverlayUploadChunkResponse::release_debug_metadata() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::lens::ChunkDebugMetadata* released = _impl_.debug_metadata_;
  _impl_.debug_metadata_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::lens::ChunkDebugMetadata* PROTOBUF_NULLABLE LensOverlayUploadChunkResponse::unsafe_arena_release_debug_metadata() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:lens.LensOverlayUploadChunkResponse.debug_metadata)

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::lens::ChunkDebugMetadata* temp = _impl_.debug_metadata_;
  _impl_.debug_metadata_ = nullptr;
  return temp;
}
inline ::lens::ChunkDebugMetadata* PROTOBUF_NONNULL LensOverlayUploadChunkResponse::_internal_mutable_debug_metadata() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.debug_metadata_ == nullptr) {
    auto* p = ::google::protobuf::MessageLite::DefaultConstruct<::lens::ChunkDebugMetadata>(GetArena());
    _impl_.debug_metadata_ = reinterpret_cast<::lens::ChunkDebugMetadata*>(p);
  }
  return _impl_.debug_metadata_;
}
inline ::lens::ChunkDebugMetadata* PROTOBUF_NONNULL LensOverlayUploadChunkResponse::mutable_debug_metadata()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::lens::ChunkDebugMetadata* _msg = _internal_mutable_debug_metadata();
  // @@protoc_insertion_point(field_mutable:lens.LensOverlayUploadChunkResponse.debug_metadata)
  return _msg;
}
inline void LensOverlayUploadChunkResponse::set_allocated_debug_metadata(::lens::ChunkDebugMetadata* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.debug_metadata_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }

  _impl_.debug_metadata_ = reinterpret_cast<::lens::ChunkDebugMetadata*>(value);
  // @@protoc_insertion_point(field_set_allocated:lens.LensOverlayUploadChunkResponse.debug_metadata)
}

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

// ChunkDebugOptions

// int64 total_chunks = 1;
inline void ChunkDebugOptions::clear_total_chunks() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.total_chunks_ = ::int64_t{0};
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline ::int64_t ChunkDebugOptions::total_chunks() const {
  // @@protoc_insertion_point(field_get:lens.ChunkDebugOptions.total_chunks)
  return _internal_total_chunks();
}
inline void ChunkDebugOptions::set_total_chunks(::int64_t value) {
  _internal_set_total_chunks(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_set:lens.ChunkDebugOptions.total_chunks)
}
inline ::int64_t ChunkDebugOptions::_internal_total_chunks() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.total_chunks_;
}
inline void ChunkDebugOptions::_internal_set_total_chunks(::int64_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.total_chunks_ = value;
}

// bool query_chunks = 2;
inline void ChunkDebugOptions::clear_query_chunks() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.query_chunks_ = false;
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline bool ChunkDebugOptions::query_chunks() const {
  // @@protoc_insertion_point(field_get:lens.ChunkDebugOptions.query_chunks)
  return _internal_query_chunks();
}
inline void ChunkDebugOptions::set_query_chunks(bool value) {
  _internal_set_query_chunks(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_set:lens.ChunkDebugOptions.query_chunks)
}
inline bool ChunkDebugOptions::_internal_query_chunks() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.query_chunks_;
}
inline void ChunkDebugOptions::_internal_set_query_chunks(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.query_chunks_ = value;
}

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

// ChunkDebugMetadata

// repeated int64 remaining_chunks = 1;
inline int ChunkDebugMetadata::_internal_remaining_chunks_size() const {
  return _internal_remaining_chunks().size();
}
inline int ChunkDebugMetadata::remaining_chunks_size() const {
  return _internal_remaining_chunks_size();
}
inline void ChunkDebugMetadata::clear_remaining_chunks() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.remaining_chunks_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline ::int64_t ChunkDebugMetadata::remaining_chunks(int index) const {
  // @@protoc_insertion_point(field_get:lens.ChunkDebugMetadata.remaining_chunks)
  return _internal_remaining_chunks().Get(index);
}
inline void ChunkDebugMetadata::set_remaining_chunks(int index, ::int64_t value) {
  _internal_mutable_remaining_chunks()->Set(index, value);
  // @@protoc_insertion_point(field_set:lens.ChunkDebugMetadata.remaining_chunks)
}
inline void ChunkDebugMetadata::add_remaining_chunks(::int64_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _internal_mutable_remaining_chunks()
      ->InternalAddWithArena<const ::google::protobuf::MessageLite*>(
          internal_visibility(), this, value);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add:lens.ChunkDebugMetadata.remaining_chunks)
}
inline const ::google::protobuf::RepeatedField<::int64_t>& ChunkDebugMetadata::remaining_chunks() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:lens.ChunkDebugMetadata.remaining_chunks)
  return _internal_remaining_chunks();
}
inline ::google::protobuf::RepeatedField<::int64_t>* PROTOBUF_NONNULL ChunkDebugMetadata::mutable_remaining_chunks()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_mutable_list:lens.ChunkDebugMetadata.remaining_chunks)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_remaining_chunks();
}
inline const ::google::protobuf::RepeatedField<::int64_t>&
ChunkDebugMetadata::_internal_remaining_chunks() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.remaining_chunks_;
}
inline ::google::protobuf::RepeatedField<::int64_t>* PROTOBUF_NONNULL
ChunkDebugMetadata::_internal_mutable_remaining_chunks() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.remaining_chunks_;
}

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

// LensOverlayObjectsResponse

// repeated .lens.OverlayObject overlay_objects = 2;
inline int LensOverlayObjectsResponse::_internal_overlay_objects_size() const {
  return _internal_overlay_objects().size();
}
inline int LensOverlayObjectsResponse::overlay_objects_size() const {
  return _internal_overlay_objects_size();
}
inline const ::lens::OverlayObject& LensOverlayObjectsResponse::overlay_objects(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:lens.LensOverlayObjectsResponse.overlay_objects)
  return _internal_overlay_objects().Get(index);
}
inline ::lens::OverlayObject* PROTOBUF_NONNULL LensOverlayObjectsResponse::mutable_overlay_objects(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:lens.LensOverlayObjectsResponse.overlay_objects)
  return _internal_mutable_overlay_objects()->Mutable(index);
}
inline ::lens::OverlayObject* PROTOBUF_NONNULL LensOverlayObjectsResponse::add_overlay_objects()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::lens::OverlayObject* _add =
      _internal_mutable_overlay_objects()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add:lens.LensOverlayObjectsResponse.overlay_objects)
  return _add;
}
inline const ::google::protobuf::RepeatedPtrField<::lens::OverlayObject>& LensOverlayObjectsResponse::overlay_objects() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:lens.LensOverlayObjectsResponse.overlay_objects)
  return _internal_overlay_objects();
}
inline ::google::protobuf::RepeatedPtrField<::lens::OverlayObject>* PROTOBUF_NONNULL
LensOverlayObjectsResponse::mutable_overlay_objects() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_mutable_list:lens.LensOverlayObjectsResponse.overlay_objects)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_overlay_objects();
}
inline const ::google::protobuf::RepeatedPtrField<::lens::OverlayObject>&
LensOverlayObjectsResponse::_internal_overlay_objects() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.overlay_objects_;
}
inline ::google::protobuf::RepeatedPtrField<::lens::OverlayObject>* PROTOBUF_NONNULL
LensOverlayObjectsResponse::_internal_mutable_overlay_objects() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.overlay_objects_;
}

// .lens.Text text = 3;
inline bool LensOverlayObjectsResponse::has_text() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000004U);
  PROTOBUF_ASSUME(!value || _impl_.text_ != nullptr);
  return value;
}
inline const ::lens::Text& LensOverlayObjectsResponse::_internal_text() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::lens::Text* p = _impl_.text_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::lens::Text>(&::lens::Text_globals_);
}
inline const ::lens::Text& LensOverlayObjectsResponse::text() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:lens.LensOverlayObjectsResponse.text)
  return _internal_text();
}
inline void LensOverlayObjectsResponse::unsafe_arena_set_allocated_text(
    ::lens::Text* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.text_);
  }
  _impl_.text_ = reinterpret_cast<::lens::Text*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:lens.LensOverlayObjectsResponse.text)
}
inline ::lens::Text* PROTOBUF_NULLABLE LensOverlayObjectsResponse::release_text() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::lens::Text* released = _impl_.text_;
  _impl_.text_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::lens::Text* PROTOBUF_NULLABLE LensOverlayObjectsResponse::unsafe_arena_release_text() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:lens.LensOverlayObjectsResponse.text)

  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::lens::Text* temp = _impl_.text_;
  _impl_.text_ = nullptr;
  return temp;
}
inline ::lens::Text* PROTOBUF_NONNULL LensOverlayObjectsResponse::_internal_mutable_text() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.text_ == nullptr) {
    auto* p = ::google::protobuf::MessageLite::DefaultConstruct<::lens::Text>(GetArena());
    _impl_.text_ = reinterpret_cast<::lens::Text*>(p);
  }
  return _impl_.text_;
}
inline ::lens::Text* PROTOBUF_NONNULL LensOverlayObjectsResponse::mutable_text()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::lens::Text* _msg = _internal_mutable_text();
  // @@protoc_insertion_point(field_mutable:lens.LensOverlayObjectsResponse.text)
  return _msg;
}
inline void LensOverlayObjectsResponse::set_allocated_text(::lens::Text* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.text_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = reinterpret_cast<::google::protobuf::MessageLite*>(value)->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  }

  _impl_.text_ = reinterpret_cast<::lens::Text*>(value);
  // @@protoc_insertion_point(field_set_allocated:lens.LensOverlayObjectsResponse.text)
}

// repeated .lens.DeepGleamData deep_gleams = 4;
inline int LensOverlayObjectsResponse::_internal_deep_gleams_size() const {
  return _internal_deep_gleams().size();
}
inline int LensOverlayObjectsResponse::deep_gleams_size() const {
  return _internal_deep_gleams_size();
}
inline const ::lens::DeepGleamData& LensOverlayObjectsResponse::deep_gleams(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:lens.LensOverlayObjectsResponse.deep_gleams)
  return _internal_deep_gleams().Get(index);
}
inline ::lens::DeepGleamData* PROTOBUF_NONNULL LensOverlayObjectsResponse::mutable_deep_gleams(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:lens.LensOverlayObjectsResponse.deep_gleams)
  return _internal_mutable_deep_gleams()->Mutable(index);
}
inline ::lens::DeepGleamData* PROTOBUF_NONNULL LensOverlayObjectsResponse::add_deep_gleams()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::lens::DeepGleamData* _add =
      _internal_mutable_deep_gleams()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_add:lens.LensOverlayObjectsResponse.deep_gleams)
  return _add;
}
inline const ::google::protobuf::RepeatedPtrField<::lens::DeepGleamData>& LensOverlayObjectsResponse::deep_gleams() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:lens.LensOverlayObjectsResponse.deep_gleams)
  return _internal_deep_gleams();
}
inline ::google::protobuf::RepeatedPtrField<::lens::DeepGleamData>* PROTOBUF_NONNULL
LensOverlayObjectsResponse::mutable_deep_gleams() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_mutable_list:lens.LensOverlayObjectsResponse.deep_gleams)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_deep_gleams();
}
inline const ::google::protobuf::RepeatedPtrField<::lens::DeepGleamData>&
LensOverlayObjectsResponse::_internal_deep_gleams() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.deep_gleams_;
}
inline ::google::protobuf::RepeatedPtrField<::lens::DeepGleamData>* PROTOBUF_NONNULL
LensOverlayObjectsResponse::_internal_mutable_deep_gleams() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.deep_gleams_;
}

// .lens.LensOverlayClusterInfo cluster_info = 7;
inline bool LensOverlayObjectsResponse::has_cluster_info() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000008U);
  PROTOBUF_ASSUME(!value || _impl_.cluster_info_ != nullptr);
  return value;
}
inline const ::lens::LensOverlayClusterInfo& LensOverlayObjectsResponse::_internal_cluster_info() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::lens::LensOverlayClusterInfo* p = _impl_.cluster_info_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::lens::LensOverlayClusterInfo>(&::lens::LensOverlayClusterInfo_globals_);
}
inline const ::lens::LensOverlayClusterInfo& LensOverlayObjectsResponse::cluster_info() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:lens.LensOverlayObjectsResponse.cluster_info)
  return _internal_cluster_info();
}
inline void LensOverlayObjectsResponse::unsafe_arena_set_allocated_cluster_info(
    ::lens::LensOverlayClusterInfo* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.cluster_info_);
  }
  _impl_.cluster_info_ = reinterpret_cast<::lens::LensOverlayClusterInfo*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:lens.LensOverlayObjectsResponse.cluster_info)
}
inline ::lens::LensOverlayClusterInfo* PROTOBUF_NULLABLE LensOverlayObjectsResponse::release_cluster_info() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  ::lens::LensOverlayClusterInfo* released = _impl_.cluster_info_;
  _impl_.cluster_info_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::lens::LensOverlayClusterInfo* PROTOBUF_NULLABLE LensOverlayObjectsResponse::unsafe_arena_release_cluster_info() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:lens.LensOverlayObjectsResponse.cluster_info)

  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  ::lens::LensOverlayClusterInfo* temp = _impl_.cluster_info_;
  _impl_.cluster_info_ = nullptr;
  return temp;
}
inline ::lens::LensOverlayClusterInfo* PROTOBUF_NONNULL LensOverlayObjectsResponse::_internal_mutable_cluster_info() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.cluster_info_ == nullptr) {
    auto* p = ::google::protobuf::MessageLite::DefaultConstruct<::lens::LensOverlayClusterInfo>(GetArena());
    _impl_.cluster_info_ = reinterpret_cast<::lens::LensOverlayClusterInfo*>(p);
  }
  return _impl_.cluster_info_;
}
inline ::lens::LensOverlayClusterInfo* PROTOBUF_NONNULL LensOverlayObjectsResponse::mutable_cluster_info()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  ::lens::LensOverlayClusterInfo* _msg = _internal_mutable_cluster_info();
  // @@protoc_insertion_point(field_mutable:lens.LensOverlayObjectsResponse.cluster_info)
  return _msg;
}
inline void LensOverlayObjectsResponse::set_allocated_cluster_info(::lens::LensOverlayClusterInfo* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.cluster_info_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = reinterpret_cast<::google::protobuf::MessageLite*>(value)->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  }

  _impl_.cluster_info_ = reinterpret_cast<::lens::LensOverlayClusterInfo*>(value);
  // @@protoc_insertion_point(field_set_allocated:lens.LensOverlayObjectsResponse.cluster_info)
}

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

// LensOverlayInteractionRequest

// .lens.LensOverlayRequestContext request_context = 1;
inline bool LensOverlayInteractionRequest::has_request_context() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  PROTOBUF_ASSUME(!value || _impl_.request_context_ != nullptr);
  return value;
}
inline void LensOverlayInteractionRequest::clear_request_context() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.request_context_ != nullptr) _impl_.request_context_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::lens::LensOverlayRequestContext& LensOverlayInteractionRequest::_internal_request_context() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::lens::LensOverlayRequestContext* p = _impl_.request_context_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::lens::LensOverlayRequestContext>(&::lens::LensOverlayRequestContext_globals_);
}
inline const ::lens::LensOverlayRequestContext& LensOverlayInteractionRequest::request_context() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:lens.LensOverlayInteractionRequest.request_context)
  return _internal_request_context();
}
inline void LensOverlayInteractionRequest::unsafe_arena_set_allocated_request_context(
    ::lens::LensOverlayRequestContext* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.request_context_);
  }
  _impl_.request_context_ = reinterpret_cast<::lens::LensOverlayRequestContext*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:lens.LensOverlayInteractionRequest.request_context)
}
inline ::lens::LensOverlayRequestContext* PROTOBUF_NULLABLE LensOverlayInteractionRequest::release_request_context() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::lens::LensOverlayRequestContext* released = _impl_.request_context_;
  _impl_.request_context_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::lens::LensOverlayRequestContext* PROTOBUF_NULLABLE LensOverlayInteractionRequest::unsafe_arena_release_request_context() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:lens.LensOverlayInteractionRequest.request_context)

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::lens::LensOverlayRequestContext* temp = _impl_.request_context_;
  _impl_.request_context_ = nullptr;
  return temp;
}
inline ::lens::LensOverlayRequestContext* PROTOBUF_NONNULL LensOverlayInteractionRequest::_internal_mutable_request_context() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.request_context_ == nullptr) {
    auto* p = ::google::protobuf::MessageLite::DefaultConstruct<::lens::LensOverlayRequestContext>(GetArena());
    _impl_.request_context_ = reinterpret_cast<::lens::LensOverlayRequestContext*>(p);
  }
  return _impl_.request_context_;
}
inline ::lens::LensOverlayRequestContext* PROTOBUF_NONNULL LensOverlayInteractionRequest::mutable_request_context()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::lens::LensOverlayRequestContext* _msg = _internal_mutable_request_context();
  // @@protoc_insertion_point(field_mutable:lens.LensOverlayInteractionRequest.request_context)
  return _msg;
}
inline void LensOverlayInteractionRequest::set_allocated_request_context(::lens::LensOverlayRequestContext* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.request_context_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }

  _impl_.request_context_ = reinterpret_cast<::lens::LensOverlayRequestContext*>(value);
  // @@protoc_insertion_point(field_set_allocated:lens.LensOverlayInteractionRequest.request_context)
}

// .lens.LensOverlayInteractionRequestMetadata interaction_request_metadata = 2;
inline bool LensOverlayInteractionRequest::has_interaction_request_metadata() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000002U);
  PROTOBUF_ASSUME(!value || _impl_.interaction_request_metadata_ != nullptr);
  return value;
}
inline const ::lens::LensOverlayInteractionRequestMetadata& LensOverlayInteractionRequest::_internal_interaction_request_metadata() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::lens::LensOverlayInteractionRequestMetadata* p = _impl_.interaction_request_metadata_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::lens::LensOverlayInteractionRequestMetadata>(&::lens::LensOverlayInteractionRequestMetadata_globals_);
}
inline const ::lens::LensOverlayInteractionRequestMetadata& LensOverlayInteractionRequest::interaction_request_metadata() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:lens.LensOverlayInteractionRequest.interaction_request_metadata)
  return _internal_interaction_request_metadata();
}
inline void LensOverlayInteractionRequest::unsafe_arena_set_allocated_interaction_request_metadata(
    ::lens::LensOverlayInteractionRequestMetadata* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.interaction_request_metadata_);
  }
  _impl_.interaction_request_metadata_ = reinterpret_cast<::lens::LensOverlayInteractionRequestMetadata*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:lens.LensOverlayInteractionRequest.interaction_request_metadata)
}
inline ::lens::LensOverlayInteractionRequestMetadata* PROTOBUF_NULLABLE LensOverlayInteractionRequest::release_interaction_request_metadata() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::lens::LensOverlayInteractionRequestMetadata* released = _impl_.interaction_request_metadata_;
  _impl_.interaction_request_metadata_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::lens::LensOverlayInteractionRequestMetadata* PROTOBUF_NULLABLE LensOverlayInteractionRequest::unsafe_arena_release_interaction_request_metadata() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:lens.LensOverlayInteractionRequest.interaction_request_metadata)

  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::lens::LensOverlayInteractionRequestMetadata* temp = _impl_.interaction_request_metadata_;
  _impl_.interaction_request_metadata_ = nullptr;
  return temp;
}
inline ::lens::LensOverlayInteractionRequestMetadata* PROTOBUF_NONNULL LensOverlayInteractionRequest::_internal_mutable_interaction_request_metadata() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.interaction_request_metadata_ == nullptr) {
    auto* p = ::google::protobuf::MessageLite::DefaultConstruct<::lens::LensOverlayInteractionRequestMetadata>(GetArena());
    _impl_.interaction_request_metadata_ = reinterpret_cast<::lens::LensOverlayInteractionRequestMetadata*>(p);
  }
  return _impl_.interaction_request_metadata_;
}
inline ::lens::LensOverlayInteractionRequestMetadata* PROTOBUF_NONNULL LensOverlayInteractionRequest::mutable_interaction_request_metadata()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::lens::LensOverlayInteractionRequestMetadata* _msg = _internal_mutable_interaction_request_metadata();
  // @@protoc_insertion_point(field_mutable:lens.LensOverlayInteractionRequest.interaction_request_metadata)
  return _msg;
}
inline void LensOverlayInteractionRequest::set_allocated_interaction_request_metadata(::lens::LensOverlayInteractionRequestMetadata* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.interaction_request_metadata_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = reinterpret_cast<::google::protobuf::MessageLite*>(value)->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }

  _impl_.interaction_request_metadata_ = reinterpret_cast<::lens::LensOverlayInteractionRequestMetadata*>(value);
  // @@protoc_insertion_point(field_set_allocated:lens.LensOverlayInteractionRequest.interaction_request_metadata)
}

// .lens.ImageCrop image_crop = 3;
inline bool LensOverlayInteractionRequest::has_image_crop() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000004U);
  PROTOBUF_ASSUME(!value || _impl_.image_crop_ != nullptr);
  return value;
}
inline const ::lens::ImageCrop& LensOverlayInteractionRequest::_internal_image_crop() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::lens::ImageCrop* p = _impl_.image_crop_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::lens::ImageCrop>(&::lens::ImageCrop_globals_);
}
inline const ::lens::ImageCrop& LensOverlayInteractionRequest::image_crop() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:lens.LensOverlayInteractionRequest.image_crop)
  return _internal_image_crop();
}
inline void LensOverlayInteractionRequest::unsafe_arena_set_allocated_image_crop(
    ::lens::ImageCrop* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.image_crop_);
  }
  _impl_.image_crop_ = reinterpret_cast<::lens::ImageCrop*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:lens.LensOverlayInteractionRequest.image_crop)
}
inline ::lens::ImageCrop* PROTOBUF_NULLABLE LensOverlayInteractionRequest::release_image_crop() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::lens::ImageCrop* released = _impl_.image_crop_;
  _impl_.image_crop_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::lens::ImageCrop* PROTOBUF_NULLABLE LensOverlayInteractionRequest::unsafe_arena_release_image_crop() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:lens.LensOverlayInteractionRequest.image_crop)

  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::lens::ImageCrop* temp = _impl_.image_crop_;
  _impl_.image_crop_ = nullptr;
  return temp;
}
inline ::lens::ImageCrop* PROTOBUF_NONNULL LensOverlayInteractionRequest::_internal_mutable_image_crop() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.image_crop_ == nullptr) {
    auto* p = ::google::protobuf::MessageLite::DefaultConstruct<::lens::ImageCrop>(GetArena());
    _impl_.image_crop_ = reinterpret_cast<::lens::ImageCrop*>(p);
  }
  return _impl_.image_crop_;
}
inline ::lens::ImageCrop* PROTOBUF_NONNULL LensOverlayInteractionRequest::mutable_image_crop()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::lens::ImageCrop* _msg = _internal_mutable_image_crop();
  // @@protoc_insertion_point(field_mutable:lens.LensOverlayInteractionRequest.image_crop)
  return _msg;
}
inline void LensOverlayInteractionRequest::set_allocated_image_crop(::lens::ImageCrop* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.image_crop_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = reinterpret_cast<::google::protobuf::MessageLite*>(value)->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  }

  _impl_.image_crop_ = reinterpret_cast<::lens::ImageCrop*>(value);
  // @@protoc_insertion_point(field_set_allocated:lens.LensOverlayInteractionRequest.image_crop)
}

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

// LensOverlayInteractionResponse

// string encoded_response = 3;
inline void LensOverlayInteractionResponse::clear_encoded_response() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.encoded_response_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::std::string& LensOverlayInteractionResponse::encoded_response() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:lens.LensOverlayInteractionResponse.encoded_response)
  return _internal_encoded_response();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void LensOverlayInteractionResponse::set_encoded_response(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  _impl_.encoded_response_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:lens.LensOverlayInteractionResponse.encoded_response)
}
inline ::std::string* PROTOBUF_NONNULL LensOverlayInteractionResponse::mutable_encoded_response()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::std::string* _s = _internal_mutable_encoded_response();
  // @@protoc_insertion_point(field_mutable:lens.LensOverlayInteractionResponse.encoded_response)
  return _s;
}
inline const ::std::string& LensOverlayInteractionResponse::_internal_encoded_response() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.encoded_response_.Get();
}
inline void LensOverlayInteractionResponse::_internal_set_encoded_response(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.encoded_response_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL LensOverlayInteractionResponse::_internal_mutable_encoded_response() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.encoded_response_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE LensOverlayInteractionResponse::release_encoded_response() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:lens.LensOverlayInteractionResponse.encoded_response)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000001U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  auto* released = _impl_.encoded_response_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.encoded_response_.Set("", GetArena());
  }
  return released;
}
inline void LensOverlayInteractionResponse::set_allocated_encoded_response(::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_.encoded_response_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.encoded_response_.IsDefault()) {
    _impl_.encoded_response_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:lens.LensOverlayInteractionResponse.encoded_response)
}

// .lens.Text text = 5;
inline bool LensOverlayInteractionResponse::has_text() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000002U);
  PROTOBUF_ASSUME(!value || _impl_.text_ != nullptr);
  return value;
}
inline const ::lens::Text& LensOverlayInteractionResponse::_internal_text() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::lens::Text* p = _impl_.text_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::lens::Text>(&::lens::Text_globals_);
}
inline const ::lens::Text& LensOverlayInteractionResponse::text() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:lens.LensOverlayInteractionResponse.text)
  return _internal_text();
}
inline void LensOverlayInteractionResponse::unsafe_arena_set_allocated_text(
    ::lens::Text* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.text_);
  }
  _impl_.text_ = reinterpret_cast<::lens::Text*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:lens.LensOverlayInteractionResponse.text)
}
inline ::lens::Text* PROTOBUF_NULLABLE LensOverlayInteractionResponse::release_text() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::lens::Text* released = _impl_.text_;
  _impl_.text_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::lens::Text* PROTOBUF_NULLABLE LensOverlayInteractionResponse::unsafe_arena_release_text() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:lens.LensOverlayInteractionResponse.text)

  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::lens::Text* temp = _impl_.text_;
  _impl_.text_ = nullptr;
  return temp;
}
inline ::lens::Text* PROTOBUF_NONNULL LensOverlayInteractionResponse::_internal_mutable_text() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.text_ == nullptr) {
    auto* p = ::google::protobuf::MessageLite::DefaultConstruct<::lens::Text>(GetArena());
    _impl_.text_ = reinterpret_cast<::lens::Text*>(p);
  }
  return _impl_.text_;
}
inline ::lens::Text* PROTOBUF_NONNULL LensOverlayInteractionResponse::mutable_text()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::lens::Text* _msg = _internal_mutable_text();
  // @@protoc_insertion_point(field_mutable:lens.LensOverlayInteractionResponse.text)
  return _msg;
}
inline void LensOverlayInteractionResponse::set_allocated_text(::lens::Text* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.text_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = reinterpret_cast<::google::protobuf::MessageLite*>(value)->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }

  _impl_.text_ = reinterpret_cast<::lens::Text*>(value);
  // @@protoc_insertion_point(field_set_allocated:lens.LensOverlayInteractionResponse.text)
}

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

// Payload

// .lens.RequestType request_type = 6;
inline void Payload::clear_request_type() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.request_type_ = 0;
  ClearHasBit(_impl_._has_bits_[0], 0x00000100U);
}
inline ::lens::RequestType Payload::request_type() const {
  // @@protoc_insertion_point(field_get:lens.Payload.request_type)
  return _internal_request_type();
}
inline void Payload::set_request_type(::lens::RequestType value) {
  _internal_set_request_type(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000100U);
  // @@protoc_insertion_point(field_set:lens.Payload.request_type)
}
inline ::lens::RequestType Payload::_internal_request_type() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return static_cast<::lens::RequestType>(_impl_.request_type_);
}
inline void Payload::_internal_set_request_type(::lens::RequestType value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.request_type_ = value;
}

// .lens.ImageData image_data = 2;
inline bool Payload::has_image_data() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000008U);
  PROTOBUF_ASSUME(!value || _impl_.image_data_ != nullptr);
  return value;
}
inline const ::lens::ImageData& Payload::_internal_image_data() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::lens::ImageData* p = _impl_.image_data_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::lens::ImageData>(&::lens::ImageData_globals_);
}
inline const ::lens::ImageData& Payload::image_data() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:lens.Payload.image_data)
  return _internal_image_data();
}
inline void Payload::unsafe_arena_set_allocated_image_data(
    ::lens::ImageData* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.image_data_);
  }
  _impl_.image_data_ = reinterpret_cast<::lens::ImageData*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:lens.Payload.image_data)
}
inline ::lens::ImageData* PROTOBUF_NULLABLE Payload::release_image_data() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  ::lens::ImageData* released = _impl_.image_data_;
  _impl_.image_data_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::lens::ImageData* PROTOBUF_NULLABLE Payload::unsafe_arena_release_image_data() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:lens.Payload.image_data)

  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  ::lens::ImageData* temp = _impl_.image_data_;
  _impl_.image_data_ = nullptr;
  return temp;
}
inline ::lens::ImageData* PROTOBUF_NONNULL Payload::_internal_mutable_image_data() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.image_data_ == nullptr) {
    auto* p = ::google::protobuf::MessageLite::DefaultConstruct<::lens::ImageData>(GetArena());
    _impl_.image_data_ = reinterpret_cast<::lens::ImageData*>(p);
  }
  return _impl_.image_data_;
}
inline ::lens::ImageData* PROTOBUF_NONNULL Payload::mutable_image_data()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  ::lens::ImageData* _msg = _internal_mutable_image_data();
  // @@protoc_insertion_point(field_mutable:lens.Payload.image_data)
  return _msg;
}
inline void Payload::set_allocated_image_data(::lens::ImageData* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.image_data_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = reinterpret_cast<::google::protobuf::MessageLite*>(value)->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  }

  _impl_.image_data_ = reinterpret_cast<::lens::ImageData*>(value);
  // @@protoc_insertion_point(field_set_allocated:lens.Payload.image_data)
}

// bytes content_data = 3;
inline void Payload::clear_content_data() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.content_data_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::std::string& Payload::content_data() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:lens.Payload.content_data)
  return _internal_content_data();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void Payload::set_content_data(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  _impl_.content_data_.SetBytes(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:lens.Payload.content_data)
}
inline ::std::string* PROTOBUF_NONNULL Payload::mutable_content_data()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::std::string* _s = _internal_mutable_content_data();
  // @@protoc_insertion_point(field_mutable:lens.Payload.content_data)
  return _s;
}
inline const ::std::string& Payload::_internal_content_data() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.content_data_.Get();
}
inline void Payload::_internal_set_content_data(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.content_data_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL Payload::_internal_mutable_content_data() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.content_data_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE Payload::release_content_data() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:lens.Payload.content_data)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000001U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  auto* released = _impl_.content_data_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.content_data_.Set("", GetArena());
  }
  return released;
}
inline void Payload::set_allocated_content_data(::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_.content_data_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.content_data_.IsDefault()) {
    _impl_.content_data_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:lens.Payload.content_data)
}

// string content_type = 4;
inline void Payload::clear_content_type() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.content_type_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::std::string& Payload::content_type() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:lens.Payload.content_type)
  return _internal_content_type();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void Payload::set_content_type(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  _impl_.content_type_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:lens.Payload.content_type)
}
inline ::std::string* PROTOBUF_NONNULL Payload::mutable_content_type()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::std::string* _s = _internal_mutable_content_type();
  // @@protoc_insertion_point(field_mutable:lens.Payload.content_type)
  return _s;
}
inline const ::std::string& Payload::_internal_content_type() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.content_type_.Get();
}
inline void Payload::_internal_set_content_type(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.content_type_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL Payload::_internal_mutable_content_type() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.content_type_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE Payload::release_content_type() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:lens.Payload.content_type)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000002U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  auto* released = _impl_.content_type_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.content_type_.Set("", GetArena());
  }
  return released;
}
inline void Payload::set_allocated_content_type(::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_.content_type_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.content_type_.IsDefault()) {
    _impl_.content_type_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:lens.Payload.content_type)
}

// string page_url = 5;
inline void Payload::clear_page_url() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.page_url_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline const ::std::string& Payload::page_url() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:lens.Payload.page_url)
  return _internal_page_url();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void Payload::set_page_url(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  _impl_.page_url_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:lens.Payload.page_url)
}
inline ::std::string* PROTOBUF_NONNULL Payload::mutable_page_url()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::std::string* _s = _internal_mutable_page_url();
  // @@protoc_insertion_point(field_mutable:lens.Payload.page_url)
  return _s;
}
inline const ::std::string& Payload::_internal_page_url() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.page_url_.Get();
}
inline void Payload::_internal_set_page_url(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.page_url_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL Payload::_internal_mutable_page_url() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.page_url_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE Payload::release_page_url() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:lens.Payload.page_url)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000004U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  auto* released = _impl_.page_url_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.page_url_.Set("", GetArena());
  }
  return released;
}
inline void Payload::set_allocated_page_url(::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_.page_url_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.page_url_.IsDefault()) {
    _impl_.page_url_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:lens.Payload.page_url)
}

// .lens.LensOverlayDocument partial_pdf_document = 7;
inline bool Payload::has_partial_pdf_document() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000010U);
  PROTOBUF_ASSUME(!value || _impl_.partial_pdf_document_ != nullptr);
  return value;
}
inline const ::lens::LensOverlayDocument& Payload::_internal_partial_pdf_document() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::lens::LensOverlayDocument* p = _impl_.partial_pdf_document_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::lens::LensOverlayDocument>(&::lens::LensOverlayDocument_globals_);
}
inline const ::lens::LensOverlayDocument& Payload::partial_pdf_document() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:lens.Payload.partial_pdf_document)
  return _internal_partial_pdf_document();
}
inline void Payload::unsafe_arena_set_allocated_partial_pdf_document(
    ::lens::LensOverlayDocument* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.partial_pdf_document_);
  }
  _impl_.partial_pdf_document_ = reinterpret_cast<::lens::LensOverlayDocument*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:lens.Payload.partial_pdf_document)
}
inline ::lens::LensOverlayDocument* PROTOBUF_NULLABLE Payload::release_partial_pdf_document() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
  ::lens::LensOverlayDocument* released = _impl_.partial_pdf_document_;
  _impl_.partial_pdf_document_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::lens::LensOverlayDocument* PROTOBUF_NULLABLE Payload::unsafe_arena_release_partial_pdf_document() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:lens.Payload.partial_pdf_document)

  ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
  ::lens::LensOverlayDocument* temp = _impl_.partial_pdf_document_;
  _impl_.partial_pdf_document_ = nullptr;
  return temp;
}
inline ::lens::LensOverlayDocument* PROTOBUF_NONNULL Payload::_internal_mutable_partial_pdf_document() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.partial_pdf_document_ == nullptr) {
    auto* p = ::google::protobuf::MessageLite::DefaultConstruct<::lens::LensOverlayDocument>(GetArena());
    _impl_.partial_pdf_document_ = reinterpret_cast<::lens::LensOverlayDocument*>(p);
  }
  return _impl_.partial_pdf_document_;
}
inline ::lens::LensOverlayDocument* PROTOBUF_NONNULL Payload::mutable_partial_pdf_document()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  ::lens::LensOverlayDocument* _msg = _internal_mutable_partial_pdf_document();
  // @@protoc_insertion_point(field_mutable:lens.Payload.partial_pdf_document)
  return _msg;
}
inline void Payload::set_allocated_partial_pdf_document(::lens::LensOverlayDocument* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.partial_pdf_document_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = reinterpret_cast<::google::protobuf::MessageLite*>(value)->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
  }

  _impl_.partial_pdf_document_ = reinterpret_cast<::lens::LensOverlayDocument*>(value);
  // @@protoc_insertion_point(field_set_allocated:lens.Payload.partial_pdf_document)
}

// .lens.CompressionType compression_type = 8;
inline void Payload::clear_compression_type() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.compression_type_ = 0;
  ClearHasBit(_impl_._has_bits_[0], 0x00000200U);
}
inline ::lens::CompressionType Payload::compression_type() const {
  // @@protoc_insertion_point(field_get:lens.Payload.compression_type)
  return _internal_compression_type();
}
inline void Payload::set_compression_type(::lens::CompressionType value) {
  _internal_set_compression_type(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000200U);
  // @@protoc_insertion_point(field_set:lens.Payload.compression_type)
}
inline ::lens::CompressionType Payload::_internal_compression_type() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return static_cast<::lens::CompressionType>(_impl_.compression_type_);
}
inline void Payload::_internal_set_compression_type(::lens::CompressionType value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.compression_type_ = value;
}

// .lens.StoredChunkOptions stored_chunk_options = 9;
inline bool Payload::has_stored_chunk_options() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000020U);
  PROTOBUF_ASSUME(!value || _impl_.stored_chunk_options_ != nullptr);
  return value;
}
inline void Payload::clear_stored_chunk_options() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.stored_chunk_options_ != nullptr) _impl_.stored_chunk_options_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000020U);
}
inline const ::lens::StoredChunkOptions& Payload::_internal_stored_chunk_options() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::lens::StoredChunkOptions* p = _impl_.stored_chunk_options_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::lens::StoredChunkOptions>(&::lens::StoredChunkOptions_globals_);
}
inline const ::lens::StoredChunkOptions& Payload::stored_chunk_options() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:lens.Payload.stored_chunk_options)
  return _internal_stored_chunk_options();
}
inline void Payload::unsafe_arena_set_allocated_stored_chunk_options(
    ::lens::StoredChunkOptions* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.stored_chunk_options_);
  }
  _impl_.stored_chunk_options_ = reinterpret_cast<::lens::StoredChunkOptions*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000020U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000020U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:lens.Payload.stored_chunk_options)
}
inline ::lens::StoredChunkOptions* PROTOBUF_NULLABLE Payload::release_stored_chunk_options() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000020U);
  ::lens::StoredChunkOptions* released = _impl_.stored_chunk_options_;
  _impl_.stored_chunk_options_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::lens::StoredChunkOptions* PROTOBUF_NULLABLE Payload::unsafe_arena_release_stored_chunk_options() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:lens.Payload.stored_chunk_options)

  ClearHasBit(_impl_._has_bits_[0], 0x00000020U);
  ::lens::StoredChunkOptions* temp = _impl_.stored_chunk_options_;
  _impl_.stored_chunk_options_ = nullptr;
  return temp;
}
inline ::lens::StoredChunkOptions* PROTOBUF_NONNULL Payload::_internal_mutable_stored_chunk_options() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.stored_chunk_options_ == nullptr) {
    auto* p = ::google::protobuf::MessageLite::DefaultConstruct<::lens::StoredChunkOptions>(GetArena());
    _impl_.stored_chunk_options_ = reinterpret_cast<::lens::StoredChunkOptions*>(p);
  }
  return _impl_.stored_chunk_options_;
}
inline ::lens::StoredChunkOptions* PROTOBUF_NONNULL Payload::mutable_stored_chunk_options()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000020U);
  ::lens::StoredChunkOptions* _msg = _internal_mutable_stored_chunk_options();
  // @@protoc_insertion_point(field_mutable:lens.Payload.stored_chunk_options)
  return _msg;
}
inline void Payload::set_allocated_stored_chunk_options(::lens::StoredChunkOptions* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.stored_chunk_options_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000020U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000020U);
  }

  _impl_.stored_chunk_options_ = reinterpret_cast<::lens::StoredChunkOptions*>(value);
  // @@protoc_insertion_point(field_set_allocated:lens.Payload.stored_chunk_options)
}

// .lens.Content content = 10;
inline bool Payload::has_content() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000040U);
  PROTOBUF_ASSUME(!value || _impl_.content_ != nullptr);
  return value;
}
inline void Payload::clear_content() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.content_ != nullptr) _impl_.content_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000040U);
}
inline const ::lens::Content& Payload::_internal_content() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::lens::Content* p = _impl_.content_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::lens::Content>(&::lens::Content_globals_);
}
inline const ::lens::Content& Payload::content() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:lens.Payload.content)
  return _internal_content();
}
inline void Payload::unsafe_arena_set_allocated_content(
    ::lens::Content* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.content_);
  }
  _impl_.content_ = reinterpret_cast<::lens::Content*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000040U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000040U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:lens.Payload.content)
}
inline ::lens::Content* PROTOBUF_NULLABLE Payload::release_content() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000040U);
  ::lens::Content* released = _impl_.content_;
  _impl_.content_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::lens::Content* PROTOBUF_NULLABLE Payload::unsafe_arena_release_content() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:lens.Payload.content)

  ClearHasBit(_impl_._has_bits_[0], 0x00000040U);
  ::lens::Content* temp = _impl_.content_;
  _impl_.content_ = nullptr;
  return temp;
}
inline ::lens::Content* PROTOBUF_NONNULL Payload::_internal_mutable_content() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.content_ == nullptr) {
    auto* p = ::google::protobuf::MessageLite::DefaultConstruct<::lens::Content>(GetArena());
    _impl_.content_ = reinterpret_cast<::lens::Content*>(p);
  }
  return _impl_.content_;
}
inline ::lens::Content* PROTOBUF_NONNULL Payload::mutable_content()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000040U);
  ::lens::Content* _msg = _internal_mutable_content();
  // @@protoc_insertion_point(field_mutable:lens.Payload.content)
  return _msg;
}
inline void Payload::set_allocated_content(::lens::Content* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.content_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000040U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000040U);
  }

  _impl_.content_ = reinterpret_cast<::lens::Content*>(value);
  // @@protoc_insertion_point(field_set_allocated:lens.Payload.content)
}

// .lens.LensOverlayContentMetadata content_metadata = 12;
inline bool Payload::has_content_metadata() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000080U);
  PROTOBUF_ASSUME(!value || _impl_.content_metadata_ != nullptr);
  return value;
}
inline const ::lens::LensOverlayContentMetadata& Payload::_internal_content_metadata() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::lens::LensOverlayContentMetadata* p = _impl_.content_metadata_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::lens::LensOverlayContentMetadata>(&::lens::LensOverlayContentMetadata_globals_);
}
inline const ::lens::LensOverlayContentMetadata& Payload::content_metadata() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:lens.Payload.content_metadata)
  return _internal_content_metadata();
}
inline void Payload::unsafe_arena_set_allocated_content_metadata(
    ::lens::LensOverlayContentMetadata* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.content_metadata_);
  }
  _impl_.content_metadata_ = reinterpret_cast<::lens::LensOverlayContentMetadata*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000080U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000080U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:lens.Payload.content_metadata)
}
inline ::lens::LensOverlayContentMetadata* PROTOBUF_NULLABLE Payload::release_content_metadata() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000080U);
  ::lens::LensOverlayContentMetadata* released = _impl_.content_metadata_;
  _impl_.content_metadata_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::lens::LensOverlayContentMetadata* PROTOBUF_NULLABLE Payload::unsafe_arena_release_content_metadata() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:lens.Payload.content_metadata)

  ClearHasBit(_impl_._has_bits_[0], 0x00000080U);
  ::lens::LensOverlayContentMetadata* temp = _impl_.content_metadata_;
  _impl_.content_metadata_ = nullptr;
  return temp;
}
inline ::lens::LensOverlayContentMetadata* PROTOBUF_NONNULL Payload::_internal_mutable_content_metadata() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.content_metadata_ == nullptr) {
    auto* p = ::google::protobuf::MessageLite::DefaultConstruct<::lens::LensOverlayContentMetadata>(GetArena());
    _impl_.content_metadata_ = reinterpret_cast<::lens::LensOverlayContentMetadata*>(p);
  }
  return _impl_.content_metadata_;
}
inline ::lens::LensOverlayContentMetadata* PROTOBUF_NONNULL Payload::mutable_content_metadata()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000080U);
  ::lens::LensOverlayContentMetadata* _msg = _internal_mutable_content_metadata();
  // @@protoc_insertion_point(field_mutable:lens.Payload.content_metadata)
  return _msg;
}
inline void Payload::set_allocated_content_metadata(::lens::LensOverlayContentMetadata* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.content_metadata_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = reinterpret_cast<::google::protobuf::MessageLite*>(value)->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000080U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000080U);
  }

  _impl_.content_metadata_ = reinterpret_cast<::lens::LensOverlayContentMetadata*>(value);
  // @@protoc_insertion_point(field_set_allocated:lens.Payload.content_metadata)
}

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

// StoredChunkOptions

// bool read_stored_chunks = 1;
inline void StoredChunkOptions::clear_read_stored_chunks() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.read_stored_chunks_ = false;
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline bool StoredChunkOptions::read_stored_chunks() const {
  // @@protoc_insertion_point(field_get:lens.StoredChunkOptions.read_stored_chunks)
  return _internal_read_stored_chunks();
}
inline void StoredChunkOptions::set_read_stored_chunks(bool value) {
  _internal_set_read_stored_chunks(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_set:lens.StoredChunkOptions.read_stored_chunks)
}
inline bool StoredChunkOptions::_internal_read_stored_chunks() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.read_stored_chunks_;
}
inline void StoredChunkOptions::_internal_set_read_stored_chunks(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.read_stored_chunks_ = value;
}

// int64 total_stored_chunks = 2;
inline void StoredChunkOptions::clear_total_stored_chunks() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.total_stored_chunks_ = ::int64_t{0};
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline ::int64_t StoredChunkOptions::total_stored_chunks() const {
  // @@protoc_insertion_point(field_get:lens.StoredChunkOptions.total_stored_chunks)
  return _internal_total_stored_chunks();
}
inline void StoredChunkOptions::set_total_stored_chunks(::int64_t value) {
  _internal_set_total_stored_chunks(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_set:lens.StoredChunkOptions.total_stored_chunks)
}
inline ::int64_t StoredChunkOptions::_internal_total_stored_chunks() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.total_stored_chunks_;
}
inline void StoredChunkOptions::_internal_set_total_stored_chunks(::int64_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.total_stored_chunks_ = value;
}

// bool is_read_retry = 3;
inline void StoredChunkOptions::clear_is_read_retry() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.is_read_retry_ = false;
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline bool StoredChunkOptions::is_read_retry() const {
  // @@protoc_insertion_point(field_get:lens.StoredChunkOptions.is_read_retry)
  return _internal_is_read_retry();
}
inline void StoredChunkOptions::set_is_read_retry(bool value) {
  _internal_set_is_read_retry(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  // @@protoc_insertion_point(field_set:lens.StoredChunkOptions.is_read_retry)
}
inline bool StoredChunkOptions::_internal_is_read_retry() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.is_read_retry_;
}
inline void StoredChunkOptions::_internal_set_is_read_retry(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.is_read_retry_ = value;
}

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

// Content

// string webpage_url = 1;
inline void Content::clear_webpage_url() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.webpage_url_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::std::string& Content::webpage_url() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:lens.Content.webpage_url)
  return _internal_webpage_url();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void Content::set_webpage_url(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  _impl_.webpage_url_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:lens.Content.webpage_url)
}
inline ::std::string* PROTOBUF_NONNULL Content::mutable_webpage_url()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::std::string* _s = _internal_mutable_webpage_url();
  // @@protoc_insertion_point(field_mutable:lens.Content.webpage_url)
  return _s;
}
inline const ::std::string& Content::_internal_webpage_url() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.webpage_url_.Get();
}
inline void Content::_internal_set_webpage_url(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.webpage_url_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL Content::_internal_mutable_webpage_url() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.webpage_url_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE Content::release_webpage_url() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:lens.Content.webpage_url)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000002U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  auto* released = _impl_.webpage_url_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.webpage_url_.Set("", GetArena());
  }
  return released;
}
inline void Content::set_allocated_webpage_url(::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_.webpage_url_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.webpage_url_.IsDefault()) {
    _impl_.webpage_url_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:lens.Content.webpage_url)
}

// string webpage_title = 4;
inline void Content::clear_webpage_title() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.webpage_title_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline const ::std::string& Content::webpage_title() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:lens.Content.webpage_title)
  return _internal_webpage_title();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void Content::set_webpage_title(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  _impl_.webpage_title_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:lens.Content.webpage_title)
}
inline ::std::string* PROTOBUF_NONNULL Content::mutable_webpage_title()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::std::string* _s = _internal_mutable_webpage_title();
  // @@protoc_insertion_point(field_mutable:lens.Content.webpage_title)
  return _s;
}
inline const ::std::string& Content::_internal_webpage_title() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.webpage_title_.Get();
}
inline void Content::_internal_set_webpage_title(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.webpage_title_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL Content::_internal_mutable_webpage_title() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.webpage_title_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE Content::release_webpage_title() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:lens.Content.webpage_title)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000004U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  auto* released = _impl_.webpage_title_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.webpage_title_.Set("", GetArena());
  }
  return released;
}
inline void Content::set_allocated_webpage_title(::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_.webpage_title_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.webpage_title_.IsDefault()) {
    _impl_.webpage_title_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:lens.Content.webpage_title)
}

// repeated .lens.ContentData content_data = 2;
inline int Content::_internal_content_data_size() const {
  return _internal_content_data().size();
}
inline int Content::content_data_size() const {
  return _internal_content_data_size();
}
inline void Content::clear_content_data() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.content_data_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::lens::ContentData& Content::content_data(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:lens.Content.content_data)
  return _internal_content_data().Get(index);
}
inline ::lens::ContentData* PROTOBUF_NONNULL Content::mutable_content_data(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:lens.Content.content_data)
  return _internal_mutable_content_data()->Mutable(index);
}
inline ::lens::ContentData* PROTOBUF_NONNULL Content::add_content_data()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::lens::ContentData* _add =
      _internal_mutable_content_data()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add:lens.Content.content_data)
  return _add;
}
inline const ::google::protobuf::RepeatedPtrField<::lens::ContentData>& Content::content_data() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:lens.Content.content_data)
  return _internal_content_data();
}
inline ::google::protobuf::RepeatedPtrField<::lens::ContentData>* PROTOBUF_NONNULL
Content::mutable_content_data() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_mutable_list:lens.Content.content_data)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_content_data();
}
inline const ::google::protobuf::RepeatedPtrField<::lens::ContentData>&
Content::_internal_content_data() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.content_data_;
}
inline ::google::protobuf::RepeatedPtrField<::lens::ContentData>* PROTOBUF_NONNULL
Content::_internal_mutable_content_data() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.content_data_;
}

// .lens.RequestType request_type = 3;
inline void Content::clear_request_type() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.request_type_ = 0;
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
}
inline ::lens::RequestType Content::request_type() const {
  // @@protoc_insertion_point(field_get:lens.Content.request_type)
  return _internal_request_type();
}
inline void Content::set_request_type(::lens::RequestType value) {
  _internal_set_request_type(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  // @@protoc_insertion_point(field_set:lens.Content.request_type)
}
inline ::lens::RequestType Content::_internal_request_type() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return static_cast<::lens::RequestType>(_impl_.request_type_);
}
inline void Content::_internal_set_request_type(::lens::RequestType value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.request_type_ = value;
}

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

// ContentData

// .lens.ContentData.ContentType content_type = 1;
inline void ContentData::clear_content_type() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.content_type_ = 0;
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline ::lens::ContentData_ContentType ContentData::content_type() const {
  // @@protoc_insertion_point(field_get:lens.ContentData.content_type)
  return _internal_content_type();
}
inline void ContentData::set_content_type(::lens::ContentData_ContentType value) {
  _internal_set_content_type(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  // @@protoc_insertion_point(field_set:lens.ContentData.content_type)
}
inline ::lens::ContentData_ContentType ContentData::_internal_content_type() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return static_cast<::lens::ContentData_ContentType>(_impl_.content_type_);
}
inline void ContentData::_internal_set_content_type(::lens::ContentData_ContentType value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.content_type_ = value;
}

// bytes data = 2;
inline void ContentData::clear_data() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.data_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::std::string& ContentData::data() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:lens.ContentData.data)
  return _internal_data();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void ContentData::set_data(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  _impl_.data_.SetBytes(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:lens.ContentData.data)
}
inline ::std::string* PROTOBUF_NONNULL ContentData::mutable_data()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::std::string* _s = _internal_mutable_data();
  // @@protoc_insertion_point(field_mutable:lens.ContentData.data)
  return _s;
}
inline const ::std::string& ContentData::_internal_data() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.data_.Get();
}
inline void ContentData::_internal_set_data(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.data_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL ContentData::_internal_mutable_data() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.data_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE ContentData::release_data() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:lens.ContentData.data)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000001U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  auto* released = _impl_.data_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.data_.Set("", GetArena());
  }
  return released;
}
inline void ContentData::set_allocated_data(::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_.data_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.data_.IsDefault()) {
    _impl_.data_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:lens.ContentData.data)
}

// .lens.CompressionType compression_type = 3;
inline void ContentData::clear_compression_type() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.compression_type_ = 0;
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
}
inline ::lens::CompressionType ContentData::compression_type() const {
  // @@protoc_insertion_point(field_get:lens.ContentData.compression_type)
  return _internal_compression_type();
}
inline void ContentData::set_compression_type(::lens::CompressionType value) {
  _internal_set_compression_type(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  // @@protoc_insertion_point(field_set:lens.ContentData.compression_type)
}
inline ::lens::CompressionType ContentData::_internal_compression_type() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return static_cast<::lens::CompressionType>(_impl_.compression_type_);
}
inline void ContentData::_internal_set_compression_type(::lens::CompressionType value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.compression_type_ = value;
}

// .lens.StoredChunkOptions stored_chunk_options = 4;
inline bool ContentData::has_stored_chunk_options() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000002U);
  PROTOBUF_ASSUME(!value || _impl_.stored_chunk_options_ != nullptr);
  return value;
}
inline void ContentData::clear_stored_chunk_options() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.stored_chunk_options_ != nullptr) _impl_.stored_chunk_options_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::lens::StoredChunkOptions& ContentData::_internal_stored_chunk_options() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::lens::StoredChunkOptions* p = _impl_.stored_chunk_options_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::lens::StoredChunkOptions>(&::lens::StoredChunkOptions_globals_);
}
inline const ::lens::StoredChunkOptions& ContentData::stored_chunk_options() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:lens.ContentData.stored_chunk_options)
  return _internal_stored_chunk_options();
}
inline void ContentData::unsafe_arena_set_allocated_stored_chunk_options(
    ::lens::StoredChunkOptions* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.stored_chunk_options_);
  }
  _impl_.stored_chunk_options_ = reinterpret_cast<::lens::StoredChunkOptions*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:lens.ContentData.stored_chunk_options)
}
inline ::lens::StoredChunkOptions* PROTOBUF_NULLABLE ContentData::release_stored_chunk_options() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::lens::StoredChunkOptions* released = _impl_.stored_chunk_options_;
  _impl_.stored_chunk_options_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::lens::StoredChunkOptions* PROTOBUF_NULLABLE ContentData::unsafe_arena_release_stored_chunk_options() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:lens.ContentData.stored_chunk_options)

  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::lens::StoredChunkOptions* temp = _impl_.stored_chunk_options_;
  _impl_.stored_chunk_options_ = nullptr;
  return temp;
}
inline ::lens::StoredChunkOptions* PROTOBUF_NONNULL ContentData::_internal_mutable_stored_chunk_options() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.stored_chunk_options_ == nullptr) {
    auto* p = ::google::protobuf::MessageLite::DefaultConstruct<::lens::StoredChunkOptions>(GetArena());
    _impl_.stored_chunk_options_ = reinterpret_cast<::lens::StoredChunkOptions*>(p);
  }
  return _impl_.stored_chunk_options_;
}
inline ::lens::StoredChunkOptions* PROTOBUF_NONNULL ContentData::mutable_stored_chunk_options()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::lens::StoredChunkOptions* _msg = _internal_mutable_stored_chunk_options();
  // @@protoc_insertion_point(field_mutable:lens.ContentData.stored_chunk_options)
  return _msg;
}
inline void ContentData::set_allocated_stored_chunk_options(::lens::StoredChunkOptions* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.stored_chunk_options_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }

  _impl_.stored_chunk_options_ = reinterpret_cast<::lens::StoredChunkOptions*>(value);
  // @@protoc_insertion_point(field_set_allocated:lens.ContentData.stored_chunk_options)
}

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

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


namespace google {
namespace protobuf {

template <>
struct is_proto_enum<::lens::ContentData_ContentType> : std::true_type {};
template <>
struct internal::LiteEnumFuncs<::lens::ContentData_ContentType> {
  static constexpr bool kIsDefined = true;
  static constexpr auto kParseFunc = ::lens::ContentData_ContentType_Parse;
  static constexpr auto kNameFunc = ::lens::ContentData_ContentType_Name<int>;
};
template <>
struct is_proto_enum<::lens::CompressionType> : std::true_type {};
template <>
struct internal::LiteEnumFuncs<::lens::CompressionType> {
  static constexpr bool kIsDefined = true;
  static constexpr auto kParseFunc = ::lens::CompressionType_Parse;
  static constexpr auto kNameFunc = ::lens::CompressionType_Name<int>;
};

}  // namespace protobuf
}  // namespace google

// @@protoc_insertion_point(global_scope)

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

#endif  // lens_5foverlay_5fservice_5fdeps_2eproto_2epb_2eh
