// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: vitis/ai/proto/dpu_model_param.proto

#ifndef GOOGLE_PROTOBUF_INCLUDED_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto
#define GOOGLE_PROTOBUF_INCLUDED_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto

#include <limits>
#include <string>

#include <google/protobuf/port_def.inc>
#if PROTOBUF_VERSION < 3021000
#error This file was generated by a newer version of protoc which is
#error incompatible with your Protocol Buffer headers. Please update
#error your headers.
#endif
#if 3021005 < PROTOBUF_MIN_PROTOC_VERSION
#error This file was generated by an older version of protoc which is
#error incompatible with your Protocol Buffer headers. Please
#error regenerate this file with a newer version of protoc.
#endif

#include <google/protobuf/port_undef.inc>
#include <google/protobuf/io/coded_stream.h>
#include <google/protobuf/arena.h>
#include <google/protobuf/arenastring.h>
#include <google/protobuf/generated_message_util.h>
#include <google/protobuf/metadata_lite.h>
#include <google/protobuf/generated_message_reflection.h>
#include <google/protobuf/message.h>
#include <google/protobuf/repeated_field.h>  // IWYU pragma: export
#include <google/protobuf/extension_set.h>  // IWYU pragma: export
#include <google/protobuf/generated_enum_reflection.h>
#include <google/protobuf/unknown_field_set.h>
// @@protoc_insertion_point(includes)
#include <google/protobuf/port_def.inc>
#define PROTOBUF_INTERNAL_EXPORT_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto
PROTOBUF_NAMESPACE_OPEN
namespace internal {
class AnyMetadata;
}  // namespace internal
PROTOBUF_NAMESPACE_CLOSE

// Internal implementation detail -- do not use these members.
struct TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto {
  static const uint32_t offsets[];
};
extern const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
namespace vitis {
namespace ai {
namespace proto {
class Attribute;
struct AttributeDefaultTypeInternal;
extern AttributeDefaultTypeInternal _Attribute_default_instance_;
class AttributeResult;
struct AttributeResultDefaultTypeInternal;
extern AttributeResultDefaultTypeInternal _AttributeResult_default_instance_;
class BTSParam;
struct BTSParamDefaultTypeInternal;
extern BTSParamDefaultTypeInternal _BTSParam_default_instance_;
class BlinkerParam;
struct BlinkerParamDefaultTypeInternal;
extern BlinkerParamDefaultTypeInternal _BlinkerParam_default_instance_;
class BoundingBox;
struct BoundingBoxDefaultTypeInternal;
extern BoundingBoxDefaultTypeInternal _BoundingBox_default_instance_;
class ClassificationLabel;
struct ClassificationLabelDefaultTypeInternal;
extern ClassificationLabelDefaultTypeInternal _ClassificationLabel_default_instance_;
class ClassificationParam;
struct ClassificationParamDefaultTypeInternal;
extern ClassificationParamDefaultTypeInternal _ClassificationParam_default_instance_;
class ClassificationParam_AvgPoolParam;
struct ClassificationParam_AvgPoolParamDefaultTypeInternal;
extern ClassificationParam_AvgPoolParamDefaultTypeInternal _ClassificationParam_AvgPoolParam_default_instance_;
class ClassificationResult;
struct ClassificationResultDefaultTypeInternal;
extern ClassificationResultDefaultTypeInternal _ClassificationResult_default_instance_;
class DenseBoxParam;
struct DenseBoxParamDefaultTypeInternal;
extern DenseBoxParamDefaultTypeInternal _DenseBoxParam_default_instance_;
class DetectResult;
struct DetectResultDefaultTypeInternal;
extern DetectResultDefaultTypeInternal _DetectResult_default_instance_;
class DpuKernelParam;
struct DpuKernelParamDefaultTypeInternal;
extern DpuKernelParamDefaultTypeInternal _DpuKernelParam_default_instance_;
class DpuModelParam;
struct DpuModelParamDefaultTypeInternal;
extern DpuModelParamDefaultTypeInternal _DpuModelParam_default_instance_;
class DpuModelParamList;
struct DpuModelParamListDefaultTypeInternal;
extern DpuModelParamListDefaultTypeInternal _DpuModelParamList_default_instance_;
class DpuModelResult;
struct DpuModelResultDefaultTypeInternal;
extern DpuModelResultDefaultTypeInternal _DpuModelResult_default_instance_;
class EfficientDetD2Param;
struct EfficientDetD2ParamDefaultTypeInternal;
extern EfficientDetD2ParamDefaultTypeInternal _EfficientDetD2Param_default_instance_;
class EfficientDetD2Param_AnchorInfo;
struct EfficientDetD2Param_AnchorInfoDefaultTypeInternal;
extern EfficientDetD2Param_AnchorInfoDefaultTypeInternal _EfficientDetD2Param_AnchorInfo_default_instance_;
class EfficientDetD2Param_OutputInfo;
struct EfficientDetD2Param_OutputInfoDefaultTypeInternal;
extern EfficientDetD2Param_OutputInfoDefaultTypeInternal _EfficientDetD2Param_OutputInfo_default_instance_;
class FaceDetectRecogResult;
struct FaceDetectRecogResultDefaultTypeInternal;
extern FaceDetectRecogResultDefaultTypeInternal _FaceDetectRecogResult_default_instance_;
class FaceFeatureResult;
struct FaceFeatureResultDefaultTypeInternal;
extern FaceFeatureResultDefaultTypeInternal _FaceFeatureResult_default_instance_;
class FaceLandmarkResult;
struct FaceLandmarkResultDefaultTypeInternal;
extern FaceLandmarkResultDefaultTypeInternal _FaceLandmarkResult_default_instance_;
class FaceQuality5ptParam;
struct FaceQuality5ptParamDefaultTypeInternal;
extern FaceQuality5ptParamDefaultTypeInternal _FaceQuality5ptParam_default_instance_;
class FairMotParam;
struct FairMotParamDefaultTypeInternal;
extern FairMotParamDefaultTypeInternal _FairMotParam_default_instance_;
class FcosParam;
struct FcosParamDefaultTypeInternal;
extern FcosParamDefaultTypeInternal _FcosParam_default_instance_;
class LandmarkResult;
struct LandmarkResultDefaultTypeInternal;
extern LandmarkResultDefaultTypeInternal _LandmarkResult_default_instance_;
class LaneParam;
struct LaneParamDefaultTypeInternal;
extern LaneParamDefaultTypeInternal _LaneParam_default_instance_;
class LineAttribute;
struct LineAttributeDefaultTypeInternal;
extern LineAttributeDefaultTypeInternal _LineAttribute_default_instance_;
class MedicalPriorBoxParam;
struct MedicalPriorBoxParamDefaultTypeInternal;
extern MedicalPriorBoxParamDefaultTypeInternal _MedicalPriorBoxParam_default_instance_;
class MedicalRefineDetParam;
struct MedicalRefineDetParamDefaultTypeInternal;
extern MedicalRefineDetParamDefaultTypeInternal _MedicalRefineDetParam_default_instance_;
class MedicalRefineDetParam_OutputInfo;
struct MedicalRefineDetParam_OutputInfoDefaultTypeInternal;
extern MedicalRefineDetParam_OutputInfoDefaultTypeInternal _MedicalRefineDetParam_OutputInfo_default_instance_;
class MedicalSegmetationResult;
struct MedicalSegmetationResultDefaultTypeInternal;
extern MedicalSegmetationResultDefaultTypeInternal _MedicalSegmetationResult_default_instance_;
class MovenetParam;
struct MovenetParamDefaultTypeInternal;
extern MovenetParamDefaultTypeInternal _MovenetParam_default_instance_;
class MultiTaskParam;
struct MultiTaskParamDefaultTypeInternal;
extern MultiTaskParamDefaultTypeInternal _MultiTaskParam_default_instance_;
class MultiTaskResult;
struct MultiTaskResultDefaultTypeInternal;
extern MultiTaskResultDefaultTypeInternal _MultiTaskResult_default_instance_;
class OpenPoseParam;
struct OpenPoseParamDefaultTypeInternal;
extern OpenPoseParamDefaultTypeInternal _OpenPoseParam_default_instance_;
class PlateDetectResult;
struct PlateDetectResultDefaultTypeInternal;
extern PlateDetectResultDefaultTypeInternal _PlateDetectResult_default_instance_;
class PlateNumberResult;
struct PlateNumberResultDefaultTypeInternal;
extern PlateNumberResultDefaultTypeInternal _PlateNumberResult_default_instance_;
class PlateRecogResult;
struct PlateRecogResultDefaultTypeInternal;
extern PlateRecogResultDefaultTypeInternal _PlateRecogResult_default_instance_;
class PlatenumParam;
struct PlatenumParamDefaultTypeInternal;
extern PlatenumParamDefaultTypeInternal _PlatenumParam_default_instance_;
class Point;
struct PointDefaultTypeInternal;
extern PointDefaultTypeInternal _Point_default_instance_;
class PointPillarsBaseParam;
struct PointPillarsBaseParamDefaultTypeInternal;
extern PointPillarsBaseParamDefaultTypeInternal _PointPillarsBaseParam_default_instance_;
class PointPillarsKittiParam;
struct PointPillarsKittiParamDefaultTypeInternal;
extern PointPillarsKittiParamDefaultTypeInternal _PointPillarsKittiParam_default_instance_;
class PointPillarsNusParam;
struct PointPillarsNusParamDefaultTypeInternal;
extern PointPillarsNusParamDefaultTypeInternal _PointPillarsNusParam_default_instance_;
class PointPillarsNusParam_AnchorInfo;
struct PointPillarsNusParam_AnchorInfoDefaultTypeInternal;
extern PointPillarsNusParam_AnchorInfoDefaultTypeInternal _PointPillarsNusParam_AnchorInfo_default_instance_;
class PointPillarsNusParam_AnchorInfo_Ranges;
struct PointPillarsNusParam_AnchorInfo_RangesDefaultTypeInternal;
extern PointPillarsNusParam_AnchorInfo_RangesDefaultTypeInternal _PointPillarsNusParam_AnchorInfo_Ranges_default_instance_;
class PointPillarsNusParam_AnchorInfo_Sizes;
struct PointPillarsNusParam_AnchorInfo_SizesDefaultTypeInternal;
extern PointPillarsNusParam_AnchorInfo_SizesDefaultTypeInternal _PointPillarsNusParam_AnchorInfo_Sizes_default_instance_;
class PoseDetectResult;
struct PoseDetectResultDefaultTypeInternal;
extern PoseDetectResultDefaultTypeInternal _PoseDetectResult_default_instance_;
class PriorBoxParam;
struct PriorBoxParamDefaultTypeInternal;
extern PriorBoxParamDefaultTypeInternal _PriorBoxParam_default_instance_;
class RcanParam;
struct RcanParamDefaultTypeInternal;
extern RcanParamDefaultTypeInternal _RcanParam_default_instance_;
class RefineDetParam;
struct RefineDetParamDefaultTypeInternal;
extern RefineDetParamDefaultTypeInternal _RefineDetParam_default_instance_;
class ReidParam;
struct ReidParamDefaultTypeInternal;
extern ReidParamDefaultTypeInternal _ReidParam_default_instance_;
class ReidResult;
struct ReidResultDefaultTypeInternal;
extern ReidResultDefaultTypeInternal _ReidResult_default_instance_;
class RetinaFaceParam;
struct RetinaFaceParamDefaultTypeInternal;
extern RetinaFaceParamDefaultTypeInternal _RetinaFaceParam_default_instance_;
class RetinaFaceParam_AnchorParam;
struct RetinaFaceParam_AnchorParamDefaultTypeInternal;
extern RetinaFaceParam_AnchorParamDefaultTypeInternal _RetinaFaceParam_AnchorParam_default_instance_;
class RetinaFaceParam_OutputAnchorInfo;
struct RetinaFaceParam_OutputAnchorInfoDefaultTypeInternal;
extern RetinaFaceParam_OutputAnchorInfoDefaultTypeInternal _RetinaFaceParam_OutputAnchorInfo_default_instance_;
class RetinaFaceParam_OutputInfo;
struct RetinaFaceParam_OutputInfoDefaultTypeInternal;
extern RetinaFaceParam_OutputInfoDefaultTypeInternal _RetinaFaceParam_OutputInfo_default_instance_;
class RetinaNetParam;
struct RetinaNetParamDefaultTypeInternal;
extern RetinaNetParamDefaultTypeInternal _RetinaNetParam_default_instance_;
class RoadlineDeephiParam;
struct RoadlineDeephiParamDefaultTypeInternal;
extern RoadlineDeephiParamDefaultTypeInternal _RoadlineDeephiParam_default_instance_;
class RoadlineParam;
struct RoadlineParamDefaultTypeInternal;
extern RoadlineParamDefaultTypeInternal _RoadlineParam_default_instance_;
class RoadlineResult;
struct RoadlineResultDefaultTypeInternal;
extern RoadlineResultDefaultTypeInternal _RoadlineResult_default_instance_;
class SSDParam;
struct SSDParamDefaultTypeInternal;
extern SSDParamDefaultTypeInternal _SSDParam_default_instance_;
class SSDParam_OutputInfo;
struct SSDParam_OutputInfoDefaultTypeInternal;
extern SSDParam_OutputInfoDefaultTypeInternal _SSDParam_OutputInfo_default_instance_;
class Score;
struct ScoreDefaultTypeInternal;
extern ScoreDefaultTypeInternal _Score_default_instance_;
class SegdetParam;
struct SegdetParamDefaultTypeInternal;
extern SegdetParamDefaultTypeInternal _SegdetParam_default_instance_;
class Segmentation3DParam;
struct Segmentation3DParamDefaultTypeInternal;
extern Segmentation3DParamDefaultTypeInternal _Segmentation3DParam_default_instance_;
class SegmentationParam;
struct SegmentationParamDefaultTypeInternal;
extern SegmentationParamDefaultTypeInternal _SegmentationParam_default_instance_;
class SegmetationResult;
struct SegmetationResultDefaultTypeInternal;
extern SegmetationResultDefaultTypeInternal _SegmetationResult_default_instance_;
class Size;
struct SizeDefaultTypeInternal;
extern SizeDefaultTypeInternal _Size_default_instance_;
class SoloParam;
struct SoloParamDefaultTypeInternal;
extern SoloParamDefaultTypeInternal _SoloParam_default_instance_;
class SubgraphParam;
struct SubgraphParamDefaultTypeInternal;
extern SubgraphParamDefaultTypeInternal _SubgraphParam_default_instance_;
class SubgraphParam_InputParam;
struct SubgraphParam_InputParamDefaultTypeInternal;
extern SubgraphParam_InputParamDefaultTypeInternal _SubgraphParam_InputParam_default_instance_;
class TFRefineDetParam;
struct TFRefineDetParamDefaultTypeInternal;
extern TFRefineDetParamDefaultTypeInternal _TFRefineDetParam_default_instance_;
class TfssdParam;
struct TfssdParamDefaultTypeInternal;
extern TfssdParamDefaultTypeInternal _TfssdParam_default_instance_;
class TfssdParam_OutputInfo;
struct TfssdParam_OutputInfoDefaultTypeInternal;
extern TfssdParam_OutputInfoDefaultTypeInternal _TfssdParam_OutputInfo_default_instance_;
class VehicleResult;
struct VehicleResultDefaultTypeInternal;
extern VehicleResultDefaultTypeInternal _VehicleResult_default_instance_;
class X_Autonomous3DParam;
struct X_Autonomous3DParamDefaultTypeInternal;
extern X_Autonomous3DParamDefaultTypeInternal _X_Autonomous3DParam_default_instance_;
class X_Autonomous3DParam_CenterPointOutputLayer;
struct X_Autonomous3DParam_CenterPointOutputLayerDefaultTypeInternal;
extern X_Autonomous3DParam_CenterPointOutputLayerDefaultTypeInternal _X_Autonomous3DParam_CenterPointOutputLayer_default_instance_;
class YoloV3Param;
struct YoloV3ParamDefaultTypeInternal;
extern YoloV3ParamDefaultTypeInternal _YoloV3Param_default_instance_;
class YoloV5Param;
struct YoloV5ParamDefaultTypeInternal;
extern YoloV5ParamDefaultTypeInternal _YoloV5Param_default_instance_;
class YoloV6Param;
struct YoloV6ParamDefaultTypeInternal;
extern YoloV6ParamDefaultTypeInternal _YoloV6Param_default_instance_;
class YoloV7Param;
struct YoloV7ParamDefaultTypeInternal;
extern YoloV7ParamDefaultTypeInternal _YoloV7Param_default_instance_;
class YoloV8Param;
struct YoloV8ParamDefaultTypeInternal;
extern YoloV8ParamDefaultTypeInternal _YoloV8Param_default_instance_;
}  // namespace proto
}  // namespace ai
}  // namespace vitis
PROTOBUF_NAMESPACE_OPEN
template<> ::vitis::ai::proto::Attribute* Arena::CreateMaybeMessage<::vitis::ai::proto::Attribute>(Arena*);
template<> ::vitis::ai::proto::AttributeResult* Arena::CreateMaybeMessage<::vitis::ai::proto::AttributeResult>(Arena*);
template<> ::vitis::ai::proto::BTSParam* Arena::CreateMaybeMessage<::vitis::ai::proto::BTSParam>(Arena*);
template<> ::vitis::ai::proto::BlinkerParam* Arena::CreateMaybeMessage<::vitis::ai::proto::BlinkerParam>(Arena*);
template<> ::vitis::ai::proto::BoundingBox* Arena::CreateMaybeMessage<::vitis::ai::proto::BoundingBox>(Arena*);
template<> ::vitis::ai::proto::ClassificationLabel* Arena::CreateMaybeMessage<::vitis::ai::proto::ClassificationLabel>(Arena*);
template<> ::vitis::ai::proto::ClassificationParam* Arena::CreateMaybeMessage<::vitis::ai::proto::ClassificationParam>(Arena*);
template<> ::vitis::ai::proto::ClassificationParam_AvgPoolParam* Arena::CreateMaybeMessage<::vitis::ai::proto::ClassificationParam_AvgPoolParam>(Arena*);
template<> ::vitis::ai::proto::ClassificationResult* Arena::CreateMaybeMessage<::vitis::ai::proto::ClassificationResult>(Arena*);
template<> ::vitis::ai::proto::DenseBoxParam* Arena::CreateMaybeMessage<::vitis::ai::proto::DenseBoxParam>(Arena*);
template<> ::vitis::ai::proto::DetectResult* Arena::CreateMaybeMessage<::vitis::ai::proto::DetectResult>(Arena*);
template<> ::vitis::ai::proto::DpuKernelParam* Arena::CreateMaybeMessage<::vitis::ai::proto::DpuKernelParam>(Arena*);
template<> ::vitis::ai::proto::DpuModelParam* Arena::CreateMaybeMessage<::vitis::ai::proto::DpuModelParam>(Arena*);
template<> ::vitis::ai::proto::DpuModelParamList* Arena::CreateMaybeMessage<::vitis::ai::proto::DpuModelParamList>(Arena*);
template<> ::vitis::ai::proto::DpuModelResult* Arena::CreateMaybeMessage<::vitis::ai::proto::DpuModelResult>(Arena*);
template<> ::vitis::ai::proto::EfficientDetD2Param* Arena::CreateMaybeMessage<::vitis::ai::proto::EfficientDetD2Param>(Arena*);
template<> ::vitis::ai::proto::EfficientDetD2Param_AnchorInfo* Arena::CreateMaybeMessage<::vitis::ai::proto::EfficientDetD2Param_AnchorInfo>(Arena*);
template<> ::vitis::ai::proto::EfficientDetD2Param_OutputInfo* Arena::CreateMaybeMessage<::vitis::ai::proto::EfficientDetD2Param_OutputInfo>(Arena*);
template<> ::vitis::ai::proto::FaceDetectRecogResult* Arena::CreateMaybeMessage<::vitis::ai::proto::FaceDetectRecogResult>(Arena*);
template<> ::vitis::ai::proto::FaceFeatureResult* Arena::CreateMaybeMessage<::vitis::ai::proto::FaceFeatureResult>(Arena*);
template<> ::vitis::ai::proto::FaceLandmarkResult* Arena::CreateMaybeMessage<::vitis::ai::proto::FaceLandmarkResult>(Arena*);
template<> ::vitis::ai::proto::FaceQuality5ptParam* Arena::CreateMaybeMessage<::vitis::ai::proto::FaceQuality5ptParam>(Arena*);
template<> ::vitis::ai::proto::FairMotParam* Arena::CreateMaybeMessage<::vitis::ai::proto::FairMotParam>(Arena*);
template<> ::vitis::ai::proto::FcosParam* Arena::CreateMaybeMessage<::vitis::ai::proto::FcosParam>(Arena*);
template<> ::vitis::ai::proto::LandmarkResult* Arena::CreateMaybeMessage<::vitis::ai::proto::LandmarkResult>(Arena*);
template<> ::vitis::ai::proto::LaneParam* Arena::CreateMaybeMessage<::vitis::ai::proto::LaneParam>(Arena*);
template<> ::vitis::ai::proto::LineAttribute* Arena::CreateMaybeMessage<::vitis::ai::proto::LineAttribute>(Arena*);
template<> ::vitis::ai::proto::MedicalPriorBoxParam* Arena::CreateMaybeMessage<::vitis::ai::proto::MedicalPriorBoxParam>(Arena*);
template<> ::vitis::ai::proto::MedicalRefineDetParam* Arena::CreateMaybeMessage<::vitis::ai::proto::MedicalRefineDetParam>(Arena*);
template<> ::vitis::ai::proto::MedicalRefineDetParam_OutputInfo* Arena::CreateMaybeMessage<::vitis::ai::proto::MedicalRefineDetParam_OutputInfo>(Arena*);
template<> ::vitis::ai::proto::MedicalSegmetationResult* Arena::CreateMaybeMessage<::vitis::ai::proto::MedicalSegmetationResult>(Arena*);
template<> ::vitis::ai::proto::MovenetParam* Arena::CreateMaybeMessage<::vitis::ai::proto::MovenetParam>(Arena*);
template<> ::vitis::ai::proto::MultiTaskParam* Arena::CreateMaybeMessage<::vitis::ai::proto::MultiTaskParam>(Arena*);
template<> ::vitis::ai::proto::MultiTaskResult* Arena::CreateMaybeMessage<::vitis::ai::proto::MultiTaskResult>(Arena*);
template<> ::vitis::ai::proto::OpenPoseParam* Arena::CreateMaybeMessage<::vitis::ai::proto::OpenPoseParam>(Arena*);
template<> ::vitis::ai::proto::PlateDetectResult* Arena::CreateMaybeMessage<::vitis::ai::proto::PlateDetectResult>(Arena*);
template<> ::vitis::ai::proto::PlateNumberResult* Arena::CreateMaybeMessage<::vitis::ai::proto::PlateNumberResult>(Arena*);
template<> ::vitis::ai::proto::PlateRecogResult* Arena::CreateMaybeMessage<::vitis::ai::proto::PlateRecogResult>(Arena*);
template<> ::vitis::ai::proto::PlatenumParam* Arena::CreateMaybeMessage<::vitis::ai::proto::PlatenumParam>(Arena*);
template<> ::vitis::ai::proto::Point* Arena::CreateMaybeMessage<::vitis::ai::proto::Point>(Arena*);
template<> ::vitis::ai::proto::PointPillarsBaseParam* Arena::CreateMaybeMessage<::vitis::ai::proto::PointPillarsBaseParam>(Arena*);
template<> ::vitis::ai::proto::PointPillarsKittiParam* Arena::CreateMaybeMessage<::vitis::ai::proto::PointPillarsKittiParam>(Arena*);
template<> ::vitis::ai::proto::PointPillarsNusParam* Arena::CreateMaybeMessage<::vitis::ai::proto::PointPillarsNusParam>(Arena*);
template<> ::vitis::ai::proto::PointPillarsNusParam_AnchorInfo* Arena::CreateMaybeMessage<::vitis::ai::proto::PointPillarsNusParam_AnchorInfo>(Arena*);
template<> ::vitis::ai::proto::PointPillarsNusParam_AnchorInfo_Ranges* Arena::CreateMaybeMessage<::vitis::ai::proto::PointPillarsNusParam_AnchorInfo_Ranges>(Arena*);
template<> ::vitis::ai::proto::PointPillarsNusParam_AnchorInfo_Sizes* Arena::CreateMaybeMessage<::vitis::ai::proto::PointPillarsNusParam_AnchorInfo_Sizes>(Arena*);
template<> ::vitis::ai::proto::PoseDetectResult* Arena::CreateMaybeMessage<::vitis::ai::proto::PoseDetectResult>(Arena*);
template<> ::vitis::ai::proto::PriorBoxParam* Arena::CreateMaybeMessage<::vitis::ai::proto::PriorBoxParam>(Arena*);
template<> ::vitis::ai::proto::RcanParam* Arena::CreateMaybeMessage<::vitis::ai::proto::RcanParam>(Arena*);
template<> ::vitis::ai::proto::RefineDetParam* Arena::CreateMaybeMessage<::vitis::ai::proto::RefineDetParam>(Arena*);
template<> ::vitis::ai::proto::ReidParam* Arena::CreateMaybeMessage<::vitis::ai::proto::ReidParam>(Arena*);
template<> ::vitis::ai::proto::ReidResult* Arena::CreateMaybeMessage<::vitis::ai::proto::ReidResult>(Arena*);
template<> ::vitis::ai::proto::RetinaFaceParam* Arena::CreateMaybeMessage<::vitis::ai::proto::RetinaFaceParam>(Arena*);
template<> ::vitis::ai::proto::RetinaFaceParam_AnchorParam* Arena::CreateMaybeMessage<::vitis::ai::proto::RetinaFaceParam_AnchorParam>(Arena*);
template<> ::vitis::ai::proto::RetinaFaceParam_OutputAnchorInfo* Arena::CreateMaybeMessage<::vitis::ai::proto::RetinaFaceParam_OutputAnchorInfo>(Arena*);
template<> ::vitis::ai::proto::RetinaFaceParam_OutputInfo* Arena::CreateMaybeMessage<::vitis::ai::proto::RetinaFaceParam_OutputInfo>(Arena*);
template<> ::vitis::ai::proto::RetinaNetParam* Arena::CreateMaybeMessage<::vitis::ai::proto::RetinaNetParam>(Arena*);
template<> ::vitis::ai::proto::RoadlineDeephiParam* Arena::CreateMaybeMessage<::vitis::ai::proto::RoadlineDeephiParam>(Arena*);
template<> ::vitis::ai::proto::RoadlineParam* Arena::CreateMaybeMessage<::vitis::ai::proto::RoadlineParam>(Arena*);
template<> ::vitis::ai::proto::RoadlineResult* Arena::CreateMaybeMessage<::vitis::ai::proto::RoadlineResult>(Arena*);
template<> ::vitis::ai::proto::SSDParam* Arena::CreateMaybeMessage<::vitis::ai::proto::SSDParam>(Arena*);
template<> ::vitis::ai::proto::SSDParam_OutputInfo* Arena::CreateMaybeMessage<::vitis::ai::proto::SSDParam_OutputInfo>(Arena*);
template<> ::vitis::ai::proto::Score* Arena::CreateMaybeMessage<::vitis::ai::proto::Score>(Arena*);
template<> ::vitis::ai::proto::SegdetParam* Arena::CreateMaybeMessage<::vitis::ai::proto::SegdetParam>(Arena*);
template<> ::vitis::ai::proto::Segmentation3DParam* Arena::CreateMaybeMessage<::vitis::ai::proto::Segmentation3DParam>(Arena*);
template<> ::vitis::ai::proto::SegmentationParam* Arena::CreateMaybeMessage<::vitis::ai::proto::SegmentationParam>(Arena*);
template<> ::vitis::ai::proto::SegmetationResult* Arena::CreateMaybeMessage<::vitis::ai::proto::SegmetationResult>(Arena*);
template<> ::vitis::ai::proto::Size* Arena::CreateMaybeMessage<::vitis::ai::proto::Size>(Arena*);
template<> ::vitis::ai::proto::SoloParam* Arena::CreateMaybeMessage<::vitis::ai::proto::SoloParam>(Arena*);
template<> ::vitis::ai::proto::SubgraphParam* Arena::CreateMaybeMessage<::vitis::ai::proto::SubgraphParam>(Arena*);
template<> ::vitis::ai::proto::SubgraphParam_InputParam* Arena::CreateMaybeMessage<::vitis::ai::proto::SubgraphParam_InputParam>(Arena*);
template<> ::vitis::ai::proto::TFRefineDetParam* Arena::CreateMaybeMessage<::vitis::ai::proto::TFRefineDetParam>(Arena*);
template<> ::vitis::ai::proto::TfssdParam* Arena::CreateMaybeMessage<::vitis::ai::proto::TfssdParam>(Arena*);
template<> ::vitis::ai::proto::TfssdParam_OutputInfo* Arena::CreateMaybeMessage<::vitis::ai::proto::TfssdParam_OutputInfo>(Arena*);
template<> ::vitis::ai::proto::VehicleResult* Arena::CreateMaybeMessage<::vitis::ai::proto::VehicleResult>(Arena*);
template<> ::vitis::ai::proto::X_Autonomous3DParam* Arena::CreateMaybeMessage<::vitis::ai::proto::X_Autonomous3DParam>(Arena*);
template<> ::vitis::ai::proto::X_Autonomous3DParam_CenterPointOutputLayer* Arena::CreateMaybeMessage<::vitis::ai::proto::X_Autonomous3DParam_CenterPointOutputLayer>(Arena*);
template<> ::vitis::ai::proto::YoloV3Param* Arena::CreateMaybeMessage<::vitis::ai::proto::YoloV3Param>(Arena*);
template<> ::vitis::ai::proto::YoloV5Param* Arena::CreateMaybeMessage<::vitis::ai::proto::YoloV5Param>(Arena*);
template<> ::vitis::ai::proto::YoloV6Param* Arena::CreateMaybeMessage<::vitis::ai::proto::YoloV6Param>(Arena*);
template<> ::vitis::ai::proto::YoloV7Param* Arena::CreateMaybeMessage<::vitis::ai::proto::YoloV7Param>(Arena*);
template<> ::vitis::ai::proto::YoloV8Param* Arena::CreateMaybeMessage<::vitis::ai::proto::YoloV8Param>(Arena*);
PROTOBUF_NAMESPACE_CLOSE
namespace vitis {
namespace ai {
namespace proto {

enum YoloV3Param_Type : int {
  YoloV3Param_Type_NORMAL = 0,
  YoloV3Param_Type_YOLOV4_CSP = 1,
  YoloV3Param_Type_YOLOV5 = 2,
  YoloV3Param_Type_YOLOX_NANO = 3,
  YoloV3Param_Type_YoloV3Param_Type_INT_MIN_SENTINEL_DO_NOT_USE_ = std::numeric_limits<int32_t>::min(),
  YoloV3Param_Type_YoloV3Param_Type_INT_MAX_SENTINEL_DO_NOT_USE_ = std::numeric_limits<int32_t>::max()
};
bool YoloV3Param_Type_IsValid(int value);
constexpr YoloV3Param_Type YoloV3Param_Type_Type_MIN = YoloV3Param_Type_NORMAL;
constexpr YoloV3Param_Type YoloV3Param_Type_Type_MAX = YoloV3Param_Type_YOLOX_NANO;
constexpr int YoloV3Param_Type_Type_ARRAYSIZE = YoloV3Param_Type_Type_MAX + 1;

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* YoloV3Param_Type_descriptor();
template<typename T>
inline const std::string& YoloV3Param_Type_Name(T enum_t_value) {
  static_assert(::std::is_same<T, YoloV3Param_Type>::value ||
    ::std::is_integral<T>::value,
    "Incorrect type passed to function YoloV3Param_Type_Name.");
  return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum(
    YoloV3Param_Type_descriptor(), enum_t_value);
}
inline bool YoloV3Param_Type_Parse(
    ::PROTOBUF_NAMESPACE_ID::ConstStringParam name, YoloV3Param_Type* value) {
  return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum<YoloV3Param_Type>(
    YoloV3Param_Type_descriptor(), name, value);
}
enum SSDParam_OutputType : int {
  SSDParam_OutputType_USELESS = 0,
  SSDParam_OutputType_CONF = 1,
  SSDParam_OutputType_BBOX = 2,
  SSDParam_OutputType_FUNCTIONAL = 3,
  SSDParam_OutputType_SSDParam_OutputType_INT_MIN_SENTINEL_DO_NOT_USE_ = std::numeric_limits<int32_t>::min(),
  SSDParam_OutputType_SSDParam_OutputType_INT_MAX_SENTINEL_DO_NOT_USE_ = std::numeric_limits<int32_t>::max()
};
bool SSDParam_OutputType_IsValid(int value);
constexpr SSDParam_OutputType SSDParam_OutputType_OutputType_MIN = SSDParam_OutputType_USELESS;
constexpr SSDParam_OutputType SSDParam_OutputType_OutputType_MAX = SSDParam_OutputType_FUNCTIONAL;
constexpr int SSDParam_OutputType_OutputType_ARRAYSIZE = SSDParam_OutputType_OutputType_MAX + 1;

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* SSDParam_OutputType_descriptor();
template<typename T>
inline const std::string& SSDParam_OutputType_Name(T enum_t_value) {
  static_assert(::std::is_same<T, SSDParam_OutputType>::value ||
    ::std::is_integral<T>::value,
    "Incorrect type passed to function SSDParam_OutputType_Name.");
  return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum(
    SSDParam_OutputType_descriptor(), enum_t_value);
}
inline bool SSDParam_OutputType_Parse(
    ::PROTOBUF_NAMESPACE_ID::ConstStringParam name, SSDParam_OutputType* value) {
  return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum<SSDParam_OutputType>(
    SSDParam_OutputType_descriptor(), name, value);
}
enum MedicalRefineDetParam_OutputType : int {
  MedicalRefineDetParam_OutputType_USELESS = 0,
  MedicalRefineDetParam_OutputType_ARM_CONF = 1,
  MedicalRefineDetParam_OutputType_ARM_BBOX = 2,
  MedicalRefineDetParam_OutputType_ODM_CONF = 3,
  MedicalRefineDetParam_OutputType_ODM_BBOX = 4,
  MedicalRefineDetParam_OutputType_MedicalRefineDetParam_OutputType_INT_MIN_SENTINEL_DO_NOT_USE_ = std::numeric_limits<int32_t>::min(),
  MedicalRefineDetParam_OutputType_MedicalRefineDetParam_OutputType_INT_MAX_SENTINEL_DO_NOT_USE_ = std::numeric_limits<int32_t>::max()
};
bool MedicalRefineDetParam_OutputType_IsValid(int value);
constexpr MedicalRefineDetParam_OutputType MedicalRefineDetParam_OutputType_OutputType_MIN = MedicalRefineDetParam_OutputType_USELESS;
constexpr MedicalRefineDetParam_OutputType MedicalRefineDetParam_OutputType_OutputType_MAX = MedicalRefineDetParam_OutputType_ODM_BBOX;
constexpr int MedicalRefineDetParam_OutputType_OutputType_ARRAYSIZE = MedicalRefineDetParam_OutputType_OutputType_MAX + 1;

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* MedicalRefineDetParam_OutputType_descriptor();
template<typename T>
inline const std::string& MedicalRefineDetParam_OutputType_Name(T enum_t_value) {
  static_assert(::std::is_same<T, MedicalRefineDetParam_OutputType>::value ||
    ::std::is_integral<T>::value,
    "Incorrect type passed to function MedicalRefineDetParam_OutputType_Name.");
  return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum(
    MedicalRefineDetParam_OutputType_descriptor(), enum_t_value);
}
inline bool MedicalRefineDetParam_OutputType_Parse(
    ::PROTOBUF_NAMESPACE_ID::ConstStringParam name, MedicalRefineDetParam_OutputType* value) {
  return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum<MedicalRefineDetParam_OutputType>(
    MedicalRefineDetParam_OutputType_descriptor(), name, value);
}
enum ClassificationParam_PreprocessType : int {
  ClassificationParam_PreprocessType_UNKNOWN_TYPE = 0,
  ClassificationParam_PreprocessType_CAFFE = 1,
  ClassificationParam_PreprocessType_VGG_PREPROCESS = 2,
  ClassificationParam_PreprocessType_INCEPTION_PREPROCESS = 3,
  ClassificationParam_PreprocessType_INCEPTION_PT = 4,
  ClassificationParam_PreprocessType_RESNET50_TF2 = 5,
  ClassificationParam_PreprocessType_EFFICIENTNET_PREPROCESS = 6,
  ClassificationParam_PreprocessType_OFA_RESNET50_PT = 7,
  ClassificationParam_PreprocessType_OFA_DEPTHWISE_RES50 = 8,
  ClassificationParam_PreprocessType_RGB_PREPROCESS = 9,
  ClassificationParam_PreprocessType_OFA_RESNET50_PT2 = 10,
  ClassificationParam_PreprocessType_ClassificationParam_PreprocessType_INT_MIN_SENTINEL_DO_NOT_USE_ = std::numeric_limits<int32_t>::min(),
  ClassificationParam_PreprocessType_ClassificationParam_PreprocessType_INT_MAX_SENTINEL_DO_NOT_USE_ = std::numeric_limits<int32_t>::max()
};
bool ClassificationParam_PreprocessType_IsValid(int value);
constexpr ClassificationParam_PreprocessType ClassificationParam_PreprocessType_PreprocessType_MIN = ClassificationParam_PreprocessType_UNKNOWN_TYPE;
constexpr ClassificationParam_PreprocessType ClassificationParam_PreprocessType_PreprocessType_MAX = ClassificationParam_PreprocessType_OFA_RESNET50_PT2;
constexpr int ClassificationParam_PreprocessType_PreprocessType_ARRAYSIZE = ClassificationParam_PreprocessType_PreprocessType_MAX + 1;

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* ClassificationParam_PreprocessType_descriptor();
template<typename T>
inline const std::string& ClassificationParam_PreprocessType_Name(T enum_t_value) {
  static_assert(::std::is_same<T, ClassificationParam_PreprocessType>::value ||
    ::std::is_integral<T>::value,
    "Incorrect type passed to function ClassificationParam_PreprocessType_Name.");
  return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum(
    ClassificationParam_PreprocessType_descriptor(), enum_t_value);
}
inline bool ClassificationParam_PreprocessType_Parse(
    ::PROTOBUF_NAMESPACE_ID::ConstStringParam name, ClassificationParam_PreprocessType* value) {
  return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum<ClassificationParam_PreprocessType>(
    ClassificationParam_PreprocessType_descriptor(), name, value);
}
enum RetinaFaceParam_OutputType : int {
  RetinaFaceParam_OutputType_USELESS = 0,
  RetinaFaceParam_OutputType_CONF = 1,
  RetinaFaceParam_OutputType_BBOX = 2,
  RetinaFaceParam_OutputType_LANDMARK = 3,
  RetinaFaceParam_OutputType_RetinaFaceParam_OutputType_INT_MIN_SENTINEL_DO_NOT_USE_ = std::numeric_limits<int32_t>::min(),
  RetinaFaceParam_OutputType_RetinaFaceParam_OutputType_INT_MAX_SENTINEL_DO_NOT_USE_ = std::numeric_limits<int32_t>::max()
};
bool RetinaFaceParam_OutputType_IsValid(int value);
constexpr RetinaFaceParam_OutputType RetinaFaceParam_OutputType_OutputType_MIN = RetinaFaceParam_OutputType_USELESS;
constexpr RetinaFaceParam_OutputType RetinaFaceParam_OutputType_OutputType_MAX = RetinaFaceParam_OutputType_LANDMARK;
constexpr int RetinaFaceParam_OutputType_OutputType_ARRAYSIZE = RetinaFaceParam_OutputType_OutputType_MAX + 1;

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* RetinaFaceParam_OutputType_descriptor();
template<typename T>
inline const std::string& RetinaFaceParam_OutputType_Name(T enum_t_value) {
  static_assert(::std::is_same<T, RetinaFaceParam_OutputType>::value ||
    ::std::is_integral<T>::value,
    "Incorrect type passed to function RetinaFaceParam_OutputType_Name.");
  return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum(
    RetinaFaceParam_OutputType_descriptor(), enum_t_value);
}
inline bool RetinaFaceParam_OutputType_Parse(
    ::PROTOBUF_NAMESPACE_ID::ConstStringParam name, RetinaFaceParam_OutputType* value) {
  return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum<RetinaFaceParam_OutputType>(
    RetinaFaceParam_OutputType_descriptor(), name, value);
}
enum RetinaFaceParam_AnchorType : int {
  RetinaFaceParam_AnchorType_BG = 0,
  RetinaFaceParam_AnchorType_FG = 1,
  RetinaFaceParam_AnchorType_RetinaFaceParam_AnchorType_INT_MIN_SENTINEL_DO_NOT_USE_ = std::numeric_limits<int32_t>::min(),
  RetinaFaceParam_AnchorType_RetinaFaceParam_AnchorType_INT_MAX_SENTINEL_DO_NOT_USE_ = std::numeric_limits<int32_t>::max()
};
bool RetinaFaceParam_AnchorType_IsValid(int value);
constexpr RetinaFaceParam_AnchorType RetinaFaceParam_AnchorType_AnchorType_MIN = RetinaFaceParam_AnchorType_BG;
constexpr RetinaFaceParam_AnchorType RetinaFaceParam_AnchorType_AnchorType_MAX = RetinaFaceParam_AnchorType_FG;
constexpr int RetinaFaceParam_AnchorType_AnchorType_ARRAYSIZE = RetinaFaceParam_AnchorType_AnchorType_MAX + 1;

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* RetinaFaceParam_AnchorType_descriptor();
template<typename T>
inline const std::string& RetinaFaceParam_AnchorType_Name(T enum_t_value) {
  static_assert(::std::is_same<T, RetinaFaceParam_AnchorType>::value ||
    ::std::is_integral<T>::value,
    "Incorrect type passed to function RetinaFaceParam_AnchorType_Name.");
  return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum(
    RetinaFaceParam_AnchorType_descriptor(), enum_t_value);
}
inline bool RetinaFaceParam_AnchorType_Parse(
    ::PROTOBUF_NAMESPACE_ID::ConstStringParam name, RetinaFaceParam_AnchorType* value) {
  return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum<RetinaFaceParam_AnchorType>(
    RetinaFaceParam_AnchorType_descriptor(), name, value);
}
enum TfssdParam_OutputType : int {
  TfssdParam_OutputType_USELESS = 0,
  TfssdParam_OutputType_CONF = 1,
  TfssdParam_OutputType_BBOX = 2,
  TfssdParam_OutputType_TfssdParam_OutputType_INT_MIN_SENTINEL_DO_NOT_USE_ = std::numeric_limits<int32_t>::min(),
  TfssdParam_OutputType_TfssdParam_OutputType_INT_MAX_SENTINEL_DO_NOT_USE_ = std::numeric_limits<int32_t>::max()
};
bool TfssdParam_OutputType_IsValid(int value);
constexpr TfssdParam_OutputType TfssdParam_OutputType_OutputType_MIN = TfssdParam_OutputType_USELESS;
constexpr TfssdParam_OutputType TfssdParam_OutputType_OutputType_MAX = TfssdParam_OutputType_BBOX;
constexpr int TfssdParam_OutputType_OutputType_ARRAYSIZE = TfssdParam_OutputType_OutputType_MAX + 1;

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* TfssdParam_OutputType_descriptor();
template<typename T>
inline const std::string& TfssdParam_OutputType_Name(T enum_t_value) {
  static_assert(::std::is_same<T, TfssdParam_OutputType>::value ||
    ::std::is_integral<T>::value,
    "Incorrect type passed to function TfssdParam_OutputType_Name.");
  return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum(
    TfssdParam_OutputType_descriptor(), enum_t_value);
}
inline bool TfssdParam_OutputType_Parse(
    ::PROTOBUF_NAMESPACE_ID::ConstStringParam name, TfssdParam_OutputType* value) {
  return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum<TfssdParam_OutputType>(
    TfssdParam_OutputType_descriptor(), name, value);
}
enum EfficientDetD2Param_OutputType : int {
  EfficientDetD2Param_OutputType_USELESS = 0,
  EfficientDetD2Param_OutputType_CONF = 1,
  EfficientDetD2Param_OutputType_BBOX = 2,
  EfficientDetD2Param_OutputType_EfficientDetD2Param_OutputType_INT_MIN_SENTINEL_DO_NOT_USE_ = std::numeric_limits<int32_t>::min(),
  EfficientDetD2Param_OutputType_EfficientDetD2Param_OutputType_INT_MAX_SENTINEL_DO_NOT_USE_ = std::numeric_limits<int32_t>::max()
};
bool EfficientDetD2Param_OutputType_IsValid(int value);
constexpr EfficientDetD2Param_OutputType EfficientDetD2Param_OutputType_OutputType_MIN = EfficientDetD2Param_OutputType_USELESS;
constexpr EfficientDetD2Param_OutputType EfficientDetD2Param_OutputType_OutputType_MAX = EfficientDetD2Param_OutputType_BBOX;
constexpr int EfficientDetD2Param_OutputType_OutputType_ARRAYSIZE = EfficientDetD2Param_OutputType_OutputType_MAX + 1;

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* EfficientDetD2Param_OutputType_descriptor();
template<typename T>
inline const std::string& EfficientDetD2Param_OutputType_Name(T enum_t_value) {
  static_assert(::std::is_same<T, EfficientDetD2Param_OutputType>::value ||
    ::std::is_integral<T>::value,
    "Incorrect type passed to function EfficientDetD2Param_OutputType_Name.");
  return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum(
    EfficientDetD2Param_OutputType_descriptor(), enum_t_value);
}
inline bool EfficientDetD2Param_OutputType_Parse(
    ::PROTOBUF_NAMESPACE_ID::ConstStringParam name, EfficientDetD2Param_OutputType* value) {
  return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum<EfficientDetD2Param_OutputType>(
    EfficientDetD2Param_OutputType_descriptor(), name, value);
}
enum DpuModelParam_ModelType : int {
  DpuModelParam_ModelType_UNKNOWN_TYPE = 0,
  DpuModelParam_ModelType_REFINEDET = 1,
  DpuModelParam_ModelType_SSD = 2,
  DpuModelParam_ModelType_YOLOv3 = 3,
  DpuModelParam_ModelType_CLASSIFICATION = 4,
  DpuModelParam_ModelType_DENSE_BOX = 5,
  DpuModelParam_ModelType_MULTI_TASK = 6,
  DpuModelParam_ModelType_OPENPOSE = 7,
  DpuModelParam_ModelType_ROADLINE = 8,
  DpuModelParam_ModelType_SEGMENTATION = 9,
  DpuModelParam_ModelType_POSEDETECT = 10,
  DpuModelParam_ModelType_LANE = 11,
  DpuModelParam_ModelType_BLINKER = 12,
  DpuModelParam_ModelType_SEGDET = 13,
  DpuModelParam_ModelType_ROADLINE_DEEPHI = 14,
  DpuModelParam_ModelType_FACEQUALITY5PT = 15,
  DpuModelParam_ModelType_REID = 16,
  DpuModelParam_ModelType_YOLOv2 = 17,
  DpuModelParam_ModelType_TFSSD = 18,
  DpuModelParam_ModelType_FACELANDMARK = 19,
  DpuModelParam_ModelType_PLATEDETECT = 20,
  DpuModelParam_ModelType_PLATENUM = 21,
  DpuModelParam_ModelType_PLATERECOG = 22,
  DpuModelParam_ModelType_FACEFEATURE = 23,
  DpuModelParam_ModelType_SEGMENTATION8UC1 = 24,
  DpuModelParam_ModelType_SEGMENTATION8UC3 = 25,
  DpuModelParam_ModelType_MEDICALSEGMENTATION = 26,
  DpuModelParam_ModelType_MULTITASK8UC1 = 27,
  DpuModelParam_ModelType_MULTITASK8UC3 = 28,
  DpuModelParam_ModelType_MEDICALREFINEDET = 29,
  DpuModelParam_ModelType_FACEDETECTRECOG = 30,
  DpuModelParam_ModelType_HOURGLASS = 31,
  DpuModelParam_ModelType_RETINAFACE = 32,
  DpuModelParam_ModelType_TFREFINEDET = 33,
  DpuModelParam_ModelType_POINTPILLARS_NUS = 34,
  DpuModelParam_ModelType_YOLOv5 = 35,
  DpuModelParam_ModelType_BTSParam = 36,
  DpuModelParam_ModelType_FAIRMOT = 37,
  DpuModelParam_ModelType_X_AUTONOMOUS3D = 38,
  DpuModelParam_ModelType_POINTPILLARS = 39,
  DpuModelParam_ModelType_SOLO = 40,
  DpuModelParam_ModelType_VEHICLECLASSIFICATION = 41,
  DpuModelParam_ModelType_EFFICIENTDET_D2 = 42,
  DpuModelParam_ModelType_MOVENET = 43,
  DpuModelParam_ModelType_YOLOv6 = 44,
  DpuModelParam_ModelType_FCOS = 45,
  DpuModelParam_ModelType_YOLOv8 = 46,
  DpuModelParam_ModelType_YOLOv7 = 47,
  DpuModelParam_ModelType_DpuModelParam_ModelType_INT_MIN_SENTINEL_DO_NOT_USE_ = std::numeric_limits<int32_t>::min(),
  DpuModelParam_ModelType_DpuModelParam_ModelType_INT_MAX_SENTINEL_DO_NOT_USE_ = std::numeric_limits<int32_t>::max()
};
bool DpuModelParam_ModelType_IsValid(int value);
constexpr DpuModelParam_ModelType DpuModelParam_ModelType_ModelType_MIN = DpuModelParam_ModelType_UNKNOWN_TYPE;
constexpr DpuModelParam_ModelType DpuModelParam_ModelType_ModelType_MAX = DpuModelParam_ModelType_YOLOv7;
constexpr int DpuModelParam_ModelType_ModelType_ARRAYSIZE = DpuModelParam_ModelType_ModelType_MAX + 1;

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* DpuModelParam_ModelType_descriptor();
template<typename T>
inline const std::string& DpuModelParam_ModelType_Name(T enum_t_value) {
  static_assert(::std::is_same<T, DpuModelParam_ModelType>::value ||
    ::std::is_integral<T>::value,
    "Incorrect type passed to function DpuModelParam_ModelType_Name.");
  return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum(
    DpuModelParam_ModelType_descriptor(), enum_t_value);
}
inline bool DpuModelParam_ModelType_Parse(
    ::PROTOBUF_NAMESPACE_ID::ConstStringParam name, DpuModelParam_ModelType* value) {
  return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum<DpuModelParam_ModelType>(
    DpuModelParam_ModelType_descriptor(), name, value);
}
enum DpuModelParam_OrderType : int {
  DpuModelParam_OrderType_UNKNOWNORDER = 0,
  DpuModelParam_OrderType_BGR = 1,
  DpuModelParam_OrderType_RGB = 2,
  DpuModelParam_OrderType_GREY = 3,
  DpuModelParam_OrderType_DpuModelParam_OrderType_INT_MIN_SENTINEL_DO_NOT_USE_ = std::numeric_limits<int32_t>::min(),
  DpuModelParam_OrderType_DpuModelParam_OrderType_INT_MAX_SENTINEL_DO_NOT_USE_ = std::numeric_limits<int32_t>::max()
};
bool DpuModelParam_OrderType_IsValid(int value);
constexpr DpuModelParam_OrderType DpuModelParam_OrderType_OrderType_MIN = DpuModelParam_OrderType_UNKNOWNORDER;
constexpr DpuModelParam_OrderType DpuModelParam_OrderType_OrderType_MAX = DpuModelParam_OrderType_GREY;
constexpr int DpuModelParam_OrderType_OrderType_ARRAYSIZE = DpuModelParam_OrderType_OrderType_MAX + 1;

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* DpuModelParam_OrderType_descriptor();
template<typename T>
inline const std::string& DpuModelParam_OrderType_Name(T enum_t_value) {
  static_assert(::std::is_same<T, DpuModelParam_OrderType>::value ||
    ::std::is_integral<T>::value,
    "Incorrect type passed to function DpuModelParam_OrderType_Name.");
  return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum(
    DpuModelParam_OrderType_descriptor(), enum_t_value);
}
inline bool DpuModelParam_OrderType_Parse(
    ::PROTOBUF_NAMESPACE_ID::ConstStringParam name, DpuModelParam_OrderType* value) {
  return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum<DpuModelParam_OrderType>(
    DpuModelParam_OrderType_descriptor(), name, value);
}
// ===================================================================

class YoloV3Param final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.YoloV3Param) */ {
 public:
  inline YoloV3Param() : YoloV3Param(nullptr) {}
  ~YoloV3Param() override;
  explicit PROTOBUF_CONSTEXPR YoloV3Param(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  YoloV3Param(const YoloV3Param& from);
  YoloV3Param(YoloV3Param&& from) noexcept
    : YoloV3Param() {
    *this = ::std::move(from);
  }

  inline YoloV3Param& operator=(const YoloV3Param& from) {
    CopyFrom(from);
    return *this;
  }
  inline YoloV3Param& operator=(YoloV3Param&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const YoloV3Param& default_instance() {
    return *internal_default_instance();
  }
  static inline const YoloV3Param* internal_default_instance() {
    return reinterpret_cast<const YoloV3Param*>(
               &_YoloV3Param_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    0;

  friend void swap(YoloV3Param& a, YoloV3Param& b) {
    a.Swap(&b);
  }
  inline void Swap(YoloV3Param* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(YoloV3Param* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  YoloV3Param* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<YoloV3Param>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const YoloV3Param& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom( const YoloV3Param& from) {
    YoloV3Param::MergeImpl(*this, from);
  }
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned);
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(YoloV3Param* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.YoloV3Param";
  }
  protected:
  explicit YoloV3Param(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

  typedef YoloV3Param_Type Type;
  static constexpr Type NORMAL =
    YoloV3Param_Type_NORMAL;
  static constexpr Type YOLOV4_CSP =
    YoloV3Param_Type_YOLOV4_CSP;
  static constexpr Type YOLOV5 =
    YoloV3Param_Type_YOLOV5;
  static constexpr Type YOLOX_NANO =
    YoloV3Param_Type_YOLOX_NANO;
  static inline bool Type_IsValid(int value) {
    return YoloV3Param_Type_IsValid(value);
  }
  static constexpr Type Type_MIN =
    YoloV3Param_Type_Type_MIN;
  static constexpr Type Type_MAX =
    YoloV3Param_Type_Type_MAX;
  static constexpr int Type_ARRAYSIZE =
    YoloV3Param_Type_Type_ARRAYSIZE;
  static inline const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor*
  Type_descriptor() {
    return YoloV3Param_Type_descriptor();
  }
  template<typename T>
  static inline const std::string& Type_Name(T enum_t_value) {
    static_assert(::std::is_same<T, Type>::value ||
      ::std::is_integral<T>::value,
      "Incorrect type passed to function Type_Name.");
    return YoloV3Param_Type_Name(enum_t_value);
  }
  static inline bool Type_Parse(::PROTOBUF_NAMESPACE_ID::ConstStringParam name,
      Type* value) {
    return YoloV3Param_Type_Parse(name, value);
  }

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

  enum : int {
    kBiasesFieldNumber = 5,
    kLayerNameFieldNumber = 7,
    kNumClassesFieldNumber = 1,
    kAnchorCntFieldNumber = 2,
    kConfThresholdFieldNumber = 3,
    kNmsThresholdFieldNumber = 4,
    kTestMAPFieldNumber = 6,
    kTypeFieldNumber = 8,
    kIouTypeFieldNumber = 9,
  };
  // repeated float biases = 5;
  int biases_size() const;
  private:
  int _internal_biases_size() const;
  public:
  void clear_biases();
  private:
  float _internal_biases(int index) const;
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
      _internal_biases() const;
  void _internal_add_biases(float value);
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
      _internal_mutable_biases();
  public:
  float biases(int index) const;
  void set_biases(int index, float value);
  void add_biases(float value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
      biases() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
      mutable_biases();

  // repeated string layer_name = 7;
  int layer_name_size() const;
  private:
  int _internal_layer_name_size() const;
  public:
  void clear_layer_name();
  const std::string& layer_name(int index) const;
  std::string* mutable_layer_name(int index);
  void set_layer_name(int index, const std::string& value);
  void set_layer_name(int index, std::string&& value);
  void set_layer_name(int index, const char* value);
  void set_layer_name(int index, const char* value, size_t size);
  std::string* add_layer_name();
  void add_layer_name(const std::string& value);
  void add_layer_name(std::string&& value);
  void add_layer_name(const char* value);
  void add_layer_name(const char* value, size_t size);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>& layer_name() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>* mutable_layer_name();
  private:
  const std::string& _internal_layer_name(int index) const;
  std::string* _internal_add_layer_name();
  public:

  // int32 num_classes = 1;
  void clear_num_classes();
  int32_t num_classes() const;
  void set_num_classes(int32_t value);
  private:
  int32_t _internal_num_classes() const;
  void _internal_set_num_classes(int32_t value);
  public:

  // int32 anchorCnt = 2;
  void clear_anchorcnt();
  int32_t anchorcnt() const;
  void set_anchorcnt(int32_t value);
  private:
  int32_t _internal_anchorcnt() const;
  void _internal_set_anchorcnt(int32_t value);
  public:

  // float conf_threshold = 3;
  void clear_conf_threshold();
  float conf_threshold() const;
  void set_conf_threshold(float value);
  private:
  float _internal_conf_threshold() const;
  void _internal_set_conf_threshold(float value);
  public:

  // float nms_threshold = 4;
  void clear_nms_threshold();
  float nms_threshold() const;
  void set_nms_threshold(float value);
  private:
  float _internal_nms_threshold() const;
  void _internal_set_nms_threshold(float value);
  public:

  // bool test_mAP = 6;
  void clear_test_map();
  bool test_map() const;
  void set_test_map(bool value);
  private:
  bool _internal_test_map() const;
  void _internal_set_test_map(bool value);
  public:

  // .vitis.ai.proto.YoloV3Param.Type type = 8;
  void clear_type();
  ::vitis::ai::proto::YoloV3Param_Type type() const;
  void set_type(::vitis::ai::proto::YoloV3Param_Type value);
  private:
  ::vitis::ai::proto::YoloV3Param_Type _internal_type() const;
  void _internal_set_type(::vitis::ai::proto::YoloV3Param_Type value);
  public:

  // int32 iou_type = 9;
  void clear_iou_type();
  int32_t iou_type() const;
  void set_iou_type(int32_t value);
  private:
  int32_t _internal_iou_type() const;
  void _internal_set_iou_type(int32_t value);
  public:

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.YoloV3Param)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    ::PROTOBUF_NAMESPACE_ID::RepeatedField< float > biases_;
    ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string> layer_name_;
    int32_t num_classes_;
    int32_t anchorcnt_;
    float conf_threshold_;
    float nms_threshold_;
    bool test_map_;
    int type_;
    int32_t iou_type_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class MedicalPriorBoxParam final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.MedicalPriorBoxParam) */ {
 public:
  inline MedicalPriorBoxParam() : MedicalPriorBoxParam(nullptr) {}
  ~MedicalPriorBoxParam() override;
  explicit PROTOBUF_CONSTEXPR MedicalPriorBoxParam(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  MedicalPriorBoxParam(const MedicalPriorBoxParam& from);
  MedicalPriorBoxParam(MedicalPriorBoxParam&& from) noexcept
    : MedicalPriorBoxParam() {
    *this = ::std::move(from);
  }

  inline MedicalPriorBoxParam& operator=(const MedicalPriorBoxParam& from) {
    CopyFrom(from);
    return *this;
  }
  inline MedicalPriorBoxParam& operator=(MedicalPriorBoxParam&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const MedicalPriorBoxParam& default_instance() {
    return *internal_default_instance();
  }
  static inline const MedicalPriorBoxParam* internal_default_instance() {
    return reinterpret_cast<const MedicalPriorBoxParam*>(
               &_MedicalPriorBoxParam_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    1;

  friend void swap(MedicalPriorBoxParam& a, MedicalPriorBoxParam& b) {
    a.Swap(&b);
  }
  inline void Swap(MedicalPriorBoxParam* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(MedicalPriorBoxParam* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  MedicalPriorBoxParam* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<MedicalPriorBoxParam>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const MedicalPriorBoxParam& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom( const MedicalPriorBoxParam& from) {
    MedicalPriorBoxParam::MergeImpl(*this, from);
  }
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned);
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(MedicalPriorBoxParam* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.MedicalPriorBoxParam";
  }
  protected:
  explicit MedicalPriorBoxParam(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kInputShapeFieldNumber = 1,
    kFeatureShapesFieldNumber = 2,
    kMinSizesFieldNumber = 3,
    kMaxSizesFieldNumber = 4,
    kAspectRatiosFieldNumber = 5,
    kStepsFieldNumber = 6,
    kOffsetFieldNumber = 7,
  };
  // repeated int32 input_shape = 1;
  int input_shape_size() const;
  private:
  int _internal_input_shape_size() const;
  public:
  void clear_input_shape();
  private:
  int32_t _internal_input_shape(int index) const;
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >&
      _internal_input_shape() const;
  void _internal_add_input_shape(int32_t value);
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >*
      _internal_mutable_input_shape();
  public:
  int32_t input_shape(int index) const;
  void set_input_shape(int index, int32_t value);
  void add_input_shape(int32_t value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >&
      input_shape() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >*
      mutable_input_shape();

  // repeated int32 feature_shapes = 2;
  int feature_shapes_size() const;
  private:
  int _internal_feature_shapes_size() const;
  public:
  void clear_feature_shapes();
  private:
  int32_t _internal_feature_shapes(int index) const;
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >&
      _internal_feature_shapes() const;
  void _internal_add_feature_shapes(int32_t value);
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >*
      _internal_mutable_feature_shapes();
  public:
  int32_t feature_shapes(int index) const;
  void set_feature_shapes(int index, int32_t value);
  void add_feature_shapes(int32_t value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >&
      feature_shapes() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >*
      mutable_feature_shapes();

  // repeated int32 min_sizes = 3;
  int min_sizes_size() const;
  private:
  int _internal_min_sizes_size() const;
  public:
  void clear_min_sizes();
  private:
  int32_t _internal_min_sizes(int index) const;
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >&
      _internal_min_sizes() const;
  void _internal_add_min_sizes(int32_t value);
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >*
      _internal_mutable_min_sizes();
  public:
  int32_t min_sizes(int index) const;
  void set_min_sizes(int index, int32_t value);
  void add_min_sizes(int32_t value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >&
      min_sizes() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >*
      mutable_min_sizes();

  // repeated int32 max_sizes = 4;
  int max_sizes_size() const;
  private:
  int _internal_max_sizes_size() const;
  public:
  void clear_max_sizes();
  private:
  int32_t _internal_max_sizes(int index) const;
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >&
      _internal_max_sizes() const;
  void _internal_add_max_sizes(int32_t value);
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >*
      _internal_mutable_max_sizes();
  public:
  int32_t max_sizes(int index) const;
  void set_max_sizes(int index, int32_t value);
  void add_max_sizes(int32_t value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >&
      max_sizes() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >*
      mutable_max_sizes();

  // repeated float aspect_ratios = 5;
  int aspect_ratios_size() const;
  private:
  int _internal_aspect_ratios_size() const;
  public:
  void clear_aspect_ratios();
  private:
  float _internal_aspect_ratios(int index) const;
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
      _internal_aspect_ratios() const;
  void _internal_add_aspect_ratios(float value);
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
      _internal_mutable_aspect_ratios();
  public:
  float aspect_ratios(int index) const;
  void set_aspect_ratios(int index, float value);
  void add_aspect_ratios(float value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
      aspect_ratios() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
      mutable_aspect_ratios();

  // repeated int32 steps = 6;
  int steps_size() const;
  private:
  int _internal_steps_size() const;
  public:
  void clear_steps();
  private:
  int32_t _internal_steps(int index) const;
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >&
      _internal_steps() const;
  void _internal_add_steps(int32_t value);
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >*
      _internal_mutable_steps();
  public:
  int32_t steps(int index) const;
  void set_steps(int index, int32_t value);
  void add_steps(int32_t value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >&
      steps() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >*
      mutable_steps();

  // float offset = 7;
  void clear_offset();
  float offset() const;
  void set_offset(float value);
  private:
  float _internal_offset() const;
  void _internal_set_offset(float value);
  public:

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.MedicalPriorBoxParam)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t > input_shape_;
    mutable std::atomic<int> _input_shape_cached_byte_size_;
    ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t > feature_shapes_;
    mutable std::atomic<int> _feature_shapes_cached_byte_size_;
    ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t > min_sizes_;
    mutable std::atomic<int> _min_sizes_cached_byte_size_;
    ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t > max_sizes_;
    mutable std::atomic<int> _max_sizes_cached_byte_size_;
    ::PROTOBUF_NAMESPACE_ID::RepeatedField< float > aspect_ratios_;
    ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t > steps_;
    mutable std::atomic<int> _steps_cached_byte_size_;
    float offset_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class PriorBoxParam final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.PriorBoxParam) */ {
 public:
  inline PriorBoxParam() : PriorBoxParam(nullptr) {}
  ~PriorBoxParam() override;
  explicit PROTOBUF_CONSTEXPR PriorBoxParam(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  PriorBoxParam(const PriorBoxParam& from);
  PriorBoxParam(PriorBoxParam&& from) noexcept
    : PriorBoxParam() {
    *this = ::std::move(from);
  }

  inline PriorBoxParam& operator=(const PriorBoxParam& from) {
    CopyFrom(from);
    return *this;
  }
  inline PriorBoxParam& operator=(PriorBoxParam&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const PriorBoxParam& default_instance() {
    return *internal_default_instance();
  }
  static inline const PriorBoxParam* internal_default_instance() {
    return reinterpret_cast<const PriorBoxParam*>(
               &_PriorBoxParam_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    2;

  friend void swap(PriorBoxParam& a, PriorBoxParam& b) {
    a.Swap(&b);
  }
  inline void Swap(PriorBoxParam* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(PriorBoxParam* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  PriorBoxParam* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<PriorBoxParam>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const PriorBoxParam& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom( const PriorBoxParam& from) {
    PriorBoxParam::MergeImpl(*this, from);
  }
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned);
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(PriorBoxParam* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.PriorBoxParam";
  }
  protected:
  explicit PriorBoxParam(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kVariancesFieldNumber = 4,
    kMinSizesFieldNumber = 5,
    kMaxSizesFieldNumber = 6,
    kAspectRatiosFieldNumber = 7,
    kLayerWidthFieldNumber = 1,
    kLayerHeightFieldNumber = 2,
    kOffsetFieldNumber = 8,
    kStepWidthFieldNumber = 9,
    kStepHeightFieldNumber = 10,
    kFlipFieldNumber = 11,
    kClipFieldNumber = 12,
  };
  // repeated float variances = 4;
  int variances_size() const;
  private:
  int _internal_variances_size() const;
  public:
  void clear_variances();
  private:
  float _internal_variances(int index) const;
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
      _internal_variances() const;
  void _internal_add_variances(float value);
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
      _internal_mutable_variances();
  public:
  float variances(int index) const;
  void set_variances(int index, float value);
  void add_variances(float value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
      variances() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
      mutable_variances();

  // repeated float min_sizes = 5;
  int min_sizes_size() const;
  private:
  int _internal_min_sizes_size() const;
  public:
  void clear_min_sizes();
  private:
  float _internal_min_sizes(int index) const;
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
      _internal_min_sizes() const;
  void _internal_add_min_sizes(float value);
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
      _internal_mutable_min_sizes();
  public:
  float min_sizes(int index) const;
  void set_min_sizes(int index, float value);
  void add_min_sizes(float value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
      min_sizes() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
      mutable_min_sizes();

  // repeated float max_sizes = 6;
  int max_sizes_size() const;
  private:
  int _internal_max_sizes_size() const;
  public:
  void clear_max_sizes();
  private:
  float _internal_max_sizes(int index) const;
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
      _internal_max_sizes() const;
  void _internal_add_max_sizes(float value);
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
      _internal_mutable_max_sizes();
  public:
  float max_sizes(int index) const;
  void set_max_sizes(int index, float value);
  void add_max_sizes(float value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
      max_sizes() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
      mutable_max_sizes();

  // repeated float aspect_ratios = 7;
  int aspect_ratios_size() const;
  private:
  int _internal_aspect_ratios_size() const;
  public:
  void clear_aspect_ratios();
  private:
  float _internal_aspect_ratios(int index) const;
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
      _internal_aspect_ratios() const;
  void _internal_add_aspect_ratios(float value);
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
      _internal_mutable_aspect_ratios();
  public:
  float aspect_ratios(int index) const;
  void set_aspect_ratios(int index, float value);
  void add_aspect_ratios(float value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
      aspect_ratios() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
      mutable_aspect_ratios();

  // int32 layer_width = 1;
  void clear_layer_width();
  int32_t layer_width() const;
  void set_layer_width(int32_t value);
  private:
  int32_t _internal_layer_width() const;
  void _internal_set_layer_width(int32_t value);
  public:

  // int32 layer_height = 2;
  void clear_layer_height();
  int32_t layer_height() const;
  void set_layer_height(int32_t value);
  private:
  int32_t _internal_layer_height() const;
  void _internal_set_layer_height(int32_t value);
  public:

  // float offset = 8;
  void clear_offset();
  float offset() const;
  void set_offset(float value);
  private:
  float _internal_offset() const;
  void _internal_set_offset(float value);
  public:

  // float step_width = 9;
  void clear_step_width();
  float step_width() const;
  void set_step_width(float value);
  private:
  float _internal_step_width() const;
  void _internal_set_step_width(float value);
  public:

  // float step_height = 10;
  void clear_step_height();
  float step_height() const;
  void set_step_height(float value);
  private:
  float _internal_step_height() const;
  void _internal_set_step_height(float value);
  public:

  // bool flip = 11;
  void clear_flip();
  bool flip() const;
  void set_flip(bool value);
  private:
  bool _internal_flip() const;
  void _internal_set_flip(bool value);
  public:

  // bool clip = 12;
  void clear_clip();
  bool clip() const;
  void set_clip(bool value);
  private:
  bool _internal_clip() const;
  void _internal_set_clip(bool value);
  public:

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.PriorBoxParam)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    ::PROTOBUF_NAMESPACE_ID::RepeatedField< float > variances_;
    ::PROTOBUF_NAMESPACE_ID::RepeatedField< float > min_sizes_;
    ::PROTOBUF_NAMESPACE_ID::RepeatedField< float > max_sizes_;
    ::PROTOBUF_NAMESPACE_ID::RepeatedField< float > aspect_ratios_;
    int32_t layer_width_;
    int32_t layer_height_;
    float offset_;
    float step_width_;
    float step_height_;
    bool flip_;
    bool clip_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class SSDParam_OutputInfo final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.SSDParam.OutputInfo) */ {
 public:
  inline SSDParam_OutputInfo() : SSDParam_OutputInfo(nullptr) {}
  ~SSDParam_OutputInfo() override;
  explicit PROTOBUF_CONSTEXPR SSDParam_OutputInfo(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  SSDParam_OutputInfo(const SSDParam_OutputInfo& from);
  SSDParam_OutputInfo(SSDParam_OutputInfo&& from) noexcept
    : SSDParam_OutputInfo() {
    *this = ::std::move(from);
  }

  inline SSDParam_OutputInfo& operator=(const SSDParam_OutputInfo& from) {
    CopyFrom(from);
    return *this;
  }
  inline SSDParam_OutputInfo& operator=(SSDParam_OutputInfo&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const SSDParam_OutputInfo& default_instance() {
    return *internal_default_instance();
  }
  static inline const SSDParam_OutputInfo* internal_default_instance() {
    return reinterpret_cast<const SSDParam_OutputInfo*>(
               &_SSDParam_OutputInfo_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    3;

  friend void swap(SSDParam_OutputInfo& a, SSDParam_OutputInfo& b) {
    a.Swap(&b);
  }
  inline void Swap(SSDParam_OutputInfo* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(SSDParam_OutputInfo* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  SSDParam_OutputInfo* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<SSDParam_OutputInfo>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const SSDParam_OutputInfo& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom( const SSDParam_OutputInfo& from) {
    SSDParam_OutputInfo::MergeImpl(*this, from);
  }
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned);
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(SSDParam_OutputInfo* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.SSDParam.OutputInfo";
  }
  protected:
  explicit SSDParam_OutputInfo(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kNameFieldNumber = 3,
    kTypeFieldNumber = 1,
    kOrderFieldNumber = 2,
  };
  // string name = 3;
  void clear_name();
  const std::string& name() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_name(ArgT0&& arg0, ArgT... args);
  std::string* mutable_name();
  PROTOBUF_NODISCARD std::string* release_name();
  void set_allocated_name(std::string* name);
  private:
  const std::string& _internal_name() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_name(const std::string& value);
  std::string* _internal_mutable_name();
  public:

  // .vitis.ai.proto.SSDParam.OutputType type = 1;
  void clear_type();
  ::vitis::ai::proto::SSDParam_OutputType type() const;
  void set_type(::vitis::ai::proto::SSDParam_OutputType value);
  private:
  ::vitis::ai::proto::SSDParam_OutputType _internal_type() const;
  void _internal_set_type(::vitis::ai::proto::SSDParam_OutputType value);
  public:

  // int32 order = 2;
  void clear_order();
  int32_t order() const;
  void set_order(int32_t value);
  private:
  int32_t _internal_order() const;
  void _internal_set_order(int32_t value);
  public:

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.SSDParam.OutputInfo)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr name_;
    int type_;
    int32_t order_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class SSDParam final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.SSDParam) */ {
 public:
  inline SSDParam() : SSDParam(nullptr) {}
  ~SSDParam() override;
  explicit PROTOBUF_CONSTEXPR SSDParam(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  SSDParam(const SSDParam& from);
  SSDParam(SSDParam&& from) noexcept
    : SSDParam() {
    *this = ::std::move(from);
  }

  inline SSDParam& operator=(const SSDParam& from) {
    CopyFrom(from);
    return *this;
  }
  inline SSDParam& operator=(SSDParam&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const SSDParam& default_instance() {
    return *internal_default_instance();
  }
  static inline const SSDParam* internal_default_instance() {
    return reinterpret_cast<const SSDParam*>(
               &_SSDParam_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    4;

  friend void swap(SSDParam& a, SSDParam& b) {
    a.Swap(&b);
  }
  inline void Swap(SSDParam* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(SSDParam* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  SSDParam* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<SSDParam>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const SSDParam& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom( const SSDParam& from) {
    SSDParam::MergeImpl(*this, from);
  }
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned);
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(SSDParam* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.SSDParam";
  }
  protected:
  explicit SSDParam(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

  typedef SSDParam_OutputInfo OutputInfo;

  typedef SSDParam_OutputType OutputType;
  static constexpr OutputType USELESS =
    SSDParam_OutputType_USELESS;
  static constexpr OutputType CONF =
    SSDParam_OutputType_CONF;
  static constexpr OutputType BBOX =
    SSDParam_OutputType_BBOX;
  static constexpr OutputType FUNCTIONAL =
    SSDParam_OutputType_FUNCTIONAL;
  static inline bool OutputType_IsValid(int value) {
    return SSDParam_OutputType_IsValid(value);
  }
  static constexpr OutputType OutputType_MIN =
    SSDParam_OutputType_OutputType_MIN;
  static constexpr OutputType OutputType_MAX =
    SSDParam_OutputType_OutputType_MAX;
  static constexpr int OutputType_ARRAYSIZE =
    SSDParam_OutputType_OutputType_ARRAYSIZE;
  static inline const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor*
  OutputType_descriptor() {
    return SSDParam_OutputType_descriptor();
  }
  template<typename T>
  static inline const std::string& OutputType_Name(T enum_t_value) {
    static_assert(::std::is_same<T, OutputType>::value ||
      ::std::is_integral<T>::value,
      "Incorrect type passed to function OutputType_Name.");
    return SSDParam_OutputType_Name(enum_t_value);
  }
  static inline bool OutputType_Parse(::PROTOBUF_NAMESPACE_ID::ConstStringParam name,
      OutputType* value) {
    return SSDParam_OutputType_Parse(name, value);
  }

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

  enum : int {
    kPriorBoxParamFieldNumber = 1,
    kConfThresholdFieldNumber = 4,
    kBboxLayerIndexFieldNumber = 8,
    kOutputInfoFieldNumber = 9,
    kNumClassesFieldNumber = 2,
    kNmsThresholdFieldNumber = 3,
    kKeepTopKFieldNumber = 5,
    kTopKFieldNumber = 6,
    kIsMlperfFieldNumber = 7,
  };
  // repeated .vitis.ai.proto.PriorBoxParam prior_box_param = 1;
  int prior_box_param_size() const;
  private:
  int _internal_prior_box_param_size() const;
  public:
  void clear_prior_box_param();
  ::vitis::ai::proto::PriorBoxParam* mutable_prior_box_param(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::PriorBoxParam >*
      mutable_prior_box_param();
  private:
  const ::vitis::ai::proto::PriorBoxParam& _internal_prior_box_param(int index) const;
  ::vitis::ai::proto::PriorBoxParam* _internal_add_prior_box_param();
  public:
  const ::vitis::ai::proto::PriorBoxParam& prior_box_param(int index) const;
  ::vitis::ai::proto::PriorBoxParam* add_prior_box_param();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::PriorBoxParam >&
      prior_box_param() const;

  // repeated float conf_threshold = 4;
  int conf_threshold_size() const;
  private:
  int _internal_conf_threshold_size() const;
  public:
  void clear_conf_threshold();
  private:
  float _internal_conf_threshold(int index) const;
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
      _internal_conf_threshold() const;
  void _internal_add_conf_threshold(float value);
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
      _internal_mutable_conf_threshold();
  public:
  float conf_threshold(int index) const;
  void set_conf_threshold(int index, float value);
  void add_conf_threshold(float value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
      conf_threshold() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
      mutable_conf_threshold();

  // repeated int32 bbox_layer_index = 8;
  int bbox_layer_index_size() const;
  private:
  int _internal_bbox_layer_index_size() const;
  public:
  void clear_bbox_layer_index();
  private:
  int32_t _internal_bbox_layer_index(int index) const;
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >&
      _internal_bbox_layer_index() const;
  void _internal_add_bbox_layer_index(int32_t value);
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >*
      _internal_mutable_bbox_layer_index();
  public:
  int32_t bbox_layer_index(int index) const;
  void set_bbox_layer_index(int index, int32_t value);
  void add_bbox_layer_index(int32_t value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >&
      bbox_layer_index() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >*
      mutable_bbox_layer_index();

  // repeated .vitis.ai.proto.SSDParam.OutputInfo output_info = 9;
  int output_info_size() const;
  private:
  int _internal_output_info_size() const;
  public:
  void clear_output_info();
  ::vitis::ai::proto::SSDParam_OutputInfo* mutable_output_info(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::SSDParam_OutputInfo >*
      mutable_output_info();
  private:
  const ::vitis::ai::proto::SSDParam_OutputInfo& _internal_output_info(int index) const;
  ::vitis::ai::proto::SSDParam_OutputInfo* _internal_add_output_info();
  public:
  const ::vitis::ai::proto::SSDParam_OutputInfo& output_info(int index) const;
  ::vitis::ai::proto::SSDParam_OutputInfo* add_output_info();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::SSDParam_OutputInfo >&
      output_info() const;

  // int32 num_classes = 2;
  void clear_num_classes();
  int32_t num_classes() const;
  void set_num_classes(int32_t value);
  private:
  int32_t _internal_num_classes() const;
  void _internal_set_num_classes(int32_t value);
  public:

  // float nms_threshold = 3;
  void clear_nms_threshold();
  float nms_threshold() const;
  void set_nms_threshold(float value);
  private:
  float _internal_nms_threshold() const;
  void _internal_set_nms_threshold(float value);
  public:

  // int32 keep_top_k = 5;
  void clear_keep_top_k();
  int32_t keep_top_k() const;
  void set_keep_top_k(int32_t value);
  private:
  int32_t _internal_keep_top_k() const;
  void _internal_set_keep_top_k(int32_t value);
  public:

  // int32 top_k = 6;
  void clear_top_k();
  int32_t top_k() const;
  void set_top_k(int32_t value);
  private:
  int32_t _internal_top_k() const;
  void _internal_set_top_k(int32_t value);
  public:

  // bool is_mlperf = 7;
  void clear_is_mlperf();
  bool is_mlperf() const;
  void set_is_mlperf(bool value);
  private:
  bool _internal_is_mlperf() const;
  void _internal_set_is_mlperf(bool value);
  public:

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.SSDParam)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::PriorBoxParam > prior_box_param_;
    ::PROTOBUF_NAMESPACE_ID::RepeatedField< float > conf_threshold_;
    ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t > bbox_layer_index_;
    mutable std::atomic<int> _bbox_layer_index_cached_byte_size_;
    ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::SSDParam_OutputInfo > output_info_;
    int32_t num_classes_;
    float nms_threshold_;
    int32_t keep_top_k_;
    int32_t top_k_;
    bool is_mlperf_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class RetinaNetParam final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.RetinaNetParam) */ {
 public:
  inline RetinaNetParam() : RetinaNetParam(nullptr) {}
  ~RetinaNetParam() override;
  explicit PROTOBUF_CONSTEXPR RetinaNetParam(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  RetinaNetParam(const RetinaNetParam& from);
  RetinaNetParam(RetinaNetParam&& from) noexcept
    : RetinaNetParam() {
    *this = ::std::move(from);
  }

  inline RetinaNetParam& operator=(const RetinaNetParam& from) {
    CopyFrom(from);
    return *this;
  }
  inline RetinaNetParam& operator=(RetinaNetParam&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const RetinaNetParam& default_instance() {
    return *internal_default_instance();
  }
  static inline const RetinaNetParam* internal_default_instance() {
    return reinterpret_cast<const RetinaNetParam*>(
               &_RetinaNetParam_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    5;

  friend void swap(RetinaNetParam& a, RetinaNetParam& b) {
    a.Swap(&b);
  }
  inline void Swap(RetinaNetParam* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(RetinaNetParam* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  RetinaNetParam* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<RetinaNetParam>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const RetinaNetParam& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom( const RetinaNetParam& from) {
    RetinaNetParam::MergeImpl(*this, from);
  }
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned);
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(RetinaNetParam* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.RetinaNetParam";
  }
  protected:
  explicit RetinaNetParam(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kBoxThresholdFieldNumber = 1,
    kNmsThresholdFieldNumber = 2,
    kConfThresholdFieldNumber = 3,
    kTopKFieldNumber = 4,
  };
  // float box_threshold = 1;
  void clear_box_threshold();
  float box_threshold() const;
  void set_box_threshold(float value);
  private:
  float _internal_box_threshold() const;
  void _internal_set_box_threshold(float value);
  public:

  // float nms_threshold = 2;
  void clear_nms_threshold();
  float nms_threshold() const;
  void set_nms_threshold(float value);
  private:
  float _internal_nms_threshold() const;
  void _internal_set_nms_threshold(float value);
  public:

  // float conf_threshold = 3;
  void clear_conf_threshold();
  float conf_threshold() const;
  void set_conf_threshold(float value);
  private:
  float _internal_conf_threshold() const;
  void _internal_set_conf_threshold(float value);
  public:

  // int32 top_k = 4;
  void clear_top_k();
  int32_t top_k() const;
  void set_top_k(int32_t value);
  private:
  int32_t _internal_top_k() const;
  void _internal_set_top_k(int32_t value);
  public:

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.RetinaNetParam)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    float box_threshold_;
    float nms_threshold_;
    float conf_threshold_;
    int32_t top_k_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class FairMotParam final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.FairMotParam) */ {
 public:
  inline FairMotParam() : FairMotParam(nullptr) {}
  ~FairMotParam() override;
  explicit PROTOBUF_CONSTEXPR FairMotParam(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  FairMotParam(const FairMotParam& from);
  FairMotParam(FairMotParam&& from) noexcept
    : FairMotParam() {
    *this = ::std::move(from);
  }

  inline FairMotParam& operator=(const FairMotParam& from) {
    CopyFrom(from);
    return *this;
  }
  inline FairMotParam& operator=(FairMotParam&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const FairMotParam& default_instance() {
    return *internal_default_instance();
  }
  static inline const FairMotParam* internal_default_instance() {
    return reinterpret_cast<const FairMotParam*>(
               &_FairMotParam_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    6;

  friend void swap(FairMotParam& a, FairMotParam& b) {
    a.Swap(&b);
  }
  inline void Swap(FairMotParam* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(FairMotParam* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  FairMotParam* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<FairMotParam>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const FairMotParam& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom( const FairMotParam& from) {
    FairMotParam::MergeImpl(*this, from);
  }
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned);
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(FairMotParam* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.FairMotParam";
  }
  protected:
  explicit FairMotParam(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kLayerNameFieldNumber = 5,
    kNmsThresholdFieldNumber = 1,
    kConfThresholdFieldNumber = 2,
    kKeepTopKFieldNumber = 3,
    kTopKFieldNumber = 4,
  };
  // repeated string layer_name = 5;
  int layer_name_size() const;
  private:
  int _internal_layer_name_size() const;
  public:
  void clear_layer_name();
  const std::string& layer_name(int index) const;
  std::string* mutable_layer_name(int index);
  void set_layer_name(int index, const std::string& value);
  void set_layer_name(int index, std::string&& value);
  void set_layer_name(int index, const char* value);
  void set_layer_name(int index, const char* value, size_t size);
  std::string* add_layer_name();
  void add_layer_name(const std::string& value);
  void add_layer_name(std::string&& value);
  void add_layer_name(const char* value);
  void add_layer_name(const char* value, size_t size);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>& layer_name() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>* mutable_layer_name();
  private:
  const std::string& _internal_layer_name(int index) const;
  std::string* _internal_add_layer_name();
  public:

  // float nms_threshold = 1;
  void clear_nms_threshold();
  float nms_threshold() const;
  void set_nms_threshold(float value);
  private:
  float _internal_nms_threshold() const;
  void _internal_set_nms_threshold(float value);
  public:

  // float conf_threshold = 2;
  void clear_conf_threshold();
  float conf_threshold() const;
  void set_conf_threshold(float value);
  private:
  float _internal_conf_threshold() const;
  void _internal_set_conf_threshold(float value);
  public:

  // int32 keep_top_k = 3;
  void clear_keep_top_k();
  int32_t keep_top_k() const;
  void set_keep_top_k(int32_t value);
  private:
  int32_t _internal_keep_top_k() const;
  void _internal_set_keep_top_k(int32_t value);
  public:

  // int32 top_k = 4;
  void clear_top_k();
  int32_t top_k() const;
  void set_top_k(int32_t value);
  private:
  int32_t _internal_top_k() const;
  void _internal_set_top_k(int32_t value);
  public:

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.FairMotParam)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string> layer_name_;
    float nms_threshold_;
    float conf_threshold_;
    int32_t keep_top_k_;
    int32_t top_k_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class MovenetParam final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.MovenetParam) */ {
 public:
  inline MovenetParam() : MovenetParam(nullptr) {}
  ~MovenetParam() override;
  explicit PROTOBUF_CONSTEXPR MovenetParam(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  MovenetParam(const MovenetParam& from);
  MovenetParam(MovenetParam&& from) noexcept
    : MovenetParam() {
    *this = ::std::move(from);
  }

  inline MovenetParam& operator=(const MovenetParam& from) {
    CopyFrom(from);
    return *this;
  }
  inline MovenetParam& operator=(MovenetParam&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const MovenetParam& default_instance() {
    return *internal_default_instance();
  }
  static inline const MovenetParam* internal_default_instance() {
    return reinterpret_cast<const MovenetParam*>(
               &_MovenetParam_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    7;

  friend void swap(MovenetParam& a, MovenetParam& b) {
    a.Swap(&b);
  }
  inline void Swap(MovenetParam* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(MovenetParam* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  MovenetParam* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<MovenetParam>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const MovenetParam& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom( const MovenetParam& from) {
    MovenetParam::MergeImpl(*this, from);
  }
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned);
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(MovenetParam* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.MovenetParam";
  }
  protected:
  explicit MovenetParam(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kLayerNameFieldNumber = 2,
    kCenterWeightFieldNumber = 3,
    kConfThresholdFieldNumber = 1,
  };
  // repeated string layer_name = 2;
  int layer_name_size() const;
  private:
  int _internal_layer_name_size() const;
  public:
  void clear_layer_name();
  const std::string& layer_name(int index) const;
  std::string* mutable_layer_name(int index);
  void set_layer_name(int index, const std::string& value);
  void set_layer_name(int index, std::string&& value);
  void set_layer_name(int index, const char* value);
  void set_layer_name(int index, const char* value, size_t size);
  std::string* add_layer_name();
  void add_layer_name(const std::string& value);
  void add_layer_name(std::string&& value);
  void add_layer_name(const char* value);
  void add_layer_name(const char* value, size_t size);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>& layer_name() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>* mutable_layer_name();
  private:
  const std::string& _internal_layer_name(int index) const;
  std::string* _internal_add_layer_name();
  public:

  // repeated float center_weight = 3;
  int center_weight_size() const;
  private:
  int _internal_center_weight_size() const;
  public:
  void clear_center_weight();
  private:
  float _internal_center_weight(int index) const;
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
      _internal_center_weight() const;
  void _internal_add_center_weight(float value);
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
      _internal_mutable_center_weight();
  public:
  float center_weight(int index) const;
  void set_center_weight(int index, float value);
  void add_center_weight(float value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
      center_weight() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
      mutable_center_weight();

  // float conf_threshold = 1;
  void clear_conf_threshold();
  float conf_threshold() const;
  void set_conf_threshold(float value);
  private:
  float _internal_conf_threshold() const;
  void _internal_set_conf_threshold(float value);
  public:

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.MovenetParam)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string> layer_name_;
    ::PROTOBUF_NAMESPACE_ID::RepeatedField< float > center_weight_;
    float conf_threshold_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class RefineDetParam final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.RefineDetParam) */ {
 public:
  inline RefineDetParam() : RefineDetParam(nullptr) {}
  ~RefineDetParam() override;
  explicit PROTOBUF_CONSTEXPR RefineDetParam(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  RefineDetParam(const RefineDetParam& from);
  RefineDetParam(RefineDetParam&& from) noexcept
    : RefineDetParam() {
    *this = ::std::move(from);
  }

  inline RefineDetParam& operator=(const RefineDetParam& from) {
    CopyFrom(from);
    return *this;
  }
  inline RefineDetParam& operator=(RefineDetParam&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const RefineDetParam& default_instance() {
    return *internal_default_instance();
  }
  static inline const RefineDetParam* internal_default_instance() {
    return reinterpret_cast<const RefineDetParam*>(
               &_RefineDetParam_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    8;

  friend void swap(RefineDetParam& a, RefineDetParam& b) {
    a.Swap(&b);
  }
  inline void Swap(RefineDetParam* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(RefineDetParam* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  RefineDetParam* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<RefineDetParam>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const RefineDetParam& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom( const RefineDetParam& from) {
    RefineDetParam::MergeImpl(*this, from);
  }
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned);
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(RefineDetParam* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.RefineDetParam";
  }
  protected:
  explicit RefineDetParam(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kPriorBoxParamFieldNumber = 1,
    kConfThresholdFieldNumber = 4,
    kLayerNameFieldNumber = 7,
    kNumClassesFieldNumber = 2,
    kNmsThresholdFieldNumber = 3,
    kKeepTopKFieldNumber = 5,
    kTopKFieldNumber = 6,
  };
  // repeated .vitis.ai.proto.PriorBoxParam prior_box_param = 1;
  int prior_box_param_size() const;
  private:
  int _internal_prior_box_param_size() const;
  public:
  void clear_prior_box_param();
  ::vitis::ai::proto::PriorBoxParam* mutable_prior_box_param(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::PriorBoxParam >*
      mutable_prior_box_param();
  private:
  const ::vitis::ai::proto::PriorBoxParam& _internal_prior_box_param(int index) const;
  ::vitis::ai::proto::PriorBoxParam* _internal_add_prior_box_param();
  public:
  const ::vitis::ai::proto::PriorBoxParam& prior_box_param(int index) const;
  ::vitis::ai::proto::PriorBoxParam* add_prior_box_param();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::PriorBoxParam >&
      prior_box_param() const;

  // repeated float conf_threshold = 4;
  int conf_threshold_size() const;
  private:
  int _internal_conf_threshold_size() const;
  public:
  void clear_conf_threshold();
  private:
  float _internal_conf_threshold(int index) const;
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
      _internal_conf_threshold() const;
  void _internal_add_conf_threshold(float value);
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
      _internal_mutable_conf_threshold();
  public:
  float conf_threshold(int index) const;
  void set_conf_threshold(int index, float value);
  void add_conf_threshold(float value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
      conf_threshold() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
      mutable_conf_threshold();

  // repeated string layer_name = 7;
  int layer_name_size() const;
  private:
  int _internal_layer_name_size() const;
  public:
  void clear_layer_name();
  const std::string& layer_name(int index) const;
  std::string* mutable_layer_name(int index);
  void set_layer_name(int index, const std::string& value);
  void set_layer_name(int index, std::string&& value);
  void set_layer_name(int index, const char* value);
  void set_layer_name(int index, const char* value, size_t size);
  std::string* add_layer_name();
  void add_layer_name(const std::string& value);
  void add_layer_name(std::string&& value);
  void add_layer_name(const char* value);
  void add_layer_name(const char* value, size_t size);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>& layer_name() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>* mutable_layer_name();
  private:
  const std::string& _internal_layer_name(int index) const;
  std::string* _internal_add_layer_name();
  public:

  // int32 num_classes = 2;
  void clear_num_classes();
  int32_t num_classes() const;
  void set_num_classes(int32_t value);
  private:
  int32_t _internal_num_classes() const;
  void _internal_set_num_classes(int32_t value);
  public:

  // float nms_threshold = 3;
  void clear_nms_threshold();
  float nms_threshold() const;
  void set_nms_threshold(float value);
  private:
  float _internal_nms_threshold() const;
  void _internal_set_nms_threshold(float value);
  public:

  // int32 keep_top_k = 5;
  void clear_keep_top_k();
  int32_t keep_top_k() const;
  void set_keep_top_k(int32_t value);
  private:
  int32_t _internal_keep_top_k() const;
  void _internal_set_keep_top_k(int32_t value);
  public:

  // int32 top_k = 6;
  void clear_top_k();
  int32_t top_k() const;
  void set_top_k(int32_t value);
  private:
  int32_t _internal_top_k() const;
  void _internal_set_top_k(int32_t value);
  public:

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.RefineDetParam)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::PriorBoxParam > prior_box_param_;
    ::PROTOBUF_NAMESPACE_ID::RepeatedField< float > conf_threshold_;
    ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string> layer_name_;
    int32_t num_classes_;
    float nms_threshold_;
    int32_t keep_top_k_;
    int32_t top_k_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class TFRefineDetParam final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.TFRefineDetParam) */ {
 public:
  inline TFRefineDetParam() : TFRefineDetParam(nullptr) {}
  ~TFRefineDetParam() override;
  explicit PROTOBUF_CONSTEXPR TFRefineDetParam(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  TFRefineDetParam(const TFRefineDetParam& from);
  TFRefineDetParam(TFRefineDetParam&& from) noexcept
    : TFRefineDetParam() {
    *this = ::std::move(from);
  }

  inline TFRefineDetParam& operator=(const TFRefineDetParam& from) {
    CopyFrom(from);
    return *this;
  }
  inline TFRefineDetParam& operator=(TFRefineDetParam&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const TFRefineDetParam& default_instance() {
    return *internal_default_instance();
  }
  static inline const TFRefineDetParam* internal_default_instance() {
    return reinterpret_cast<const TFRefineDetParam*>(
               &_TFRefineDetParam_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    9;

  friend void swap(TFRefineDetParam& a, TFRefineDetParam& b) {
    a.Swap(&b);
  }
  inline void Swap(TFRefineDetParam* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(TFRefineDetParam* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  TFRefineDetParam* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<TFRefineDetParam>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const TFRefineDetParam& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom( const TFRefineDetParam& from) {
    TFRefineDetParam::MergeImpl(*this, from);
  }
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned);
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(TFRefineDetParam* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.TFRefineDetParam";
  }
  protected:
  explicit TFRefineDetParam(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kLayerNameFieldNumber = 7,
    kPriorBoxParamFieldNumber = 1,
    kNumClassesFieldNumber = 2,
    kNmsThresholdFieldNumber = 3,
    kConfThresholdFieldNumber = 4,
    kKeepTopKFieldNumber = 5,
    kTopKFieldNumber = 6,
    kScaleXyFieldNumber = 8,
    kScaleWhFieldNumber = 9,
  };
  // repeated string layer_name = 7;
  int layer_name_size() const;
  private:
  int _internal_layer_name_size() const;
  public:
  void clear_layer_name();
  const std::string& layer_name(int index) const;
  std::string* mutable_layer_name(int index);
  void set_layer_name(int index, const std::string& value);
  void set_layer_name(int index, std::string&& value);
  void set_layer_name(int index, const char* value);
  void set_layer_name(int index, const char* value, size_t size);
  std::string* add_layer_name();
  void add_layer_name(const std::string& value);
  void add_layer_name(std::string&& value);
  void add_layer_name(const char* value);
  void add_layer_name(const char* value, size_t size);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>& layer_name() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>* mutable_layer_name();
  private:
  const std::string& _internal_layer_name(int index) const;
  std::string* _internal_add_layer_name();
  public:

  // .vitis.ai.proto.MedicalPriorBoxParam prior_box_param = 1;
  bool has_prior_box_param() const;
  private:
  bool _internal_has_prior_box_param() const;
  public:
  void clear_prior_box_param();
  const ::vitis::ai::proto::MedicalPriorBoxParam& prior_box_param() const;
  PROTOBUF_NODISCARD ::vitis::ai::proto::MedicalPriorBoxParam* release_prior_box_param();
  ::vitis::ai::proto::MedicalPriorBoxParam* mutable_prior_box_param();
  void set_allocated_prior_box_param(::vitis::ai::proto::MedicalPriorBoxParam* prior_box_param);
  private:
  const ::vitis::ai::proto::MedicalPriorBoxParam& _internal_prior_box_param() const;
  ::vitis::ai::proto::MedicalPriorBoxParam* _internal_mutable_prior_box_param();
  public:
  void unsafe_arena_set_allocated_prior_box_param(
      ::vitis::ai::proto::MedicalPriorBoxParam* prior_box_param);
  ::vitis::ai::proto::MedicalPriorBoxParam* unsafe_arena_release_prior_box_param();

  // int32 num_classes = 2;
  void clear_num_classes();
  int32_t num_classes() const;
  void set_num_classes(int32_t value);
  private:
  int32_t _internal_num_classes() const;
  void _internal_set_num_classes(int32_t value);
  public:

  // float nms_threshold = 3;
  void clear_nms_threshold();
  float nms_threshold() const;
  void set_nms_threshold(float value);
  private:
  float _internal_nms_threshold() const;
  void _internal_set_nms_threshold(float value);
  public:

  // float conf_threshold = 4;
  void clear_conf_threshold();
  float conf_threshold() const;
  void set_conf_threshold(float value);
  private:
  float _internal_conf_threshold() const;
  void _internal_set_conf_threshold(float value);
  public:

  // int32 keep_top_k = 5;
  void clear_keep_top_k();
  int32_t keep_top_k() const;
  void set_keep_top_k(int32_t value);
  private:
  int32_t _internal_keep_top_k() const;
  void _internal_set_keep_top_k(int32_t value);
  public:

  // int32 top_k = 6;
  void clear_top_k();
  int32_t top_k() const;
  void set_top_k(int32_t value);
  private:
  int32_t _internal_top_k() const;
  void _internal_set_top_k(int32_t value);
  public:

  // float scale_xy = 8;
  void clear_scale_xy();
  float scale_xy() const;
  void set_scale_xy(float value);
  private:
  float _internal_scale_xy() const;
  void _internal_set_scale_xy(float value);
  public:

  // float scale_wh = 9;
  void clear_scale_wh();
  float scale_wh() const;
  void set_scale_wh(float value);
  private:
  float _internal_scale_wh() const;
  void _internal_set_scale_wh(float value);
  public:

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.TFRefineDetParam)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string> layer_name_;
    ::vitis::ai::proto::MedicalPriorBoxParam* prior_box_param_;
    int32_t num_classes_;
    float nms_threshold_;
    float conf_threshold_;
    int32_t keep_top_k_;
    int32_t top_k_;
    float scale_xy_;
    float scale_wh_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class MedicalRefineDetParam_OutputInfo final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.MedicalRefineDetParam.OutputInfo) */ {
 public:
  inline MedicalRefineDetParam_OutputInfo() : MedicalRefineDetParam_OutputInfo(nullptr) {}
  ~MedicalRefineDetParam_OutputInfo() override;
  explicit PROTOBUF_CONSTEXPR MedicalRefineDetParam_OutputInfo(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  MedicalRefineDetParam_OutputInfo(const MedicalRefineDetParam_OutputInfo& from);
  MedicalRefineDetParam_OutputInfo(MedicalRefineDetParam_OutputInfo&& from) noexcept
    : MedicalRefineDetParam_OutputInfo() {
    *this = ::std::move(from);
  }

  inline MedicalRefineDetParam_OutputInfo& operator=(const MedicalRefineDetParam_OutputInfo& from) {
    CopyFrom(from);
    return *this;
  }
  inline MedicalRefineDetParam_OutputInfo& operator=(MedicalRefineDetParam_OutputInfo&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const MedicalRefineDetParam_OutputInfo& default_instance() {
    return *internal_default_instance();
  }
  static inline const MedicalRefineDetParam_OutputInfo* internal_default_instance() {
    return reinterpret_cast<const MedicalRefineDetParam_OutputInfo*>(
               &_MedicalRefineDetParam_OutputInfo_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    10;

  friend void swap(MedicalRefineDetParam_OutputInfo& a, MedicalRefineDetParam_OutputInfo& b) {
    a.Swap(&b);
  }
  inline void Swap(MedicalRefineDetParam_OutputInfo* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(MedicalRefineDetParam_OutputInfo* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  MedicalRefineDetParam_OutputInfo* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<MedicalRefineDetParam_OutputInfo>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const MedicalRefineDetParam_OutputInfo& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom( const MedicalRefineDetParam_OutputInfo& from) {
    MedicalRefineDetParam_OutputInfo::MergeImpl(*this, from);
  }
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned);
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(MedicalRefineDetParam_OutputInfo* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.MedicalRefineDetParam.OutputInfo";
  }
  protected:
  explicit MedicalRefineDetParam_OutputInfo(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kNameFieldNumber = 3,
    kTypeFieldNumber = 1,
    kOrderFieldNumber = 2,
  };
  // string name = 3;
  void clear_name();
  const std::string& name() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_name(ArgT0&& arg0, ArgT... args);
  std::string* mutable_name();
  PROTOBUF_NODISCARD std::string* release_name();
  void set_allocated_name(std::string* name);
  private:
  const std::string& _internal_name() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_name(const std::string& value);
  std::string* _internal_mutable_name();
  public:

  // .vitis.ai.proto.MedicalRefineDetParam.OutputType type = 1;
  void clear_type();
  ::vitis::ai::proto::MedicalRefineDetParam_OutputType type() const;
  void set_type(::vitis::ai::proto::MedicalRefineDetParam_OutputType value);
  private:
  ::vitis::ai::proto::MedicalRefineDetParam_OutputType _internal_type() const;
  void _internal_set_type(::vitis::ai::proto::MedicalRefineDetParam_OutputType value);
  public:

  // int32 order = 2;
  void clear_order();
  int32_t order() const;
  void set_order(int32_t value);
  private:
  int32_t _internal_order() const;
  void _internal_set_order(int32_t value);
  public:

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.MedicalRefineDetParam.OutputInfo)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr name_;
    int type_;
    int32_t order_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class MedicalRefineDetParam final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.MedicalRefineDetParam) */ {
 public:
  inline MedicalRefineDetParam() : MedicalRefineDetParam(nullptr) {}
  ~MedicalRefineDetParam() override;
  explicit PROTOBUF_CONSTEXPR MedicalRefineDetParam(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  MedicalRefineDetParam(const MedicalRefineDetParam& from);
  MedicalRefineDetParam(MedicalRefineDetParam&& from) noexcept
    : MedicalRefineDetParam() {
    *this = ::std::move(from);
  }

  inline MedicalRefineDetParam& operator=(const MedicalRefineDetParam& from) {
    CopyFrom(from);
    return *this;
  }
  inline MedicalRefineDetParam& operator=(MedicalRefineDetParam&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const MedicalRefineDetParam& default_instance() {
    return *internal_default_instance();
  }
  static inline const MedicalRefineDetParam* internal_default_instance() {
    return reinterpret_cast<const MedicalRefineDetParam*>(
               &_MedicalRefineDetParam_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    11;

  friend void swap(MedicalRefineDetParam& a, MedicalRefineDetParam& b) {
    a.Swap(&b);
  }
  inline void Swap(MedicalRefineDetParam* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(MedicalRefineDetParam* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  MedicalRefineDetParam* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<MedicalRefineDetParam>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const MedicalRefineDetParam& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom( const MedicalRefineDetParam& from) {
    MedicalRefineDetParam::MergeImpl(*this, from);
  }
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned);
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(MedicalRefineDetParam* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.MedicalRefineDetParam";
  }
  protected:
  explicit MedicalRefineDetParam(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

  typedef MedicalRefineDetParam_OutputInfo OutputInfo;

  typedef MedicalRefineDetParam_OutputType OutputType;
  static constexpr OutputType USELESS =
    MedicalRefineDetParam_OutputType_USELESS;
  static constexpr OutputType ARM_CONF =
    MedicalRefineDetParam_OutputType_ARM_CONF;
  static constexpr OutputType ARM_BBOX =
    MedicalRefineDetParam_OutputType_ARM_BBOX;
  static constexpr OutputType ODM_CONF =
    MedicalRefineDetParam_OutputType_ODM_CONF;
  static constexpr OutputType ODM_BBOX =
    MedicalRefineDetParam_OutputType_ODM_BBOX;
  static inline bool OutputType_IsValid(int value) {
    return MedicalRefineDetParam_OutputType_IsValid(value);
  }
  static constexpr OutputType OutputType_MIN =
    MedicalRefineDetParam_OutputType_OutputType_MIN;
  static constexpr OutputType OutputType_MAX =
    MedicalRefineDetParam_OutputType_OutputType_MAX;
  static constexpr int OutputType_ARRAYSIZE =
    MedicalRefineDetParam_OutputType_OutputType_ARRAYSIZE;
  static inline const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor*
  OutputType_descriptor() {
    return MedicalRefineDetParam_OutputType_descriptor();
  }
  template<typename T>
  static inline const std::string& OutputType_Name(T enum_t_value) {
    static_assert(::std::is_same<T, OutputType>::value ||
      ::std::is_integral<T>::value,
      "Incorrect type passed to function OutputType_Name.");
    return MedicalRefineDetParam_OutputType_Name(enum_t_value);
  }
  static inline bool OutputType_Parse(::PROTOBUF_NAMESPACE_ID::ConstStringParam name,
      OutputType* value) {
    return MedicalRefineDetParam_OutputType_Parse(name, value);
  }

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

  enum : int {
    kOutputInfoFieldNumber = 9,
    kMedicalPriorBoxParamFieldNumber = 8,
    kNumClassesFieldNumber = 1,
    kScaleXyFieldNumber = 2,
    kScaleWhFieldNumber = 3,
    kNmsThresholdFieldNumber = 4,
    kConfThresholdFieldNumber = 5,
    kKeepTopKFieldNumber = 6,
    kTopKFieldNumber = 7,
  };
  // repeated .vitis.ai.proto.MedicalRefineDetParam.OutputInfo output_info = 9;
  int output_info_size() const;
  private:
  int _internal_output_info_size() const;
  public:
  void clear_output_info();
  ::vitis::ai::proto::MedicalRefineDetParam_OutputInfo* mutable_output_info(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::MedicalRefineDetParam_OutputInfo >*
      mutable_output_info();
  private:
  const ::vitis::ai::proto::MedicalRefineDetParam_OutputInfo& _internal_output_info(int index) const;
  ::vitis::ai::proto::MedicalRefineDetParam_OutputInfo* _internal_add_output_info();
  public:
  const ::vitis::ai::proto::MedicalRefineDetParam_OutputInfo& output_info(int index) const;
  ::vitis::ai::proto::MedicalRefineDetParam_OutputInfo* add_output_info();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::MedicalRefineDetParam_OutputInfo >&
      output_info() const;

  // .vitis.ai.proto.MedicalPriorBoxParam medical_prior_box_param = 8;
  bool has_medical_prior_box_param() const;
  private:
  bool _internal_has_medical_prior_box_param() const;
  public:
  void clear_medical_prior_box_param();
  const ::vitis::ai::proto::MedicalPriorBoxParam& medical_prior_box_param() const;
  PROTOBUF_NODISCARD ::vitis::ai::proto::MedicalPriorBoxParam* release_medical_prior_box_param();
  ::vitis::ai::proto::MedicalPriorBoxParam* mutable_medical_prior_box_param();
  void set_allocated_medical_prior_box_param(::vitis::ai::proto::MedicalPriorBoxParam* medical_prior_box_param);
  private:
  const ::vitis::ai::proto::MedicalPriorBoxParam& _internal_medical_prior_box_param() const;
  ::vitis::ai::proto::MedicalPriorBoxParam* _internal_mutable_medical_prior_box_param();
  public:
  void unsafe_arena_set_allocated_medical_prior_box_param(
      ::vitis::ai::proto::MedicalPriorBoxParam* medical_prior_box_param);
  ::vitis::ai::proto::MedicalPriorBoxParam* unsafe_arena_release_medical_prior_box_param();

  // int32 num_classes = 1;
  void clear_num_classes();
  int32_t num_classes() const;
  void set_num_classes(int32_t value);
  private:
  int32_t _internal_num_classes() const;
  void _internal_set_num_classes(int32_t value);
  public:

  // float scale_xy = 2;
  void clear_scale_xy();
  float scale_xy() const;
  void set_scale_xy(float value);
  private:
  float _internal_scale_xy() const;
  void _internal_set_scale_xy(float value);
  public:

  // float scale_wh = 3;
  void clear_scale_wh();
  float scale_wh() const;
  void set_scale_wh(float value);
  private:
  float _internal_scale_wh() const;
  void _internal_set_scale_wh(float value);
  public:

  // float nms_threshold = 4;
  void clear_nms_threshold();
  float nms_threshold() const;
  void set_nms_threshold(float value);
  private:
  float _internal_nms_threshold() const;
  void _internal_set_nms_threshold(float value);
  public:

  // float conf_threshold = 5;
  void clear_conf_threshold();
  float conf_threshold() const;
  void set_conf_threshold(float value);
  private:
  float _internal_conf_threshold() const;
  void _internal_set_conf_threshold(float value);
  public:

  // int32 keep_top_k = 6;
  void clear_keep_top_k();
  int32_t keep_top_k() const;
  void set_keep_top_k(int32_t value);
  private:
  int32_t _internal_keep_top_k() const;
  void _internal_set_keep_top_k(int32_t value);
  public:

  // int32 top_k = 7;
  void clear_top_k();
  int32_t top_k() const;
  void set_top_k(int32_t value);
  private:
  int32_t _internal_top_k() const;
  void _internal_set_top_k(int32_t value);
  public:

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.MedicalRefineDetParam)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::MedicalRefineDetParam_OutputInfo > output_info_;
    ::vitis::ai::proto::MedicalPriorBoxParam* medical_prior_box_param_;
    int32_t num_classes_;
    float scale_xy_;
    float scale_wh_;
    float nms_threshold_;
    float conf_threshold_;
    int32_t keep_top_k_;
    int32_t top_k_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class ReidParam final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.ReidParam) */ {
 public:
  inline ReidParam() : ReidParam(nullptr) {}
  ~ReidParam() override;
  explicit PROTOBUF_CONSTEXPR ReidParam(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  ReidParam(const ReidParam& from);
  ReidParam(ReidParam&& from) noexcept
    : ReidParam() {
    *this = ::std::move(from);
  }

  inline ReidParam& operator=(const ReidParam& from) {
    CopyFrom(from);
    return *this;
  }
  inline ReidParam& operator=(ReidParam&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const ReidParam& default_instance() {
    return *internal_default_instance();
  }
  static inline const ReidParam* internal_default_instance() {
    return reinterpret_cast<const ReidParam*>(
               &_ReidParam_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    12;

  friend void swap(ReidParam& a, ReidParam& b) {
    a.Swap(&b);
  }
  inline void Swap(ReidParam* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ReidParam* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  ReidParam* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<ReidParam>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const ReidParam& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom( const ReidParam& from) {
    ReidParam::MergeImpl(*this, from);
  }
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned);
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(ReidParam* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.ReidParam";
  }
  protected:
  explicit ReidParam(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kBnMeansFieldNumber = 1,
    kBnWeightsFieldNumber = 2,
    kBnVarsFieldNumber = 3,
  };
  // repeated float bn_means = 1;
  int bn_means_size() const;
  private:
  int _internal_bn_means_size() const;
  public:
  void clear_bn_means();
  private:
  float _internal_bn_means(int index) const;
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
      _internal_bn_means() const;
  void _internal_add_bn_means(float value);
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
      _internal_mutable_bn_means();
  public:
  float bn_means(int index) const;
  void set_bn_means(int index, float value);
  void add_bn_means(float value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
      bn_means() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
      mutable_bn_means();

  // repeated float bn_weights = 2;
  int bn_weights_size() const;
  private:
  int _internal_bn_weights_size() const;
  public:
  void clear_bn_weights();
  private:
  float _internal_bn_weights(int index) const;
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
      _internal_bn_weights() const;
  void _internal_add_bn_weights(float value);
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
      _internal_mutable_bn_weights();
  public:
  float bn_weights(int index) const;
  void set_bn_weights(int index, float value);
  void add_bn_weights(float value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
      bn_weights() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
      mutable_bn_weights();

  // repeated float bn_vars = 3;
  int bn_vars_size() const;
  private:
  int _internal_bn_vars_size() const;
  public:
  void clear_bn_vars();
  private:
  float _internal_bn_vars(int index) const;
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
      _internal_bn_vars() const;
  void _internal_add_bn_vars(float value);
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
      _internal_mutable_bn_vars();
  public:
  float bn_vars(int index) const;
  void set_bn_vars(int index, float value);
  void add_bn_vars(float value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
      bn_vars() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
      mutable_bn_vars();

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.ReidParam)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    ::PROTOBUF_NAMESPACE_ID::RepeatedField< float > bn_means_;
    ::PROTOBUF_NAMESPACE_ID::RepeatedField< float > bn_weights_;
    ::PROTOBUF_NAMESPACE_ID::RepeatedField< float > bn_vars_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class OpenPoseParam final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.OpenPoseParam) */ {
 public:
  inline OpenPoseParam() : OpenPoseParam(nullptr) {}
  ~OpenPoseParam() override;
  explicit PROTOBUF_CONSTEXPR OpenPoseParam(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  OpenPoseParam(const OpenPoseParam& from);
  OpenPoseParam(OpenPoseParam&& from) noexcept
    : OpenPoseParam() {
    *this = ::std::move(from);
  }

  inline OpenPoseParam& operator=(const OpenPoseParam& from) {
    CopyFrom(from);
    return *this;
  }
  inline OpenPoseParam& operator=(OpenPoseParam&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const OpenPoseParam& default_instance() {
    return *internal_default_instance();
  }
  static inline const OpenPoseParam* internal_default_instance() {
    return reinterpret_cast<const OpenPoseParam*>(
               &_OpenPoseParam_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    13;

  friend void swap(OpenPoseParam& a, OpenPoseParam& b) {
    a.Swap(&b);
  }
  inline void Swap(OpenPoseParam* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(OpenPoseParam* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  OpenPoseParam* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<OpenPoseParam>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const OpenPoseParam& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom( const OpenPoseParam& from) {
    OpenPoseParam::MergeImpl(*this, from);
  }
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned);
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(OpenPoseParam* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.OpenPoseParam";
  }
  protected:
  explicit OpenPoseParam(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kLayerNameFieldNumber = 1,
  };
  // repeated string layer_name = 1;
  int layer_name_size() const;
  private:
  int _internal_layer_name_size() const;
  public:
  void clear_layer_name();
  const std::string& layer_name(int index) const;
  std::string* mutable_layer_name(int index);
  void set_layer_name(int index, const std::string& value);
  void set_layer_name(int index, std::string&& value);
  void set_layer_name(int index, const char* value);
  void set_layer_name(int index, const char* value, size_t size);
  std::string* add_layer_name();
  void add_layer_name(const std::string& value);
  void add_layer_name(std::string&& value);
  void add_layer_name(const char* value);
  void add_layer_name(const char* value, size_t size);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>& layer_name() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>* mutable_layer_name();
  private:
  const std::string& _internal_layer_name(int index) const;
  std::string* _internal_add_layer_name();
  public:

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.OpenPoseParam)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string> layer_name_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class ClassificationParam_AvgPoolParam final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.ClassificationParam.AvgPoolParam) */ {
 public:
  inline ClassificationParam_AvgPoolParam() : ClassificationParam_AvgPoolParam(nullptr) {}
  ~ClassificationParam_AvgPoolParam() override;
  explicit PROTOBUF_CONSTEXPR ClassificationParam_AvgPoolParam(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  ClassificationParam_AvgPoolParam(const ClassificationParam_AvgPoolParam& from);
  ClassificationParam_AvgPoolParam(ClassificationParam_AvgPoolParam&& from) noexcept
    : ClassificationParam_AvgPoolParam() {
    *this = ::std::move(from);
  }

  inline ClassificationParam_AvgPoolParam& operator=(const ClassificationParam_AvgPoolParam& from) {
    CopyFrom(from);
    return *this;
  }
  inline ClassificationParam_AvgPoolParam& operator=(ClassificationParam_AvgPoolParam&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const ClassificationParam_AvgPoolParam& default_instance() {
    return *internal_default_instance();
  }
  static inline const ClassificationParam_AvgPoolParam* internal_default_instance() {
    return reinterpret_cast<const ClassificationParam_AvgPoolParam*>(
               &_ClassificationParam_AvgPoolParam_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    14;

  friend void swap(ClassificationParam_AvgPoolParam& a, ClassificationParam_AvgPoolParam& b) {
    a.Swap(&b);
  }
  inline void Swap(ClassificationParam_AvgPoolParam* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ClassificationParam_AvgPoolParam* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  ClassificationParam_AvgPoolParam* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<ClassificationParam_AvgPoolParam>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const ClassificationParam_AvgPoolParam& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom( const ClassificationParam_AvgPoolParam& from) {
    ClassificationParam_AvgPoolParam::MergeImpl(*this, from);
  }
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned);
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(ClassificationParam_AvgPoolParam* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.ClassificationParam.AvgPoolParam";
  }
  protected:
  explicit ClassificationParam_AvgPoolParam(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kScaleFieldNumber = 1,
  };
  // int32 scale = 1;
  void clear_scale();
  int32_t scale() const;
  void set_scale(int32_t value);
  private:
  int32_t _internal_scale() const;
  void _internal_set_scale(int32_t value);
  public:

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.ClassificationParam.AvgPoolParam)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    int32_t scale_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class ClassificationParam final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.ClassificationParam) */ {
 public:
  inline ClassificationParam() : ClassificationParam(nullptr) {}
  ~ClassificationParam() override;
  explicit PROTOBUF_CONSTEXPR ClassificationParam(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  ClassificationParam(const ClassificationParam& from);
  ClassificationParam(ClassificationParam&& from) noexcept
    : ClassificationParam() {
    *this = ::std::move(from);
  }

  inline ClassificationParam& operator=(const ClassificationParam& from) {
    CopyFrom(from);
    return *this;
  }
  inline ClassificationParam& operator=(ClassificationParam&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const ClassificationParam& default_instance() {
    return *internal_default_instance();
  }
  static inline const ClassificationParam* internal_default_instance() {
    return reinterpret_cast<const ClassificationParam*>(
               &_ClassificationParam_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    15;

  friend void swap(ClassificationParam& a, ClassificationParam& b) {
    a.Swap(&b);
  }
  inline void Swap(ClassificationParam* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ClassificationParam* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  ClassificationParam* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<ClassificationParam>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const ClassificationParam& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom( const ClassificationParam& from) {
    ClassificationParam::MergeImpl(*this, from);
  }
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned);
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(ClassificationParam* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.ClassificationParam";
  }
  protected:
  explicit ClassificationParam(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

  typedef ClassificationParam_AvgPoolParam AvgPoolParam;

  typedef ClassificationParam_PreprocessType PreprocessType;
  static constexpr PreprocessType UNKNOWN_TYPE =
    ClassificationParam_PreprocessType_UNKNOWN_TYPE;
  static constexpr PreprocessType CAFFE =
    ClassificationParam_PreprocessType_CAFFE;
  static constexpr PreprocessType VGG_PREPROCESS =
    ClassificationParam_PreprocessType_VGG_PREPROCESS;
  static constexpr PreprocessType INCEPTION_PREPROCESS =
    ClassificationParam_PreprocessType_INCEPTION_PREPROCESS;
  static constexpr PreprocessType INCEPTION_PT =
    ClassificationParam_PreprocessType_INCEPTION_PT;
  static constexpr PreprocessType RESNET50_TF2 =
    ClassificationParam_PreprocessType_RESNET50_TF2;
  static constexpr PreprocessType EFFICIENTNET_PREPROCESS =
    ClassificationParam_PreprocessType_EFFICIENTNET_PREPROCESS;
  static constexpr PreprocessType OFA_RESNET50_PT =
    ClassificationParam_PreprocessType_OFA_RESNET50_PT;
  static constexpr PreprocessType OFA_DEPTHWISE_RES50 =
    ClassificationParam_PreprocessType_OFA_DEPTHWISE_RES50;
  static constexpr PreprocessType RGB_PREPROCESS =
    ClassificationParam_PreprocessType_RGB_PREPROCESS;
  static constexpr PreprocessType OFA_RESNET50_PT2 =
    ClassificationParam_PreprocessType_OFA_RESNET50_PT2;
  static inline bool PreprocessType_IsValid(int value) {
    return ClassificationParam_PreprocessType_IsValid(value);
  }
  static constexpr PreprocessType PreprocessType_MIN =
    ClassificationParam_PreprocessType_PreprocessType_MIN;
  static constexpr PreprocessType PreprocessType_MAX =
    ClassificationParam_PreprocessType_PreprocessType_MAX;
  static constexpr int PreprocessType_ARRAYSIZE =
    ClassificationParam_PreprocessType_PreprocessType_ARRAYSIZE;
  static inline const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor*
  PreprocessType_descriptor() {
    return ClassificationParam_PreprocessType_descriptor();
  }
  template<typename T>
  static inline const std::string& PreprocessType_Name(T enum_t_value) {
    static_assert(::std::is_same<T, PreprocessType>::value ||
      ::std::is_integral<T>::value,
      "Incorrect type passed to function PreprocessType_Name.");
    return ClassificationParam_PreprocessType_Name(enum_t_value);
  }
  static inline bool PreprocessType_Parse(::PROTOBUF_NAMESPACE_ID::ConstStringParam name,
      PreprocessType* value) {
    return ClassificationParam_PreprocessType_Parse(name, value);
  }

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

  enum : int {
    kLayerNameFieldNumber = 4,
    kLabelTypeFieldNumber = 5,
    kAvgPoolParamFieldNumber = 6,
    kTopKFieldNumber = 1,
    kTestAccuracyFieldNumber = 2,
    kPreprocessTypeFieldNumber = 3,
  };
  // string layer_name = 4;
  void clear_layer_name();
  const std::string& layer_name() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_layer_name(ArgT0&& arg0, ArgT... args);
  std::string* mutable_layer_name();
  PROTOBUF_NODISCARD std::string* release_layer_name();
  void set_allocated_layer_name(std::string* layer_name);
  private:
  const std::string& _internal_layer_name() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_layer_name(const std::string& value);
  std::string* _internal_mutable_layer_name();
  public:

  // string label_type = 5;
  void clear_label_type();
  const std::string& label_type() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_label_type(ArgT0&& arg0, ArgT... args);
  std::string* mutable_label_type();
  PROTOBUF_NODISCARD std::string* release_label_type();
  void set_allocated_label_type(std::string* label_type);
  private:
  const std::string& _internal_label_type() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_label_type(const std::string& value);
  std::string* _internal_mutable_label_type();
  public:

  // .vitis.ai.proto.ClassificationParam.AvgPoolParam avg_pool_param = 6;
  bool has_avg_pool_param() const;
  private:
  bool _internal_has_avg_pool_param() const;
  public:
  void clear_avg_pool_param();
  const ::vitis::ai::proto::ClassificationParam_AvgPoolParam& avg_pool_param() const;
  PROTOBUF_NODISCARD ::vitis::ai::proto::ClassificationParam_AvgPoolParam* release_avg_pool_param();
  ::vitis::ai::proto::ClassificationParam_AvgPoolParam* mutable_avg_pool_param();
  void set_allocated_avg_pool_param(::vitis::ai::proto::ClassificationParam_AvgPoolParam* avg_pool_param);
  private:
  const ::vitis::ai::proto::ClassificationParam_AvgPoolParam& _internal_avg_pool_param() const;
  ::vitis::ai::proto::ClassificationParam_AvgPoolParam* _internal_mutable_avg_pool_param();
  public:
  void unsafe_arena_set_allocated_avg_pool_param(
      ::vitis::ai::proto::ClassificationParam_AvgPoolParam* avg_pool_param);
  ::vitis::ai::proto::ClassificationParam_AvgPoolParam* unsafe_arena_release_avg_pool_param();

  // int32 top_k = 1;
  void clear_top_k();
  int32_t top_k() const;
  void set_top_k(int32_t value);
  private:
  int32_t _internal_top_k() const;
  void _internal_set_top_k(int32_t value);
  public:

  // bool test_accuracy = 2;
  void clear_test_accuracy();
  bool test_accuracy() const;
  void set_test_accuracy(bool value);
  private:
  bool _internal_test_accuracy() const;
  void _internal_set_test_accuracy(bool value);
  public:

  // .vitis.ai.proto.ClassificationParam.PreprocessType preprocess_type = 3;
  void clear_preprocess_type();
  ::vitis::ai::proto::ClassificationParam_PreprocessType preprocess_type() const;
  void set_preprocess_type(::vitis::ai::proto::ClassificationParam_PreprocessType value);
  private:
  ::vitis::ai::proto::ClassificationParam_PreprocessType _internal_preprocess_type() const;
  void _internal_set_preprocess_type(::vitis::ai::proto::ClassificationParam_PreprocessType value);
  public:

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.ClassificationParam)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr layer_name_;
    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr label_type_;
    ::vitis::ai::proto::ClassificationParam_AvgPoolParam* avg_pool_param_;
    int32_t top_k_;
    bool test_accuracy_;
    int preprocess_type_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class DenseBoxParam final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.DenseBoxParam) */ {
 public:
  inline DenseBoxParam() : DenseBoxParam(nullptr) {}
  ~DenseBoxParam() override;
  explicit PROTOBUF_CONSTEXPR DenseBoxParam(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  DenseBoxParam(const DenseBoxParam& from);
  DenseBoxParam(DenseBoxParam&& from) noexcept
    : DenseBoxParam() {
    *this = ::std::move(from);
  }

  inline DenseBoxParam& operator=(const DenseBoxParam& from) {
    CopyFrom(from);
    return *this;
  }
  inline DenseBoxParam& operator=(DenseBoxParam&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const DenseBoxParam& default_instance() {
    return *internal_default_instance();
  }
  static inline const DenseBoxParam* internal_default_instance() {
    return reinterpret_cast<const DenseBoxParam*>(
               &_DenseBoxParam_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    16;

  friend void swap(DenseBoxParam& a, DenseBoxParam& b) {
    a.Swap(&b);
  }
  inline void Swap(DenseBoxParam* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(DenseBoxParam* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  DenseBoxParam* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<DenseBoxParam>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const DenseBoxParam& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom( const DenseBoxParam& from) {
    DenseBoxParam::MergeImpl(*this, from);
  }
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned);
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(DenseBoxParam* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.DenseBoxParam";
  }
  protected:
  explicit DenseBoxParam(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kNumOfClassesFieldNumber = 1,
    kNmsThresholdFieldNumber = 2,
    kDetThresholdFieldNumber = 3,
  };
  // int32 num_of_classes = 1;
  void clear_num_of_classes();
  int32_t num_of_classes() const;
  void set_num_of_classes(int32_t value);
  private:
  int32_t _internal_num_of_classes() const;
  void _internal_set_num_of_classes(int32_t value);
  public:

  // float nms_threshold = 2;
  void clear_nms_threshold();
  float nms_threshold() const;
  void set_nms_threshold(float value);
  private:
  float _internal_nms_threshold() const;
  void _internal_set_nms_threshold(float value);
  public:

  // float det_threshold = 3;
  void clear_det_threshold();
  float det_threshold() const;
  void set_det_threshold(float value);
  private:
  float _internal_det_threshold() const;
  void _internal_set_det_threshold(float value);
  public:

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.DenseBoxParam)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    int32_t num_of_classes_;
    float nms_threshold_;
    float det_threshold_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class MultiTaskParam final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.MultiTaskParam) */ {
 public:
  inline MultiTaskParam() : MultiTaskParam(nullptr) {}
  ~MultiTaskParam() override;
  explicit PROTOBUF_CONSTEXPR MultiTaskParam(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  MultiTaskParam(const MultiTaskParam& from);
  MultiTaskParam(MultiTaskParam&& from) noexcept
    : MultiTaskParam() {
    *this = ::std::move(from);
  }

  inline MultiTaskParam& operator=(const MultiTaskParam& from) {
    CopyFrom(from);
    return *this;
  }
  inline MultiTaskParam& operator=(MultiTaskParam&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const MultiTaskParam& default_instance() {
    return *internal_default_instance();
  }
  static inline const MultiTaskParam* internal_default_instance() {
    return reinterpret_cast<const MultiTaskParam*>(
               &_MultiTaskParam_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    17;

  friend void swap(MultiTaskParam& a, MultiTaskParam& b) {
    a.Swap(&b);
  }
  inline void Swap(MultiTaskParam* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(MultiTaskParam* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  MultiTaskParam* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<MultiTaskParam>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const MultiTaskParam& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom( const MultiTaskParam& from) {
    MultiTaskParam::MergeImpl(*this, from);
  }
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned);
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(MultiTaskParam* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.MultiTaskParam";
  }
  protected:
  explicit MultiTaskParam(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kThConfFieldNumber = 1,
    kPriorBoxParamFieldNumber = 7,
    kLocNameFieldNumber = 8,
    kConfNameFieldNumber = 9,
    kCenternessNameFieldNumber = 10,
    kSegNameFieldNumber = 11,
    kDrivableNameFieldNumber = 12,
    kDepthNameFieldNumber = 13,
    kLaneNameFieldNumber = 14,
    kNumOfDetectionClassesFieldNumber = 2,
    kNumOfSegmentationClassesFieldNumber = 3,
    kKeepTopKFieldNumber = 4,
    kTopKFieldNumber = 5,
    kNmsThresholdFieldNumber = 6,
  };
  // repeated float th_conf = 1;
  int th_conf_size() const;
  private:
  int _internal_th_conf_size() const;
  public:
  void clear_th_conf();
  private:
  float _internal_th_conf(int index) const;
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
      _internal_th_conf() const;
  void _internal_add_th_conf(float value);
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
      _internal_mutable_th_conf();
  public:
  float th_conf(int index) const;
  void set_th_conf(int index, float value);
  void add_th_conf(float value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
      th_conf() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
      mutable_th_conf();

  // repeated .vitis.ai.proto.PriorBoxParam prior_box_param = 7;
  int prior_box_param_size() const;
  private:
  int _internal_prior_box_param_size() const;
  public:
  void clear_prior_box_param();
  ::vitis::ai::proto::PriorBoxParam* mutable_prior_box_param(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::PriorBoxParam >*
      mutable_prior_box_param();
  private:
  const ::vitis::ai::proto::PriorBoxParam& _internal_prior_box_param(int index) const;
  ::vitis::ai::proto::PriorBoxParam* _internal_add_prior_box_param();
  public:
  const ::vitis::ai::proto::PriorBoxParam& prior_box_param(int index) const;
  ::vitis::ai::proto::PriorBoxParam* add_prior_box_param();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::PriorBoxParam >&
      prior_box_param() const;

  // repeated string loc_name = 8;
  int loc_name_size() const;
  private:
  int _internal_loc_name_size() const;
  public:
  void clear_loc_name();
  const std::string& loc_name(int index) const;
  std::string* mutable_loc_name(int index);
  void set_loc_name(int index, const std::string& value);
  void set_loc_name(int index, std::string&& value);
  void set_loc_name(int index, const char* value);
  void set_loc_name(int index, const char* value, size_t size);
  std::string* add_loc_name();
  void add_loc_name(const std::string& value);
  void add_loc_name(std::string&& value);
  void add_loc_name(const char* value);
  void add_loc_name(const char* value, size_t size);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>& loc_name() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>* mutable_loc_name();
  private:
  const std::string& _internal_loc_name(int index) const;
  std::string* _internal_add_loc_name();
  public:

  // repeated string conf_name = 9;
  int conf_name_size() const;
  private:
  int _internal_conf_name_size() const;
  public:
  void clear_conf_name();
  const std::string& conf_name(int index) const;
  std::string* mutable_conf_name(int index);
  void set_conf_name(int index, const std::string& value);
  void set_conf_name(int index, std::string&& value);
  void set_conf_name(int index, const char* value);
  void set_conf_name(int index, const char* value, size_t size);
  std::string* add_conf_name();
  void add_conf_name(const std::string& value);
  void add_conf_name(std::string&& value);
  void add_conf_name(const char* value);
  void add_conf_name(const char* value, size_t size);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>& conf_name() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>* mutable_conf_name();
  private:
  const std::string& _internal_conf_name(int index) const;
  std::string* _internal_add_conf_name();
  public:

  // repeated string centerness_name = 10;
  int centerness_name_size() const;
  private:
  int _internal_centerness_name_size() const;
  public:
  void clear_centerness_name();
  const std::string& centerness_name(int index) const;
  std::string* mutable_centerness_name(int index);
  void set_centerness_name(int index, const std::string& value);
  void set_centerness_name(int index, std::string&& value);
  void set_centerness_name(int index, const char* value);
  void set_centerness_name(int index, const char* value, size_t size);
  std::string* add_centerness_name();
  void add_centerness_name(const std::string& value);
  void add_centerness_name(std::string&& value);
  void add_centerness_name(const char* value);
  void add_centerness_name(const char* value, size_t size);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>& centerness_name() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>* mutable_centerness_name();
  private:
  const std::string& _internal_centerness_name(int index) const;
  std::string* _internal_add_centerness_name();
  public:

  // string seg_name = 11;
  void clear_seg_name();
  const std::string& seg_name() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_seg_name(ArgT0&& arg0, ArgT... args);
  std::string* mutable_seg_name();
  PROTOBUF_NODISCARD std::string* release_seg_name();
  void set_allocated_seg_name(std::string* seg_name);
  private:
  const std::string& _internal_seg_name() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_seg_name(const std::string& value);
  std::string* _internal_mutable_seg_name();
  public:

  // string drivable_name = 12;
  void clear_drivable_name();
  const std::string& drivable_name() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_drivable_name(ArgT0&& arg0, ArgT... args);
  std::string* mutable_drivable_name();
  PROTOBUF_NODISCARD std::string* release_drivable_name();
  void set_allocated_drivable_name(std::string* drivable_name);
  private:
  const std::string& _internal_drivable_name() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_drivable_name(const std::string& value);
  std::string* _internal_mutable_drivable_name();
  public:

  // string depth_name = 13;
  void clear_depth_name();
  const std::string& depth_name() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_depth_name(ArgT0&& arg0, ArgT... args);
  std::string* mutable_depth_name();
  PROTOBUF_NODISCARD std::string* release_depth_name();
  void set_allocated_depth_name(std::string* depth_name);
  private:
  const std::string& _internal_depth_name() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_depth_name(const std::string& value);
  std::string* _internal_mutable_depth_name();
  public:

  // string lane_name = 14;
  void clear_lane_name();
  const std::string& lane_name() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_lane_name(ArgT0&& arg0, ArgT... args);
  std::string* mutable_lane_name();
  PROTOBUF_NODISCARD std::string* release_lane_name();
  void set_allocated_lane_name(std::string* lane_name);
  private:
  const std::string& _internal_lane_name() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_lane_name(const std::string& value);
  std::string* _internal_mutable_lane_name();
  public:

  // int32 num_of_detection_classes = 2;
  void clear_num_of_detection_classes();
  int32_t num_of_detection_classes() const;
  void set_num_of_detection_classes(int32_t value);
  private:
  int32_t _internal_num_of_detection_classes() const;
  void _internal_set_num_of_detection_classes(int32_t value);
  public:

  // int32 num_of_segmentation_classes = 3;
  void clear_num_of_segmentation_classes();
  int32_t num_of_segmentation_classes() const;
  void set_num_of_segmentation_classes(int32_t value);
  private:
  int32_t _internal_num_of_segmentation_classes() const;
  void _internal_set_num_of_segmentation_classes(int32_t value);
  public:

  // int32 keep_top_k = 4;
  void clear_keep_top_k();
  int32_t keep_top_k() const;
  void set_keep_top_k(int32_t value);
  private:
  int32_t _internal_keep_top_k() const;
  void _internal_set_keep_top_k(int32_t value);
  public:

  // int32 top_k = 5;
  void clear_top_k();
  int32_t top_k() const;
  void set_top_k(int32_t value);
  private:
  int32_t _internal_top_k() const;
  void _internal_set_top_k(int32_t value);
  public:

  // float nms_threshold = 6;
  void clear_nms_threshold();
  float nms_threshold() const;
  void set_nms_threshold(float value);
  private:
  float _internal_nms_threshold() const;
  void _internal_set_nms_threshold(float value);
  public:

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.MultiTaskParam)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    ::PROTOBUF_NAMESPACE_ID::RepeatedField< float > th_conf_;
    ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::PriorBoxParam > prior_box_param_;
    ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string> loc_name_;
    ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string> conf_name_;
    ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string> centerness_name_;
    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr seg_name_;
    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr drivable_name_;
    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr depth_name_;
    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr lane_name_;
    int32_t num_of_detection_classes_;
    int32_t num_of_segmentation_classes_;
    int32_t keep_top_k_;
    int32_t top_k_;
    float nms_threshold_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class RoadlineParam final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.RoadlineParam) */ {
 public:
  inline RoadlineParam() : RoadlineParam(nullptr) {}
  ~RoadlineParam() override;
  explicit PROTOBUF_CONSTEXPR RoadlineParam(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  RoadlineParam(const RoadlineParam& from);
  RoadlineParam(RoadlineParam&& from) noexcept
    : RoadlineParam() {
    *this = ::std::move(from);
  }

  inline RoadlineParam& operator=(const RoadlineParam& from) {
    CopyFrom(from);
    return *this;
  }
  inline RoadlineParam& operator=(RoadlineParam&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const RoadlineParam& default_instance() {
    return *internal_default_instance();
  }
  static inline const RoadlineParam* internal_default_instance() {
    return reinterpret_cast<const RoadlineParam*>(
               &_RoadlineParam_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    18;

  friend void swap(RoadlineParam& a, RoadlineParam& b) {
    a.Swap(&b);
  }
  inline void Swap(RoadlineParam* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(RoadlineParam* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  RoadlineParam* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<RoadlineParam>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const RoadlineParam& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom( const RoadlineParam& from) {
    RoadlineParam::MergeImpl(*this, from);
  }
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned);
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(RoadlineParam* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.RoadlineParam";
  }
  protected:
  explicit RoadlineParam(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kLayerNameFieldNumber = 17,
    kRatioFieldNumber = 1,
    kIpmWidthFieldNumber = 2,
    kIpmHeightFieldNumber = 3,
    kIpmLeftFieldNumber = 4,
    kIpmRightFieldNumber = 5,
    kIpmTopFieldNumber = 6,
    kIpmBottomFieldNumber = 7,
    kIpmInterpolationFieldNumber = 8,
    kIpmVpPortionFieldNumber = 9,
    kFocalLengthXFieldNumber = 10,
    kFocalLengthYFieldNumber = 11,
    kOpticalCenterXFieldNumber = 12,
    kOpticalCenterYFieldNumber = 13,
    kCameraHeightFieldNumber = 14,
    kPitchFieldNumber = 15,
    kYawFieldNumber = 16,
  };
  // repeated string layer_name = 17;
  int layer_name_size() const;
  private:
  int _internal_layer_name_size() const;
  public:
  void clear_layer_name();
  const std::string& layer_name(int index) const;
  std::string* mutable_layer_name(int index);
  void set_layer_name(int index, const std::string& value);
  void set_layer_name(int index, std::string&& value);
  void set_layer_name(int index, const char* value);
  void set_layer_name(int index, const char* value, size_t size);
  std::string* add_layer_name();
  void add_layer_name(const std::string& value);
  void add_layer_name(std::string&& value);
  void add_layer_name(const char* value);
  void add_layer_name(const char* value, size_t size);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>& layer_name() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>* mutable_layer_name();
  private:
  const std::string& _internal_layer_name(int index) const;
  std::string* _internal_add_layer_name();
  public:

  // int32 ratio = 1;
  void clear_ratio();
  int32_t ratio() const;
  void set_ratio(int32_t value);
  private:
  int32_t _internal_ratio() const;
  void _internal_set_ratio(int32_t value);
  public:

  // float ipm_width = 2;
  void clear_ipm_width();
  float ipm_width() const;
  void set_ipm_width(float value);
  private:
  float _internal_ipm_width() const;
  void _internal_set_ipm_width(float value);
  public:

  // float ipm_height = 3;
  void clear_ipm_height();
  float ipm_height() const;
  void set_ipm_height(float value);
  private:
  float _internal_ipm_height() const;
  void _internal_set_ipm_height(float value);
  public:

  // float ipm_left = 4;
  void clear_ipm_left();
  float ipm_left() const;
  void set_ipm_left(float value);
  private:
  float _internal_ipm_left() const;
  void _internal_set_ipm_left(float value);
  public:

  // float ipm_right = 5;
  void clear_ipm_right();
  float ipm_right() const;
  void set_ipm_right(float value);
  private:
  float _internal_ipm_right() const;
  void _internal_set_ipm_right(float value);
  public:

  // float ipm_top = 6;
  void clear_ipm_top();
  float ipm_top() const;
  void set_ipm_top(float value);
  private:
  float _internal_ipm_top() const;
  void _internal_set_ipm_top(float value);
  public:

  // float ipm_bottom = 7;
  void clear_ipm_bottom();
  float ipm_bottom() const;
  void set_ipm_bottom(float value);
  private:
  float _internal_ipm_bottom() const;
  void _internal_set_ipm_bottom(float value);
  public:

  // float ipm_interpolation = 8;
  void clear_ipm_interpolation();
  float ipm_interpolation() const;
  void set_ipm_interpolation(float value);
  private:
  float _internal_ipm_interpolation() const;
  void _internal_set_ipm_interpolation(float value);
  public:

  // float ipm_vp_portion = 9;
  void clear_ipm_vp_portion();
  float ipm_vp_portion() const;
  void set_ipm_vp_portion(float value);
  private:
  float _internal_ipm_vp_portion() const;
  void _internal_set_ipm_vp_portion(float value);
  public:

  // float focal_length_x = 10;
  void clear_focal_length_x();
  float focal_length_x() const;
  void set_focal_length_x(float value);
  private:
  float _internal_focal_length_x() const;
  void _internal_set_focal_length_x(float value);
  public:

  // float focal_length_y = 11;
  void clear_focal_length_y();
  float focal_length_y() const;
  void set_focal_length_y(float value);
  private:
  float _internal_focal_length_y() const;
  void _internal_set_focal_length_y(float value);
  public:

  // float optical_center_x = 12;
  void clear_optical_center_x();
  float optical_center_x() const;
  void set_optical_center_x(float value);
  private:
  float _internal_optical_center_x() const;
  void _internal_set_optical_center_x(float value);
  public:

  // float optical_center_y = 13;
  void clear_optical_center_y();
  float optical_center_y() const;
  void set_optical_center_y(float value);
  private:
  float _internal_optical_center_y() const;
  void _internal_set_optical_center_y(float value);
  public:

  // float camera_height = 14;
  void clear_camera_height();
  float camera_height() const;
  void set_camera_height(float value);
  private:
  float _internal_camera_height() const;
  void _internal_set_camera_height(float value);
  public:

  // float pitch = 15;
  void clear_pitch();
  float pitch() const;
  void set_pitch(float value);
  private:
  float _internal_pitch() const;
  void _internal_set_pitch(float value);
  public:

  // float yaw = 16;
  void clear_yaw();
  float yaw() const;
  void set_yaw(float value);
  private:
  float _internal_yaw() const;
  void _internal_set_yaw(float value);
  public:

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.RoadlineParam)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string> layer_name_;
    int32_t ratio_;
    float ipm_width_;
    float ipm_height_;
    float ipm_left_;
    float ipm_right_;
    float ipm_top_;
    float ipm_bottom_;
    float ipm_interpolation_;
    float ipm_vp_portion_;
    float focal_length_x_;
    float focal_length_y_;
    float optical_center_x_;
    float optical_center_y_;
    float camera_height_;
    float pitch_;
    float yaw_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class RcanParam final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.RcanParam) */ {
 public:
  inline RcanParam() : RcanParam(nullptr) {}
  ~RcanParam() override;
  explicit PROTOBUF_CONSTEXPR RcanParam(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  RcanParam(const RcanParam& from);
  RcanParam(RcanParam&& from) noexcept
    : RcanParam() {
    *this = ::std::move(from);
  }

  inline RcanParam& operator=(const RcanParam& from) {
    CopyFrom(from);
    return *this;
  }
  inline RcanParam& operator=(RcanParam&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const RcanParam& default_instance() {
    return *internal_default_instance();
  }
  static inline const RcanParam* internal_default_instance() {
    return reinterpret_cast<const RcanParam*>(
               &_RcanParam_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    19;

  friend void swap(RcanParam& a, RcanParam& b) {
    a.Swap(&b);
  }
  inline void Swap(RcanParam* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(RcanParam* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  RcanParam* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<RcanParam>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const RcanParam& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom( const RcanParam& from) {
    RcanParam::MergeImpl(*this, from);
  }
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned);
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(RcanParam* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.RcanParam";
  }
  protected:
  explicit RcanParam(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kScaleFieldNumber = 1,
  };
  // float scale = 1;
  void clear_scale();
  float scale() const;
  void set_scale(float value);
  private:
  float _internal_scale() const;
  void _internal_set_scale(float value);
  public:

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.RcanParam)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    float scale_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class RoadlineDeephiParam final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.RoadlineDeephiParam) */ {
 public:
  inline RoadlineDeephiParam() : RoadlineDeephiParam(nullptr) {}
  ~RoadlineDeephiParam() override;
  explicit PROTOBUF_CONSTEXPR RoadlineDeephiParam(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  RoadlineDeephiParam(const RoadlineDeephiParam& from);
  RoadlineDeephiParam(RoadlineDeephiParam&& from) noexcept
    : RoadlineDeephiParam() {
    *this = ::std::move(from);
  }

  inline RoadlineDeephiParam& operator=(const RoadlineDeephiParam& from) {
    CopyFrom(from);
    return *this;
  }
  inline RoadlineDeephiParam& operator=(RoadlineDeephiParam&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const RoadlineDeephiParam& default_instance() {
    return *internal_default_instance();
  }
  static inline const RoadlineDeephiParam* internal_default_instance() {
    return reinterpret_cast<const RoadlineDeephiParam*>(
               &_RoadlineDeephiParam_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    20;

  friend void swap(RoadlineDeephiParam& a, RoadlineDeephiParam& b) {
    a.Swap(&b);
  }
  inline void Swap(RoadlineDeephiParam* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(RoadlineDeephiParam* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  RoadlineDeephiParam* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<RoadlineDeephiParam>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const RoadlineDeephiParam& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom( const RoadlineDeephiParam& from) {
    RoadlineDeephiParam::MergeImpl(*this, from);
  }
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned);
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(RoadlineDeephiParam* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.RoadlineDeephiParam";
  }
  protected:
  explicit RoadlineDeephiParam(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kResizeWFieldNumber = 1,
    kResizeHFieldNumber = 2,
    kCropXFieldNumber = 3,
    kCropYFieldNumber = 4,
    kCropWFieldNumber = 5,
    kCropHFieldNumber = 6,
    kAreaThresholdFieldNumber = 7,
    kEpowFieldNumber = 8,
  };
  // int32 resize_w = 1;
  void clear_resize_w();
  int32_t resize_w() const;
  void set_resize_w(int32_t value);
  private:
  int32_t _internal_resize_w() const;
  void _internal_set_resize_w(int32_t value);
  public:

  // int32 resize_h = 2;
  void clear_resize_h();
  int32_t resize_h() const;
  void set_resize_h(int32_t value);
  private:
  int32_t _internal_resize_h() const;
  void _internal_set_resize_h(int32_t value);
  public:

  // int32 crop_x = 3;
  void clear_crop_x();
  int32_t crop_x() const;
  void set_crop_x(int32_t value);
  private:
  int32_t _internal_crop_x() const;
  void _internal_set_crop_x(int32_t value);
  public:

  // int32 crop_y = 4;
  void clear_crop_y();
  int32_t crop_y() const;
  void set_crop_y(int32_t value);
  private:
  int32_t _internal_crop_y() const;
  void _internal_set_crop_y(int32_t value);
  public:

  // int32 crop_w = 5;
  void clear_crop_w();
  int32_t crop_w() const;
  void set_crop_w(int32_t value);
  private:
  int32_t _internal_crop_w() const;
  void _internal_set_crop_w(int32_t value);
  public:

  // int32 crop_h = 6;
  void clear_crop_h();
  int32_t crop_h() const;
  void set_crop_h(int32_t value);
  private:
  int32_t _internal_crop_h() const;
  void _internal_set_crop_h(int32_t value);
  public:

  // int32 area_threshold = 7;
  void clear_area_threshold();
  int32_t area_threshold() const;
  void set_area_threshold(int32_t value);
  private:
  int32_t _internal_area_threshold() const;
  void _internal_set_area_threshold(int32_t value);
  public:

  // int32 epow = 8;
  void clear_epow();
  int32_t epow() const;
  void set_epow(int32_t value);
  private:
  int32_t _internal_epow() const;
  void _internal_set_epow(int32_t value);
  public:

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.RoadlineDeephiParam)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    int32_t resize_w_;
    int32_t resize_h_;
    int32_t crop_x_;
    int32_t crop_y_;
    int32_t crop_w_;
    int32_t crop_h_;
    int32_t area_threshold_;
    int32_t epow_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class SegmentationParam final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.SegmentationParam) */ {
 public:
  inline SegmentationParam() : SegmentationParam(nullptr) {}
  ~SegmentationParam() override;
  explicit PROTOBUF_CONSTEXPR SegmentationParam(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  SegmentationParam(const SegmentationParam& from);
  SegmentationParam(SegmentationParam&& from) noexcept
    : SegmentationParam() {
    *this = ::std::move(from);
  }

  inline SegmentationParam& operator=(const SegmentationParam& from) {
    CopyFrom(from);
    return *this;
  }
  inline SegmentationParam& operator=(SegmentationParam&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const SegmentationParam& default_instance() {
    return *internal_default_instance();
  }
  static inline const SegmentationParam* internal_default_instance() {
    return reinterpret_cast<const SegmentationParam*>(
               &_SegmentationParam_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    21;

  friend void swap(SegmentationParam& a, SegmentationParam& b) {
    a.Swap(&b);
  }
  inline void Swap(SegmentationParam* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(SegmentationParam* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  SegmentationParam* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<SegmentationParam>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const SegmentationParam& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom( const SegmentationParam& from) {
    SegmentationParam::MergeImpl(*this, from);
  }
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned);
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(SegmentationParam* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.SegmentationParam";
  }
  protected:
  explicit SegmentationParam(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kColor1FieldNumber = 1,
    kColor2FieldNumber = 2,
    kColor3FieldNumber = 3,
    kOutputTensorNameFieldNumber = 5,
    kSpecifyOutputLayerFieldNumber = 4,
  };
  // string color1 = 1;
  void clear_color1();
  const std::string& color1() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_color1(ArgT0&& arg0, ArgT... args);
  std::string* mutable_color1();
  PROTOBUF_NODISCARD std::string* release_color1();
  void set_allocated_color1(std::string* color1);
  private:
  const std::string& _internal_color1() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_color1(const std::string& value);
  std::string* _internal_mutable_color1();
  public:

  // string color2 = 2;
  void clear_color2();
  const std::string& color2() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_color2(ArgT0&& arg0, ArgT... args);
  std::string* mutable_color2();
  PROTOBUF_NODISCARD std::string* release_color2();
  void set_allocated_color2(std::string* color2);
  private:
  const std::string& _internal_color2() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_color2(const std::string& value);
  std::string* _internal_mutable_color2();
  public:

  // string color3 = 3;
  void clear_color3();
  const std::string& color3() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_color3(ArgT0&& arg0, ArgT... args);
  std::string* mutable_color3();
  PROTOBUF_NODISCARD std::string* release_color3();
  void set_allocated_color3(std::string* color3);
  private:
  const std::string& _internal_color3() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_color3(const std::string& value);
  std::string* _internal_mutable_color3();
  public:

  // string output_tensor_name = 5;
  void clear_output_tensor_name();
  const std::string& output_tensor_name() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_output_tensor_name(ArgT0&& arg0, ArgT... args);
  std::string* mutable_output_tensor_name();
  PROTOBUF_NODISCARD std::string* release_output_tensor_name();
  void set_allocated_output_tensor_name(std::string* output_tensor_name);
  private:
  const std::string& _internal_output_tensor_name() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_output_tensor_name(const std::string& value);
  std::string* _internal_mutable_output_tensor_name();
  public:

  // bool specify_output_layer = 4;
  void clear_specify_output_layer();
  bool specify_output_layer() const;
  void set_specify_output_layer(bool value);
  private:
  bool _internal_specify_output_layer() const;
  void _internal_set_specify_output_layer(bool value);
  public:

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.SegmentationParam)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr color1_;
    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr color2_;
    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr color3_;
    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr output_tensor_name_;
    bool specify_output_layer_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class PlatenumParam final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.PlatenumParam) */ {
 public:
  inline PlatenumParam() : PlatenumParam(nullptr) {}
  ~PlatenumParam() override;
  explicit PROTOBUF_CONSTEXPR PlatenumParam(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  PlatenumParam(const PlatenumParam& from);
  PlatenumParam(PlatenumParam&& from) noexcept
    : PlatenumParam() {
    *this = ::std::move(from);
  }

  inline PlatenumParam& operator=(const PlatenumParam& from) {
    CopyFrom(from);
    return *this;
  }
  inline PlatenumParam& operator=(PlatenumParam&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const PlatenumParam& default_instance() {
    return *internal_default_instance();
  }
  static inline const PlatenumParam* internal_default_instance() {
    return reinterpret_cast<const PlatenumParam*>(
               &_PlatenumParam_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    22;

  friend void swap(PlatenumParam& a, PlatenumParam& b) {
    a.Swap(&b);
  }
  inline void Swap(PlatenumParam* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(PlatenumParam* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  PlatenumParam* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<PlatenumParam>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const PlatenumParam& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom( const PlatenumParam& from) {
    PlatenumParam::MergeImpl(*this, from);
  }
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned);
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(PlatenumParam* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.PlatenumParam";
  }
  protected:
  explicit PlatenumParam(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kFirstFieldNumber = 1,
    kSecondFieldNumber = 2,
    kOutputTensorNameFieldNumber = 3,
  };
  // repeated int32 first = 1;
  int first_size() const;
  private:
  int _internal_first_size() const;
  public:
  void clear_first();
  private:
  int32_t _internal_first(int index) const;
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >&
      _internal_first() const;
  void _internal_add_first(int32_t value);
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >*
      _internal_mutable_first();
  public:
  int32_t first(int index) const;
  void set_first(int index, int32_t value);
  void add_first(int32_t value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >&
      first() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >*
      mutable_first();

  // repeated int32 second = 2;
  int second_size() const;
  private:
  int _internal_second_size() const;
  public:
  void clear_second();
  private:
  int32_t _internal_second(int index) const;
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >&
      _internal_second() const;
  void _internal_add_second(int32_t value);
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >*
      _internal_mutable_second();
  public:
  int32_t second(int index) const;
  void set_second(int index, int32_t value);
  void add_second(int32_t value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >&
      second() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >*
      mutable_second();

  // repeated string output_tensor_name = 3;
  int output_tensor_name_size() const;
  private:
  int _internal_output_tensor_name_size() const;
  public:
  void clear_output_tensor_name();
  const std::string& output_tensor_name(int index) const;
  std::string* mutable_output_tensor_name(int index);
  void set_output_tensor_name(int index, const std::string& value);
  void set_output_tensor_name(int index, std::string&& value);
  void set_output_tensor_name(int index, const char* value);
  void set_output_tensor_name(int index, const char* value, size_t size);
  std::string* add_output_tensor_name();
  void add_output_tensor_name(const std::string& value);
  void add_output_tensor_name(std::string&& value);
  void add_output_tensor_name(const char* value);
  void add_output_tensor_name(const char* value, size_t size);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>& output_tensor_name() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>* mutable_output_tensor_name();
  private:
  const std::string& _internal_output_tensor_name(int index) const;
  std::string* _internal_add_output_tensor_name();
  public:

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.PlatenumParam)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t > first_;
    mutable std::atomic<int> _first_cached_byte_size_;
    ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t > second_;
    mutable std::atomic<int> _second_cached_byte_size_;
    ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string> output_tensor_name_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class SoloParam final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.SoloParam) */ {
 public:
  inline SoloParam() : SoloParam(nullptr) {}
  ~SoloParam() override;
  explicit PROTOBUF_CONSTEXPR SoloParam(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  SoloParam(const SoloParam& from);
  SoloParam(SoloParam&& from) noexcept
    : SoloParam() {
    *this = ::std::move(from);
  }

  inline SoloParam& operator=(const SoloParam& from) {
    CopyFrom(from);
    return *this;
  }
  inline SoloParam& operator=(SoloParam&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const SoloParam& default_instance() {
    return *internal_default_instance();
  }
  static inline const SoloParam* internal_default_instance() {
    return reinterpret_cast<const SoloParam*>(
               &_SoloParam_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    23;

  friend void swap(SoloParam& a, SoloParam& b) {
    a.Swap(&b);
  }
  inline void Swap(SoloParam* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(SoloParam* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  SoloParam* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<SoloParam>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const SoloParam& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom( const SoloParam& from) {
    SoloParam::MergeImpl(*this, from);
  }
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned);
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(SoloParam* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.SoloParam";
  }
  protected:
  explicit SoloParam(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kFirstFieldNumber = 1,
    kSecondFieldNumber = 2,
    kInputTensorNameFieldNumber = 3,
    kOutputTensorNameFieldNumber = 4,
    kScoreThrFieldNumber = 5,
    kMaskThrFieldNumber = 6,
    kNmsPreFieldNumber = 7,
    kUpdateThrFieldNumber = 8,
    kMaxPerImgFieldNumber = 9,
  };
  // repeated int32 first = 1;
  int first_size() const;
  private:
  int _internal_first_size() const;
  public:
  void clear_first();
  private:
  int32_t _internal_first(int index) const;
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >&
      _internal_first() const;
  void _internal_add_first(int32_t value);
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >*
      _internal_mutable_first();
  public:
  int32_t first(int index) const;
  void set_first(int index, int32_t value);
  void add_first(int32_t value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >&
      first() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >*
      mutable_first();

  // repeated int32 second = 2;
  int second_size() const;
  private:
  int _internal_second_size() const;
  public:
  void clear_second();
  private:
  int32_t _internal_second(int index) const;
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >&
      _internal_second() const;
  void _internal_add_second(int32_t value);
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >*
      _internal_mutable_second();
  public:
  int32_t second(int index) const;
  void set_second(int index, int32_t value);
  void add_second(int32_t value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >&
      second() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >*
      mutable_second();

  // repeated string input_tensor_name = 3;
  int input_tensor_name_size() const;
  private:
  int _internal_input_tensor_name_size() const;
  public:
  void clear_input_tensor_name();
  const std::string& input_tensor_name(int index) const;
  std::string* mutable_input_tensor_name(int index);
  void set_input_tensor_name(int index, const std::string& value);
  void set_input_tensor_name(int index, std::string&& value);
  void set_input_tensor_name(int index, const char* value);
  void set_input_tensor_name(int index, const char* value, size_t size);
  std::string* add_input_tensor_name();
  void add_input_tensor_name(const std::string& value);
  void add_input_tensor_name(std::string&& value);
  void add_input_tensor_name(const char* value);
  void add_input_tensor_name(const char* value, size_t size);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>& input_tensor_name() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>* mutable_input_tensor_name();
  private:
  const std::string& _internal_input_tensor_name(int index) const;
  std::string* _internal_add_input_tensor_name();
  public:

  // repeated string output_tensor_name = 4;
  int output_tensor_name_size() const;
  private:
  int _internal_output_tensor_name_size() const;
  public:
  void clear_output_tensor_name();
  const std::string& output_tensor_name(int index) const;
  std::string* mutable_output_tensor_name(int index);
  void set_output_tensor_name(int index, const std::string& value);
  void set_output_tensor_name(int index, std::string&& value);
  void set_output_tensor_name(int index, const char* value);
  void set_output_tensor_name(int index, const char* value, size_t size);
  std::string* add_output_tensor_name();
  void add_output_tensor_name(const std::string& value);
  void add_output_tensor_name(std::string&& value);
  void add_output_tensor_name(const char* value);
  void add_output_tensor_name(const char* value, size_t size);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>& output_tensor_name() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>* mutable_output_tensor_name();
  private:
  const std::string& _internal_output_tensor_name(int index) const;
  std::string* _internal_add_output_tensor_name();
  public:

  // float score_thr = 5;
  void clear_score_thr();
  float score_thr() const;
  void set_score_thr(float value);
  private:
  float _internal_score_thr() const;
  void _internal_set_score_thr(float value);
  public:

  // float mask_thr = 6;
  void clear_mask_thr();
  float mask_thr() const;
  void set_mask_thr(float value);
  private:
  float _internal_mask_thr() const;
  void _internal_set_mask_thr(float value);
  public:

  // uint32 nms_pre = 7;
  void clear_nms_pre();
  uint32_t nms_pre() const;
  void set_nms_pre(uint32_t value);
  private:
  uint32_t _internal_nms_pre() const;
  void _internal_set_nms_pre(uint32_t value);
  public:

  // float update_thr = 8;
  void clear_update_thr();
  float update_thr() const;
  void set_update_thr(float value);
  private:
  float _internal_update_thr() const;
  void _internal_set_update_thr(float value);
  public:

  // uint32 max_per_img = 9;
  void clear_max_per_img();
  uint32_t max_per_img() const;
  void set_max_per_img(uint32_t value);
  private:
  uint32_t _internal_max_per_img() const;
  void _internal_set_max_per_img(uint32_t value);
  public:

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.SoloParam)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t > first_;
    mutable std::atomic<int> _first_cached_byte_size_;
    ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t > second_;
    mutable std::atomic<int> _second_cached_byte_size_;
    ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string> input_tensor_name_;
    ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string> output_tensor_name_;
    float score_thr_;
    float mask_thr_;
    uint32_t nms_pre_;
    float update_thr_;
    uint32_t max_per_img_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class LaneParam final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.LaneParam) */ {
 public:
  inline LaneParam() : LaneParam(nullptr) {}
  ~LaneParam() override;
  explicit PROTOBUF_CONSTEXPR LaneParam(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  LaneParam(const LaneParam& from);
  LaneParam(LaneParam&& from) noexcept
    : LaneParam() {
    *this = ::std::move(from);
  }

  inline LaneParam& operator=(const LaneParam& from) {
    CopyFrom(from);
    return *this;
  }
  inline LaneParam& operator=(LaneParam&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const LaneParam& default_instance() {
    return *internal_default_instance();
  }
  static inline const LaneParam* internal_default_instance() {
    return reinterpret_cast<const LaneParam*>(
               &_LaneParam_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    24;

  friend void swap(LaneParam& a, LaneParam& b) {
    a.Swap(&b);
  }
  inline void Swap(LaneParam* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(LaneParam* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  LaneParam* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<LaneParam>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const LaneParam& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom( const LaneParam& from) {
    LaneParam::MergeImpl(*this, from);
  }
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned);
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(LaneParam* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.LaneParam";
  }
  protected:
  explicit LaneParam(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kRoiXFieldNumber = 1,
    kRoiYFieldNumber = 2,
    kExpectHeightFieldNumber = 3,
  };
  // int32 roi_x = 1;
  void clear_roi_x();
  int32_t roi_x() const;
  void set_roi_x(int32_t value);
  private:
  int32_t _internal_roi_x() const;
  void _internal_set_roi_x(int32_t value);
  public:

  // int32 roi_y = 2;
  void clear_roi_y();
  int32_t roi_y() const;
  void set_roi_y(int32_t value);
  private:
  int32_t _internal_roi_y() const;
  void _internal_set_roi_y(int32_t value);
  public:

  // int32 expect_height = 3;
  void clear_expect_height();
  int32_t expect_height() const;
  void set_expect_height(int32_t value);
  private:
  int32_t _internal_expect_height() const;
  void _internal_set_expect_height(int32_t value);
  public:

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.LaneParam)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    int32_t roi_x_;
    int32_t roi_y_;
    int32_t expect_height_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class BlinkerParam final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.BlinkerParam) */ {
 public:
  inline BlinkerParam() : BlinkerParam(nullptr) {}
  ~BlinkerParam() override;
  explicit PROTOBUF_CONSTEXPR BlinkerParam(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  BlinkerParam(const BlinkerParam& from);
  BlinkerParam(BlinkerParam&& from) noexcept
    : BlinkerParam() {
    *this = ::std::move(from);
  }

  inline BlinkerParam& operator=(const BlinkerParam& from) {
    CopyFrom(from);
    return *this;
  }
  inline BlinkerParam& operator=(BlinkerParam&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const BlinkerParam& default_instance() {
    return *internal_default_instance();
  }
  static inline const BlinkerParam* internal_default_instance() {
    return reinterpret_cast<const BlinkerParam*>(
               &_BlinkerParam_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    25;

  friend void swap(BlinkerParam& a, BlinkerParam& b) {
    a.Swap(&b);
  }
  inline void Swap(BlinkerParam* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(BlinkerParam* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  BlinkerParam* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<BlinkerParam>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const BlinkerParam& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom( const BlinkerParam& from) {
    BlinkerParam::MergeImpl(*this, from);
  }
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned);
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(BlinkerParam* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.BlinkerParam";
  }
  protected:
  explicit BlinkerParam(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kPriorBoxParamFieldNumber = 1,
    kConfThresholdFieldNumber = 4,
    kNumClassesFieldNumber = 2,
    kNmsThresholdFieldNumber = 3,
    kKeepTopKFieldNumber = 5,
    kTopKFieldNumber = 6,
  };
  // repeated .vitis.ai.proto.PriorBoxParam prior_box_param = 1;
  int prior_box_param_size() const;
  private:
  int _internal_prior_box_param_size() const;
  public:
  void clear_prior_box_param();
  ::vitis::ai::proto::PriorBoxParam* mutable_prior_box_param(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::PriorBoxParam >*
      mutable_prior_box_param();
  private:
  const ::vitis::ai::proto::PriorBoxParam& _internal_prior_box_param(int index) const;
  ::vitis::ai::proto::PriorBoxParam* _internal_add_prior_box_param();
  public:
  const ::vitis::ai::proto::PriorBoxParam& prior_box_param(int index) const;
  ::vitis::ai::proto::PriorBoxParam* add_prior_box_param();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::PriorBoxParam >&
      prior_box_param() const;

  // repeated float conf_threshold = 4;
  int conf_threshold_size() const;
  private:
  int _internal_conf_threshold_size() const;
  public:
  void clear_conf_threshold();
  private:
  float _internal_conf_threshold(int index) const;
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
      _internal_conf_threshold() const;
  void _internal_add_conf_threshold(float value);
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
      _internal_mutable_conf_threshold();
  public:
  float conf_threshold(int index) const;
  void set_conf_threshold(int index, float value);
  void add_conf_threshold(float value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
      conf_threshold() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
      mutable_conf_threshold();

  // int32 num_classes = 2;
  void clear_num_classes();
  int32_t num_classes() const;
  void set_num_classes(int32_t value);
  private:
  int32_t _internal_num_classes() const;
  void _internal_set_num_classes(int32_t value);
  public:

  // float nms_threshold = 3;
  void clear_nms_threshold();
  float nms_threshold() const;
  void set_nms_threshold(float value);
  private:
  float _internal_nms_threshold() const;
  void _internal_set_nms_threshold(float value);
  public:

  // int32 keep_top_k = 5;
  void clear_keep_top_k();
  int32_t keep_top_k() const;
  void set_keep_top_k(int32_t value);
  private:
  int32_t _internal_keep_top_k() const;
  void _internal_set_keep_top_k(int32_t value);
  public:

  // int32 top_k = 6;
  void clear_top_k();
  int32_t top_k() const;
  void set_top_k(int32_t value);
  private:
  int32_t _internal_top_k() const;
  void _internal_set_top_k(int32_t value);
  public:

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.BlinkerParam)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::PriorBoxParam > prior_box_param_;
    ::PROTOBUF_NAMESPACE_ID::RepeatedField< float > conf_threshold_;
    int32_t num_classes_;
    float nms_threshold_;
    int32_t keep_top_k_;
    int32_t top_k_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class SegdetParam final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.SegdetParam) */ {
 public:
  inline SegdetParam() : SegdetParam(nullptr) {}
  ~SegdetParam() override;
  explicit PROTOBUF_CONSTEXPR SegdetParam(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  SegdetParam(const SegdetParam& from);
  SegdetParam(SegdetParam&& from) noexcept
    : SegdetParam() {
    *this = ::std::move(from);
  }

  inline SegdetParam& operator=(const SegdetParam& from) {
    CopyFrom(from);
    return *this;
  }
  inline SegdetParam& operator=(SegdetParam&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const SegdetParam& default_instance() {
    return *internal_default_instance();
  }
  static inline const SegdetParam* internal_default_instance() {
    return reinterpret_cast<const SegdetParam*>(
               &_SegdetParam_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    26;

  friend void swap(SegdetParam& a, SegdetParam& b) {
    a.Swap(&b);
  }
  inline void Swap(SegdetParam* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(SegdetParam* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  SegdetParam* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<SegdetParam>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const SegdetParam& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom( const SegdetParam& from) {
    SegdetParam::MergeImpl(*this, from);
  }
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned);
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(SegdetParam* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.SegdetParam";
  }
  protected:
  explicit SegdetParam(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kPriorBoxParamFieldNumber = 1,
    kConfThresholdFieldNumber = 4,
    kNumClassesFieldNumber = 2,
    kNmsThresholdFieldNumber = 3,
    kKeepTopKFieldNumber = 5,
    kTopKFieldNumber = 6,
  };
  // repeated .vitis.ai.proto.PriorBoxParam prior_box_param = 1;
  int prior_box_param_size() const;
  private:
  int _internal_prior_box_param_size() const;
  public:
  void clear_prior_box_param();
  ::vitis::ai::proto::PriorBoxParam* mutable_prior_box_param(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::PriorBoxParam >*
      mutable_prior_box_param();
  private:
  const ::vitis::ai::proto::PriorBoxParam& _internal_prior_box_param(int index) const;
  ::vitis::ai::proto::PriorBoxParam* _internal_add_prior_box_param();
  public:
  const ::vitis::ai::proto::PriorBoxParam& prior_box_param(int index) const;
  ::vitis::ai::proto::PriorBoxParam* add_prior_box_param();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::PriorBoxParam >&
      prior_box_param() const;

  // repeated float conf_threshold = 4;
  int conf_threshold_size() const;
  private:
  int _internal_conf_threshold_size() const;
  public:
  void clear_conf_threshold();
  private:
  float _internal_conf_threshold(int index) const;
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
      _internal_conf_threshold() const;
  void _internal_add_conf_threshold(float value);
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
      _internal_mutable_conf_threshold();
  public:
  float conf_threshold(int index) const;
  void set_conf_threshold(int index, float value);
  void add_conf_threshold(float value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
      conf_threshold() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
      mutable_conf_threshold();

  // int32 num_classes = 2;
  void clear_num_classes();
  int32_t num_classes() const;
  void set_num_classes(int32_t value);
  private:
  int32_t _internal_num_classes() const;
  void _internal_set_num_classes(int32_t value);
  public:

  // float nms_threshold = 3;
  void clear_nms_threshold();
  float nms_threshold() const;
  void set_nms_threshold(float value);
  private:
  float _internal_nms_threshold() const;
  void _internal_set_nms_threshold(float value);
  public:

  // int32 keep_top_k = 5;
  void clear_keep_top_k();
  int32_t keep_top_k() const;
  void set_keep_top_k(int32_t value);
  private:
  int32_t _internal_keep_top_k() const;
  void _internal_set_keep_top_k(int32_t value);
  public:

  // int32 top_k = 6;
  void clear_top_k();
  int32_t top_k() const;
  void set_top_k(int32_t value);
  private:
  int32_t _internal_top_k() const;
  void _internal_set_top_k(int32_t value);
  public:

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.SegdetParam)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::PriorBoxParam > prior_box_param_;
    ::PROTOBUF_NAMESPACE_ID::RepeatedField< float > conf_threshold_;
    int32_t num_classes_;
    float nms_threshold_;
    int32_t keep_top_k_;
    int32_t top_k_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class FaceQuality5ptParam final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.FaceQuality5ptParam) */ {
 public:
  inline FaceQuality5ptParam() : FaceQuality5ptParam(nullptr) {}
  ~FaceQuality5ptParam() override;
  explicit PROTOBUF_CONSTEXPR FaceQuality5ptParam(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  FaceQuality5ptParam(const FaceQuality5ptParam& from);
  FaceQuality5ptParam(FaceQuality5ptParam&& from) noexcept
    : FaceQuality5ptParam() {
    *this = ::std::move(from);
  }

  inline FaceQuality5ptParam& operator=(const FaceQuality5ptParam& from) {
    CopyFrom(from);
    return *this;
  }
  inline FaceQuality5ptParam& operator=(FaceQuality5ptParam&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const FaceQuality5ptParam& default_instance() {
    return *internal_default_instance();
  }
  static inline const FaceQuality5ptParam* internal_default_instance() {
    return reinterpret_cast<const FaceQuality5ptParam*>(
               &_FaceQuality5ptParam_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    27;

  friend void swap(FaceQuality5ptParam& a, FaceQuality5ptParam& b) {
    a.Swap(&b);
  }
  inline void Swap(FaceQuality5ptParam* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(FaceQuality5ptParam* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  FaceQuality5ptParam* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<FaceQuality5ptParam>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const FaceQuality5ptParam& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom( const FaceQuality5ptParam& from) {
    FaceQuality5ptParam::MergeImpl(*this, from);
  }
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned);
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(FaceQuality5ptParam* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.FaceQuality5ptParam";
  }
  protected:
  explicit FaceQuality5ptParam(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kQualityLayerNameFieldNumber = 3,
    kPointLayerNameFieldNumber = 4,
    kUseDayNightModeFieldNumber = 1,
    kOriginalQualityFieldNumber = 2,
  };
  // string quality_layer_name = 3;
  void clear_quality_layer_name();
  const std::string& quality_layer_name() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_quality_layer_name(ArgT0&& arg0, ArgT... args);
  std::string* mutable_quality_layer_name();
  PROTOBUF_NODISCARD std::string* release_quality_layer_name();
  void set_allocated_quality_layer_name(std::string* quality_layer_name);
  private:
  const std::string& _internal_quality_layer_name() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_quality_layer_name(const std::string& value);
  std::string* _internal_mutable_quality_layer_name();
  public:

  // string point_layer_name = 4;
  void clear_point_layer_name();
  const std::string& point_layer_name() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_point_layer_name(ArgT0&& arg0, ArgT... args);
  std::string* mutable_point_layer_name();
  PROTOBUF_NODISCARD std::string* release_point_layer_name();
  void set_allocated_point_layer_name(std::string* point_layer_name);
  private:
  const std::string& _internal_point_layer_name() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_point_layer_name(const std::string& value);
  std::string* _internal_mutable_point_layer_name();
  public:

  // bool use_day_night_mode = 1;
  void clear_use_day_night_mode();
  bool use_day_night_mode() const;
  void set_use_day_night_mode(bool value);
  private:
  bool _internal_use_day_night_mode() const;
  void _internal_set_use_day_night_mode(bool value);
  public:

  // bool original_quality = 2;
  void clear_original_quality();
  bool original_quality() const;
  void set_original_quality(bool value);
  private:
  bool _internal_original_quality() const;
  void _internal_set_original_quality(bool value);
  public:

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.FaceQuality5ptParam)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr quality_layer_name_;
    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr point_layer_name_;
    bool use_day_night_mode_;
    bool original_quality_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class RetinaFaceParam_OutputAnchorInfo final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.RetinaFaceParam.OutputAnchorInfo) */ {
 public:
  inline RetinaFaceParam_OutputAnchorInfo() : RetinaFaceParam_OutputAnchorInfo(nullptr) {}
  ~RetinaFaceParam_OutputAnchorInfo() override;
  explicit PROTOBUF_CONSTEXPR RetinaFaceParam_OutputAnchorInfo(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  RetinaFaceParam_OutputAnchorInfo(const RetinaFaceParam_OutputAnchorInfo& from);
  RetinaFaceParam_OutputAnchorInfo(RetinaFaceParam_OutputAnchorInfo&& from) noexcept
    : RetinaFaceParam_OutputAnchorInfo() {
    *this = ::std::move(from);
  }

  inline RetinaFaceParam_OutputAnchorInfo& operator=(const RetinaFaceParam_OutputAnchorInfo& from) {
    CopyFrom(from);
    return *this;
  }
  inline RetinaFaceParam_OutputAnchorInfo& operator=(RetinaFaceParam_OutputAnchorInfo&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const RetinaFaceParam_OutputAnchorInfo& default_instance() {
    return *internal_default_instance();
  }
  static inline const RetinaFaceParam_OutputAnchorInfo* internal_default_instance() {
    return reinterpret_cast<const RetinaFaceParam_OutputAnchorInfo*>(
               &_RetinaFaceParam_OutputAnchorInfo_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    28;

  friend void swap(RetinaFaceParam_OutputAnchorInfo& a, RetinaFaceParam_OutputAnchorInfo& b) {
    a.Swap(&b);
  }
  inline void Swap(RetinaFaceParam_OutputAnchorInfo* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(RetinaFaceParam_OutputAnchorInfo* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  RetinaFaceParam_OutputAnchorInfo* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<RetinaFaceParam_OutputAnchorInfo>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const RetinaFaceParam_OutputAnchorInfo& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom( const RetinaFaceParam_OutputAnchorInfo& from) {
    RetinaFaceParam_OutputAnchorInfo::MergeImpl(*this, from);
  }
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned);
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(RetinaFaceParam_OutputAnchorInfo* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.RetinaFaceParam.OutputAnchorInfo";
  }
  protected:
  explicit RetinaFaceParam_OutputAnchorInfo(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kTypeFieldNumber = 1,
    kIndexFieldNumber = 2,
  };
  // .vitis.ai.proto.RetinaFaceParam.AnchorType type = 1;
  void clear_type();
  ::vitis::ai::proto::RetinaFaceParam_AnchorType type() const;
  void set_type(::vitis::ai::proto::RetinaFaceParam_AnchorType value);
  private:
  ::vitis::ai::proto::RetinaFaceParam_AnchorType _internal_type() const;
  void _internal_set_type(::vitis::ai::proto::RetinaFaceParam_AnchorType value);
  public:

  // int32 index = 2;
  void clear_index();
  int32_t index() const;
  void set_index(int32_t value);
  private:
  int32_t _internal_index() const;
  void _internal_set_index(int32_t value);
  public:

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.RetinaFaceParam.OutputAnchorInfo)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    int type_;
    int32_t index_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class RetinaFaceParam_OutputInfo final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.RetinaFaceParam.OutputInfo) */ {
 public:
  inline RetinaFaceParam_OutputInfo() : RetinaFaceParam_OutputInfo(nullptr) {}
  ~RetinaFaceParam_OutputInfo() override;
  explicit PROTOBUF_CONSTEXPR RetinaFaceParam_OutputInfo(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  RetinaFaceParam_OutputInfo(const RetinaFaceParam_OutputInfo& from);
  RetinaFaceParam_OutputInfo(RetinaFaceParam_OutputInfo&& from) noexcept
    : RetinaFaceParam_OutputInfo() {
    *this = ::std::move(from);
  }

  inline RetinaFaceParam_OutputInfo& operator=(const RetinaFaceParam_OutputInfo& from) {
    CopyFrom(from);
    return *this;
  }
  inline RetinaFaceParam_OutputInfo& operator=(RetinaFaceParam_OutputInfo&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const RetinaFaceParam_OutputInfo& default_instance() {
    return *internal_default_instance();
  }
  static inline const RetinaFaceParam_OutputInfo* internal_default_instance() {
    return reinterpret_cast<const RetinaFaceParam_OutputInfo*>(
               &_RetinaFaceParam_OutputInfo_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    29;

  friend void swap(RetinaFaceParam_OutputInfo& a, RetinaFaceParam_OutputInfo& b) {
    a.Swap(&b);
  }
  inline void Swap(RetinaFaceParam_OutputInfo* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(RetinaFaceParam_OutputInfo* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  RetinaFaceParam_OutputInfo* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<RetinaFaceParam_OutputInfo>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const RetinaFaceParam_OutputInfo& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom( const RetinaFaceParam_OutputInfo& from) {
    RetinaFaceParam_OutputInfo::MergeImpl(*this, from);
  }
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned);
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(RetinaFaceParam_OutputInfo* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.RetinaFaceParam.OutputInfo";
  }
  protected:
  explicit RetinaFaceParam_OutputInfo(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kNameFieldNumber = 3,
    kOutputAnchorInfoFieldNumber = 4,
    kTypeFieldNumber = 1,
    kStrideFieldNumber = 2,
  };
  // string name = 3;
  void clear_name();
  const std::string& name() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_name(ArgT0&& arg0, ArgT... args);
  std::string* mutable_name();
  PROTOBUF_NODISCARD std::string* release_name();
  void set_allocated_name(std::string* name);
  private:
  const std::string& _internal_name() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_name(const std::string& value);
  std::string* _internal_mutable_name();
  public:

  // .vitis.ai.proto.RetinaFaceParam.OutputAnchorInfo output_anchor_info = 4;
  bool has_output_anchor_info() const;
  private:
  bool _internal_has_output_anchor_info() const;
  public:
  void clear_output_anchor_info();
  const ::vitis::ai::proto::RetinaFaceParam_OutputAnchorInfo& output_anchor_info() const;
  PROTOBUF_NODISCARD ::vitis::ai::proto::RetinaFaceParam_OutputAnchorInfo* release_output_anchor_info();
  ::vitis::ai::proto::RetinaFaceParam_OutputAnchorInfo* mutable_output_anchor_info();
  void set_allocated_output_anchor_info(::vitis::ai::proto::RetinaFaceParam_OutputAnchorInfo* output_anchor_info);
  private:
  const ::vitis::ai::proto::RetinaFaceParam_OutputAnchorInfo& _internal_output_anchor_info() const;
  ::vitis::ai::proto::RetinaFaceParam_OutputAnchorInfo* _internal_mutable_output_anchor_info();
  public:
  void unsafe_arena_set_allocated_output_anchor_info(
      ::vitis::ai::proto::RetinaFaceParam_OutputAnchorInfo* output_anchor_info);
  ::vitis::ai::proto::RetinaFaceParam_OutputAnchorInfo* unsafe_arena_release_output_anchor_info();

  // .vitis.ai.proto.RetinaFaceParam.OutputType type = 1;
  void clear_type();
  ::vitis::ai::proto::RetinaFaceParam_OutputType type() const;
  void set_type(::vitis::ai::proto::RetinaFaceParam_OutputType value);
  private:
  ::vitis::ai::proto::RetinaFaceParam_OutputType _internal_type() const;
  void _internal_set_type(::vitis::ai::proto::RetinaFaceParam_OutputType value);
  public:

  // int32 stride = 2;
  void clear_stride();
  int32_t stride() const;
  void set_stride(int32_t value);
  private:
  int32_t _internal_stride() const;
  void _internal_set_stride(int32_t value);
  public:

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.RetinaFaceParam.OutputInfo)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr name_;
    ::vitis::ai::proto::RetinaFaceParam_OutputAnchorInfo* output_anchor_info_;
    int type_;
    int32_t stride_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class RetinaFaceParam_AnchorParam final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.RetinaFaceParam.AnchorParam) */ {
 public:
  inline RetinaFaceParam_AnchorParam() : RetinaFaceParam_AnchorParam(nullptr) {}
  ~RetinaFaceParam_AnchorParam() override;
  explicit PROTOBUF_CONSTEXPR RetinaFaceParam_AnchorParam(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  RetinaFaceParam_AnchorParam(const RetinaFaceParam_AnchorParam& from);
  RetinaFaceParam_AnchorParam(RetinaFaceParam_AnchorParam&& from) noexcept
    : RetinaFaceParam_AnchorParam() {
    *this = ::std::move(from);
  }

  inline RetinaFaceParam_AnchorParam& operator=(const RetinaFaceParam_AnchorParam& from) {
    CopyFrom(from);
    return *this;
  }
  inline RetinaFaceParam_AnchorParam& operator=(RetinaFaceParam_AnchorParam&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const RetinaFaceParam_AnchorParam& default_instance() {
    return *internal_default_instance();
  }
  static inline const RetinaFaceParam_AnchorParam* internal_default_instance() {
    return reinterpret_cast<const RetinaFaceParam_AnchorParam*>(
               &_RetinaFaceParam_AnchorParam_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    30;

  friend void swap(RetinaFaceParam_AnchorParam& a, RetinaFaceParam_AnchorParam& b) {
    a.Swap(&b);
  }
  inline void Swap(RetinaFaceParam_AnchorParam* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(RetinaFaceParam_AnchorParam* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  RetinaFaceParam_AnchorParam* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<RetinaFaceParam_AnchorParam>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const RetinaFaceParam_AnchorParam& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom( const RetinaFaceParam_AnchorParam& from) {
    RetinaFaceParam_AnchorParam::MergeImpl(*this, from);
  }
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned);
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(RetinaFaceParam_AnchorParam* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.RetinaFaceParam.AnchorParam";
  }
  protected:
  explicit RetinaFaceParam_AnchorParam(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kRatiosFieldNumber = 3,
    kScalesFieldNumber = 4,
    kStrideFieldNumber = 1,
    kBaseSizeFieldNumber = 2,
  };
  // repeated float ratios = 3;
  int ratios_size() const;
  private:
  int _internal_ratios_size() const;
  public:
  void clear_ratios();
  private:
  float _internal_ratios(int index) const;
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
      _internal_ratios() const;
  void _internal_add_ratios(float value);
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
      _internal_mutable_ratios();
  public:
  float ratios(int index) const;
  void set_ratios(int index, float value);
  void add_ratios(float value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
      ratios() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
      mutable_ratios();

  // repeated int32 scales = 4;
  int scales_size() const;
  private:
  int _internal_scales_size() const;
  public:
  void clear_scales();
  private:
  int32_t _internal_scales(int index) const;
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >&
      _internal_scales() const;
  void _internal_add_scales(int32_t value);
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >*
      _internal_mutable_scales();
  public:
  int32_t scales(int index) const;
  void set_scales(int index, int32_t value);
  void add_scales(int32_t value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >&
      scales() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >*
      mutable_scales();

  // int32 stride = 1;
  void clear_stride();
  int32_t stride() const;
  void set_stride(int32_t value);
  private:
  int32_t _internal_stride() const;
  void _internal_set_stride(int32_t value);
  public:

  // int32 base_size = 2;
  void clear_base_size();
  int32_t base_size() const;
  void set_base_size(int32_t value);
  private:
  int32_t _internal_base_size() const;
  void _internal_set_base_size(int32_t value);
  public:

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.RetinaFaceParam.AnchorParam)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    ::PROTOBUF_NAMESPACE_ID::RepeatedField< float > ratios_;
    ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t > scales_;
    mutable std::atomic<int> _scales_cached_byte_size_;
    int32_t stride_;
    int32_t base_size_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class RetinaFaceParam final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.RetinaFaceParam) */ {
 public:
  inline RetinaFaceParam() : RetinaFaceParam(nullptr) {}
  ~RetinaFaceParam() override;
  explicit PROTOBUF_CONSTEXPR RetinaFaceParam(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  RetinaFaceParam(const RetinaFaceParam& from);
  RetinaFaceParam(RetinaFaceParam&& from) noexcept
    : RetinaFaceParam() {
    *this = ::std::move(from);
  }

  inline RetinaFaceParam& operator=(const RetinaFaceParam& from) {
    CopyFrom(from);
    return *this;
  }
  inline RetinaFaceParam& operator=(RetinaFaceParam&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const RetinaFaceParam& default_instance() {
    return *internal_default_instance();
  }
  static inline const RetinaFaceParam* internal_default_instance() {
    return reinterpret_cast<const RetinaFaceParam*>(
               &_RetinaFaceParam_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    31;

  friend void swap(RetinaFaceParam& a, RetinaFaceParam& b) {
    a.Swap(&b);
  }
  inline void Swap(RetinaFaceParam* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(RetinaFaceParam* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  RetinaFaceParam* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<RetinaFaceParam>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const RetinaFaceParam& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom( const RetinaFaceParam& from) {
    RetinaFaceParam::MergeImpl(*this, from);
  }
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned);
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(RetinaFaceParam* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.RetinaFaceParam";
  }
  protected:
  explicit RetinaFaceParam(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

  typedef RetinaFaceParam_OutputAnchorInfo OutputAnchorInfo;
  typedef RetinaFaceParam_OutputInfo OutputInfo;
  typedef RetinaFaceParam_AnchorParam AnchorParam;

  typedef RetinaFaceParam_OutputType OutputType;
  static constexpr OutputType USELESS =
    RetinaFaceParam_OutputType_USELESS;
  static constexpr OutputType CONF =
    RetinaFaceParam_OutputType_CONF;
  static constexpr OutputType BBOX =
    RetinaFaceParam_OutputType_BBOX;
  static constexpr OutputType LANDMARK =
    RetinaFaceParam_OutputType_LANDMARK;
  static inline bool OutputType_IsValid(int value) {
    return RetinaFaceParam_OutputType_IsValid(value);
  }
  static constexpr OutputType OutputType_MIN =
    RetinaFaceParam_OutputType_OutputType_MIN;
  static constexpr OutputType OutputType_MAX =
    RetinaFaceParam_OutputType_OutputType_MAX;
  static constexpr int OutputType_ARRAYSIZE =
    RetinaFaceParam_OutputType_OutputType_ARRAYSIZE;
  static inline const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor*
  OutputType_descriptor() {
    return RetinaFaceParam_OutputType_descriptor();
  }
  template<typename T>
  static inline const std::string& OutputType_Name(T enum_t_value) {
    static_assert(::std::is_same<T, OutputType>::value ||
      ::std::is_integral<T>::value,
      "Incorrect type passed to function OutputType_Name.");
    return RetinaFaceParam_OutputType_Name(enum_t_value);
  }
  static inline bool OutputType_Parse(::PROTOBUF_NAMESPACE_ID::ConstStringParam name,
      OutputType* value) {
    return RetinaFaceParam_OutputType_Parse(name, value);
  }

  typedef RetinaFaceParam_AnchorType AnchorType;
  static constexpr AnchorType BG =
    RetinaFaceParam_AnchorType_BG;
  static constexpr AnchorType FG =
    RetinaFaceParam_AnchorType_FG;
  static inline bool AnchorType_IsValid(int value) {
    return RetinaFaceParam_AnchorType_IsValid(value);
  }
  static constexpr AnchorType AnchorType_MIN =
    RetinaFaceParam_AnchorType_AnchorType_MIN;
  static constexpr AnchorType AnchorType_MAX =
    RetinaFaceParam_AnchorType_AnchorType_MAX;
  static constexpr int AnchorType_ARRAYSIZE =
    RetinaFaceParam_AnchorType_AnchorType_ARRAYSIZE;
  static inline const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor*
  AnchorType_descriptor() {
    return RetinaFaceParam_AnchorType_descriptor();
  }
  template<typename T>
  static inline const std::string& AnchorType_Name(T enum_t_value) {
    static_assert(::std::is_same<T, AnchorType>::value ||
      ::std::is_integral<T>::value,
      "Incorrect type passed to function AnchorType_Name.");
    return RetinaFaceParam_AnchorType_Name(enum_t_value);
  }
  static inline bool AnchorType_Parse(::PROTOBUF_NAMESPACE_ID::ConstStringParam name,
      AnchorType* value) {
    return RetinaFaceParam_AnchorType_Parse(name, value);
  }

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

  enum : int {
    kOutputInfoFieldNumber = 1,
    kAnchorParamFieldNumber = 4,
    kNmsThresholdFieldNumber = 2,
    kDetThresholdFieldNumber = 3,
  };
  // repeated .vitis.ai.proto.RetinaFaceParam.OutputInfo output_info = 1;
  int output_info_size() const;
  private:
  int _internal_output_info_size() const;
  public:
  void clear_output_info();
  ::vitis::ai::proto::RetinaFaceParam_OutputInfo* mutable_output_info(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::RetinaFaceParam_OutputInfo >*
      mutable_output_info();
  private:
  const ::vitis::ai::proto::RetinaFaceParam_OutputInfo& _internal_output_info(int index) const;
  ::vitis::ai::proto::RetinaFaceParam_OutputInfo* _internal_add_output_info();
  public:
  const ::vitis::ai::proto::RetinaFaceParam_OutputInfo& output_info(int index) const;
  ::vitis::ai::proto::RetinaFaceParam_OutputInfo* add_output_info();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::RetinaFaceParam_OutputInfo >&
      output_info() const;

  // repeated .vitis.ai.proto.RetinaFaceParam.AnchorParam anchor_param = 4;
  int anchor_param_size() const;
  private:
  int _internal_anchor_param_size() const;
  public:
  void clear_anchor_param();
  ::vitis::ai::proto::RetinaFaceParam_AnchorParam* mutable_anchor_param(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::RetinaFaceParam_AnchorParam >*
      mutable_anchor_param();
  private:
  const ::vitis::ai::proto::RetinaFaceParam_AnchorParam& _internal_anchor_param(int index) const;
  ::vitis::ai::proto::RetinaFaceParam_AnchorParam* _internal_add_anchor_param();
  public:
  const ::vitis::ai::proto::RetinaFaceParam_AnchorParam& anchor_param(int index) const;
  ::vitis::ai::proto::RetinaFaceParam_AnchorParam* add_anchor_param();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::RetinaFaceParam_AnchorParam >&
      anchor_param() const;

  // float nms_threshold = 2;
  void clear_nms_threshold();
  float nms_threshold() const;
  void set_nms_threshold(float value);
  private:
  float _internal_nms_threshold() const;
  void _internal_set_nms_threshold(float value);
  public:

  // float det_threshold = 3;
  void clear_det_threshold();
  float det_threshold() const;
  void set_det_threshold(float value);
  private:
  float _internal_det_threshold() const;
  void _internal_set_det_threshold(float value);
  public:

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.RetinaFaceParam)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::RetinaFaceParam_OutputInfo > output_info_;
    ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::RetinaFaceParam_AnchorParam > anchor_param_;
    float nms_threshold_;
    float det_threshold_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class DpuKernelParam final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.DpuKernelParam) */ {
 public:
  inline DpuKernelParam() : DpuKernelParam(nullptr) {}
  ~DpuKernelParam() override;
  explicit PROTOBUF_CONSTEXPR DpuKernelParam(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  DpuKernelParam(const DpuKernelParam& from);
  DpuKernelParam(DpuKernelParam&& from) noexcept
    : DpuKernelParam() {
    *this = ::std::move(from);
  }

  inline DpuKernelParam& operator=(const DpuKernelParam& from) {
    CopyFrom(from);
    return *this;
  }
  inline DpuKernelParam& operator=(DpuKernelParam&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const DpuKernelParam& default_instance() {
    return *internal_default_instance();
  }
  static inline const DpuKernelParam* internal_default_instance() {
    return reinterpret_cast<const DpuKernelParam*>(
               &_DpuKernelParam_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    32;

  friend void swap(DpuKernelParam& a, DpuKernelParam& b) {
    a.Swap(&b);
  }
  inline void Swap(DpuKernelParam* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(DpuKernelParam* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  DpuKernelParam* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<DpuKernelParam>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const DpuKernelParam& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom( const DpuKernelParam& from) {
    DpuKernelParam::MergeImpl(*this, from);
  }
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned);
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(DpuKernelParam* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.DpuKernelParam";
  }
  protected:
  explicit DpuKernelParam(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kMeanFieldNumber = 2,
    kScaleFieldNumber = 3,
    kNameFieldNumber = 1,
  };
  // repeated float mean = 2;
  int mean_size() const;
  private:
  int _internal_mean_size() const;
  public:
  void clear_mean();
  private:
  float _internal_mean(int index) const;
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
      _internal_mean() const;
  void _internal_add_mean(float value);
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
      _internal_mutable_mean();
  public:
  float mean(int index) const;
  void set_mean(int index, float value);
  void add_mean(float value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
      mean() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
      mutable_mean();

  // repeated float scale = 3;
  int scale_size() const;
  private:
  int _internal_scale_size() const;
  public:
  void clear_scale();
  private:
  float _internal_scale(int index) const;
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
      _internal_scale() const;
  void _internal_add_scale(float value);
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
      _internal_mutable_scale();
  public:
  float scale(int index) const;
  void set_scale(int index, float value);
  void add_scale(float value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
      scale() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
      mutable_scale();

  // string name = 1;
  void clear_name();
  const std::string& name() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_name(ArgT0&& arg0, ArgT... args);
  std::string* mutable_name();
  PROTOBUF_NODISCARD std::string* release_name();
  void set_allocated_name(std::string* name);
  private:
  const std::string& _internal_name() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_name(const std::string& value);
  std::string* _internal_mutable_name();
  public:

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.DpuKernelParam)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    ::PROTOBUF_NAMESPACE_ID::RepeatedField< float > mean_;
    ::PROTOBUF_NAMESPACE_ID::RepeatedField< float > scale_;
    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr name_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class TfssdParam_OutputInfo final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.TfssdParam.OutputInfo) */ {
 public:
  inline TfssdParam_OutputInfo() : TfssdParam_OutputInfo(nullptr) {}
  ~TfssdParam_OutputInfo() override;
  explicit PROTOBUF_CONSTEXPR TfssdParam_OutputInfo(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  TfssdParam_OutputInfo(const TfssdParam_OutputInfo& from);
  TfssdParam_OutputInfo(TfssdParam_OutputInfo&& from) noexcept
    : TfssdParam_OutputInfo() {
    *this = ::std::move(from);
  }

  inline TfssdParam_OutputInfo& operator=(const TfssdParam_OutputInfo& from) {
    CopyFrom(from);
    return *this;
  }
  inline TfssdParam_OutputInfo& operator=(TfssdParam_OutputInfo&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const TfssdParam_OutputInfo& default_instance() {
    return *internal_default_instance();
  }
  static inline const TfssdParam_OutputInfo* internal_default_instance() {
    return reinterpret_cast<const TfssdParam_OutputInfo*>(
               &_TfssdParam_OutputInfo_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    33;

  friend void swap(TfssdParam_OutputInfo& a, TfssdParam_OutputInfo& b) {
    a.Swap(&b);
  }
  inline void Swap(TfssdParam_OutputInfo* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(TfssdParam_OutputInfo* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  TfssdParam_OutputInfo* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<TfssdParam_OutputInfo>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const TfssdParam_OutputInfo& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom( const TfssdParam_OutputInfo& from) {
    TfssdParam_OutputInfo::MergeImpl(*this, from);
  }
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned);
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(TfssdParam_OutputInfo* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.TfssdParam.OutputInfo";
  }
  protected:
  explicit TfssdParam_OutputInfo(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kNameFieldNumber = 3,
    kTypeFieldNumber = 1,
    kOrderFieldNumber = 2,
  };
  // string name = 3;
  void clear_name();
  const std::string& name() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_name(ArgT0&& arg0, ArgT... args);
  std::string* mutable_name();
  PROTOBUF_NODISCARD std::string* release_name();
  void set_allocated_name(std::string* name);
  private:
  const std::string& _internal_name() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_name(const std::string& value);
  std::string* _internal_mutable_name();
  public:

  // .vitis.ai.proto.TfssdParam.OutputType type = 1;
  void clear_type();
  ::vitis::ai::proto::TfssdParam_OutputType type() const;
  void set_type(::vitis::ai::proto::TfssdParam_OutputType value);
  private:
  ::vitis::ai::proto::TfssdParam_OutputType _internal_type() const;
  void _internal_set_type(::vitis::ai::proto::TfssdParam_OutputType value);
  public:

  // int32 order = 2;
  void clear_order();
  int32_t order() const;
  void set_order(int32_t value);
  private:
  int32_t _internal_order() const;
  void _internal_set_order(int32_t value);
  public:

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.TfssdParam.OutputInfo)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr name_;
    int type_;
    int32_t order_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class TfssdParam final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.TfssdParam) */ {
 public:
  inline TfssdParam() : TfssdParam(nullptr) {}
  ~TfssdParam() override;
  explicit PROTOBUF_CONSTEXPR TfssdParam(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  TfssdParam(const TfssdParam& from);
  TfssdParam(TfssdParam&& from) noexcept
    : TfssdParam() {
    *this = ::std::move(from);
  }

  inline TfssdParam& operator=(const TfssdParam& from) {
    CopyFrom(from);
    return *this;
  }
  inline TfssdParam& operator=(TfssdParam&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const TfssdParam& default_instance() {
    return *internal_default_instance();
  }
  static inline const TfssdParam* internal_default_instance() {
    return reinterpret_cast<const TfssdParam*>(
               &_TfssdParam_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    34;

  friend void swap(TfssdParam& a, TfssdParam& b) {
    a.Swap(&b);
  }
  inline void Swap(TfssdParam* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(TfssdParam* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  TfssdParam* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<TfssdParam>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const TfssdParam& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom( const TfssdParam& from) {
    TfssdParam::MergeImpl(*this, from);
  }
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned);
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(TfssdParam* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.TfssdParam";
  }
  protected:
  explicit TfssdParam(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

  typedef TfssdParam_OutputInfo OutputInfo;

  typedef TfssdParam_OutputType OutputType;
  static constexpr OutputType USELESS =
    TfssdParam_OutputType_USELESS;
  static constexpr OutputType CONF =
    TfssdParam_OutputType_CONF;
  static constexpr OutputType BBOX =
    TfssdParam_OutputType_BBOX;
  static inline bool OutputType_IsValid(int value) {
    return TfssdParam_OutputType_IsValid(value);
  }
  static constexpr OutputType OutputType_MIN =
    TfssdParam_OutputType_OutputType_MIN;
  static constexpr OutputType OutputType_MAX =
    TfssdParam_OutputType_OutputType_MAX;
  static constexpr int OutputType_ARRAYSIZE =
    TfssdParam_OutputType_OutputType_ARRAYSIZE;
  static inline const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor*
  OutputType_descriptor() {
    return TfssdParam_OutputType_descriptor();
  }
  template<typename T>
  static inline const std::string& OutputType_Name(T enum_t_value) {
    static_assert(::std::is_same<T, OutputType>::value ||
      ::std::is_integral<T>::value,
      "Incorrect type passed to function OutputType_Name.");
    return TfssdParam_OutputType_Name(enum_t_value);
  }
  static inline bool OutputType_Parse(::PROTOBUF_NAMESPACE_ID::ConstStringParam name,
      OutputType* value) {
    return TfssdParam_OutputType_Parse(name, value);
  }

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

  enum : int {
    kOutputInfoFieldNumber = 1,
    kFeatureMapListFieldNumber = 2,
  };
  // repeated .vitis.ai.proto.TfssdParam.OutputInfo output_info = 1;
  int output_info_size() const;
  private:
  int _internal_output_info_size() const;
  public:
  void clear_output_info();
  ::vitis::ai::proto::TfssdParam_OutputInfo* mutable_output_info(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::TfssdParam_OutputInfo >*
      mutable_output_info();
  private:
  const ::vitis::ai::proto::TfssdParam_OutputInfo& _internal_output_info(int index) const;
  ::vitis::ai::proto::TfssdParam_OutputInfo* _internal_add_output_info();
  public:
  const ::vitis::ai::proto::TfssdParam_OutputInfo& output_info(int index) const;
  ::vitis::ai::proto::TfssdParam_OutputInfo* add_output_info();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::TfssdParam_OutputInfo >&
      output_info() const;

  // repeated int32 feature_map_list = 2;
  int feature_map_list_size() const;
  private:
  int _internal_feature_map_list_size() const;
  public:
  void clear_feature_map_list();
  private:
  int32_t _internal_feature_map_list(int index) const;
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >&
      _internal_feature_map_list() const;
  void _internal_add_feature_map_list(int32_t value);
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >*
      _internal_mutable_feature_map_list();
  public:
  int32_t feature_map_list(int index) const;
  void set_feature_map_list(int index, int32_t value);
  void add_feature_map_list(int32_t value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >&
      feature_map_list() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >*
      mutable_feature_map_list();

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.TfssdParam)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::TfssdParam_OutputInfo > output_info_;
    ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t > feature_map_list_;
    mutable std::atomic<int> _feature_map_list_cached_byte_size_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class PointPillarsNusParam_AnchorInfo_Ranges final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.PointPillarsNusParam.AnchorInfo.Ranges) */ {
 public:
  inline PointPillarsNusParam_AnchorInfo_Ranges() : PointPillarsNusParam_AnchorInfo_Ranges(nullptr) {}
  ~PointPillarsNusParam_AnchorInfo_Ranges() override;
  explicit PROTOBUF_CONSTEXPR PointPillarsNusParam_AnchorInfo_Ranges(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  PointPillarsNusParam_AnchorInfo_Ranges(const PointPillarsNusParam_AnchorInfo_Ranges& from);
  PointPillarsNusParam_AnchorInfo_Ranges(PointPillarsNusParam_AnchorInfo_Ranges&& from) noexcept
    : PointPillarsNusParam_AnchorInfo_Ranges() {
    *this = ::std::move(from);
  }

  inline PointPillarsNusParam_AnchorInfo_Ranges& operator=(const PointPillarsNusParam_AnchorInfo_Ranges& from) {
    CopyFrom(from);
    return *this;
  }
  inline PointPillarsNusParam_AnchorInfo_Ranges& operator=(PointPillarsNusParam_AnchorInfo_Ranges&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const PointPillarsNusParam_AnchorInfo_Ranges& default_instance() {
    return *internal_default_instance();
  }
  static inline const PointPillarsNusParam_AnchorInfo_Ranges* internal_default_instance() {
    return reinterpret_cast<const PointPillarsNusParam_AnchorInfo_Ranges*>(
               &_PointPillarsNusParam_AnchorInfo_Ranges_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    35;

  friend void swap(PointPillarsNusParam_AnchorInfo_Ranges& a, PointPillarsNusParam_AnchorInfo_Ranges& b) {
    a.Swap(&b);
  }
  inline void Swap(PointPillarsNusParam_AnchorInfo_Ranges* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(PointPillarsNusParam_AnchorInfo_Ranges* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  PointPillarsNusParam_AnchorInfo_Ranges* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<PointPillarsNusParam_AnchorInfo_Ranges>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const PointPillarsNusParam_AnchorInfo_Ranges& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom( const PointPillarsNusParam_AnchorInfo_Ranges& from) {
    PointPillarsNusParam_AnchorInfo_Ranges::MergeImpl(*this, from);
  }
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned);
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(PointPillarsNusParam_AnchorInfo_Ranges* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.PointPillarsNusParam.AnchorInfo.Ranges";
  }
  protected:
  explicit PointPillarsNusParam_AnchorInfo_Ranges(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kSingleRangeFieldNumber = 1,
  };
  // repeated float single_range = 1;
  int single_range_size() const;
  private:
  int _internal_single_range_size() const;
  public:
  void clear_single_range();
  private:
  float _internal_single_range(int index) const;
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
      _internal_single_range() const;
  void _internal_add_single_range(float value);
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
      _internal_mutable_single_range();
  public:
  float single_range(int index) const;
  void set_single_range(int index, float value);
  void add_single_range(float value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
      single_range() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
      mutable_single_range();

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.PointPillarsNusParam.AnchorInfo.Ranges)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    ::PROTOBUF_NAMESPACE_ID::RepeatedField< float > single_range_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class PointPillarsNusParam_AnchorInfo_Sizes final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.PointPillarsNusParam.AnchorInfo.Sizes) */ {
 public:
  inline PointPillarsNusParam_AnchorInfo_Sizes() : PointPillarsNusParam_AnchorInfo_Sizes(nullptr) {}
  ~PointPillarsNusParam_AnchorInfo_Sizes() override;
  explicit PROTOBUF_CONSTEXPR PointPillarsNusParam_AnchorInfo_Sizes(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  PointPillarsNusParam_AnchorInfo_Sizes(const PointPillarsNusParam_AnchorInfo_Sizes& from);
  PointPillarsNusParam_AnchorInfo_Sizes(PointPillarsNusParam_AnchorInfo_Sizes&& from) noexcept
    : PointPillarsNusParam_AnchorInfo_Sizes() {
    *this = ::std::move(from);
  }

  inline PointPillarsNusParam_AnchorInfo_Sizes& operator=(const PointPillarsNusParam_AnchorInfo_Sizes& from) {
    CopyFrom(from);
    return *this;
  }
  inline PointPillarsNusParam_AnchorInfo_Sizes& operator=(PointPillarsNusParam_AnchorInfo_Sizes&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const PointPillarsNusParam_AnchorInfo_Sizes& default_instance() {
    return *internal_default_instance();
  }
  static inline const PointPillarsNusParam_AnchorInfo_Sizes* internal_default_instance() {
    return reinterpret_cast<const PointPillarsNusParam_AnchorInfo_Sizes*>(
               &_PointPillarsNusParam_AnchorInfo_Sizes_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    36;

  friend void swap(PointPillarsNusParam_AnchorInfo_Sizes& a, PointPillarsNusParam_AnchorInfo_Sizes& b) {
    a.Swap(&b);
  }
  inline void Swap(PointPillarsNusParam_AnchorInfo_Sizes* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(PointPillarsNusParam_AnchorInfo_Sizes* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  PointPillarsNusParam_AnchorInfo_Sizes* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<PointPillarsNusParam_AnchorInfo_Sizes>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const PointPillarsNusParam_AnchorInfo_Sizes& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom( const PointPillarsNusParam_AnchorInfo_Sizes& from) {
    PointPillarsNusParam_AnchorInfo_Sizes::MergeImpl(*this, from);
  }
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned);
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(PointPillarsNusParam_AnchorInfo_Sizes* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.PointPillarsNusParam.AnchorInfo.Sizes";
  }
  protected:
  explicit PointPillarsNusParam_AnchorInfo_Sizes(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kSingleSizeFieldNumber = 1,
  };
  // repeated float single_size = 1;
  int single_size_size() const;
  private:
  int _internal_single_size_size() const;
  public:
  void clear_single_size();
  private:
  float _internal_single_size(int index) const;
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
      _internal_single_size() const;
  void _internal_add_single_size(float value);
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
      _internal_mutable_single_size();
  public:
  float single_size(int index) const;
  void set_single_size(int index, float value);
  void add_single_size(float value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
      single_size() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
      mutable_single_size();

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.PointPillarsNusParam.AnchorInfo.Sizes)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    ::PROTOBUF_NAMESPACE_ID::RepeatedField< float > single_size_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class PointPillarsNusParam_AnchorInfo final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.PointPillarsNusParam.AnchorInfo) */ {
 public:
  inline PointPillarsNusParam_AnchorInfo() : PointPillarsNusParam_AnchorInfo(nullptr) {}
  ~PointPillarsNusParam_AnchorInfo() override;
  explicit PROTOBUF_CONSTEXPR PointPillarsNusParam_AnchorInfo(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  PointPillarsNusParam_AnchorInfo(const PointPillarsNusParam_AnchorInfo& from);
  PointPillarsNusParam_AnchorInfo(PointPillarsNusParam_AnchorInfo&& from) noexcept
    : PointPillarsNusParam_AnchorInfo() {
    *this = ::std::move(from);
  }

  inline PointPillarsNusParam_AnchorInfo& operator=(const PointPillarsNusParam_AnchorInfo& from) {
    CopyFrom(from);
    return *this;
  }
  inline PointPillarsNusParam_AnchorInfo& operator=(PointPillarsNusParam_AnchorInfo&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const PointPillarsNusParam_AnchorInfo& default_instance() {
    return *internal_default_instance();
  }
  static inline const PointPillarsNusParam_AnchorInfo* internal_default_instance() {
    return reinterpret_cast<const PointPillarsNusParam_AnchorInfo*>(
               &_PointPillarsNusParam_AnchorInfo_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    37;

  friend void swap(PointPillarsNusParam_AnchorInfo& a, PointPillarsNusParam_AnchorInfo& b) {
    a.Swap(&b);
  }
  inline void Swap(PointPillarsNusParam_AnchorInfo* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(PointPillarsNusParam_AnchorInfo* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  PointPillarsNusParam_AnchorInfo* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<PointPillarsNusParam_AnchorInfo>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const PointPillarsNusParam_AnchorInfo& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom( const PointPillarsNusParam_AnchorInfo& from) {
    PointPillarsNusParam_AnchorInfo::MergeImpl(*this, from);
  }
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned);
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(PointPillarsNusParam_AnchorInfo* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.PointPillarsNusParam.AnchorInfo";
  }
  protected:
  explicit PointPillarsNusParam_AnchorInfo(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

  typedef PointPillarsNusParam_AnchorInfo_Ranges Ranges;
  typedef PointPillarsNusParam_AnchorInfo_Sizes Sizes;

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

  enum : int {
    kRangesFieldNumber = 1,
    kSizesFieldNumber = 2,
    kRotationsFieldNumber = 3,
    kCustomValueFieldNumber = 4,
    kAlignCornerFieldNumber = 5,
    kScaleFieldNumber = 6,
  };
  // repeated .vitis.ai.proto.PointPillarsNusParam.AnchorInfo.Ranges ranges = 1;
  int ranges_size() const;
  private:
  int _internal_ranges_size() const;
  public:
  void clear_ranges();
  ::vitis::ai::proto::PointPillarsNusParam_AnchorInfo_Ranges* mutable_ranges(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::PointPillarsNusParam_AnchorInfo_Ranges >*
      mutable_ranges();
  private:
  const ::vitis::ai::proto::PointPillarsNusParam_AnchorInfo_Ranges& _internal_ranges(int index) const;
  ::vitis::ai::proto::PointPillarsNusParam_AnchorInfo_Ranges* _internal_add_ranges();
  public:
  const ::vitis::ai::proto::PointPillarsNusParam_AnchorInfo_Ranges& ranges(int index) const;
  ::vitis::ai::proto::PointPillarsNusParam_AnchorInfo_Ranges* add_ranges();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::PointPillarsNusParam_AnchorInfo_Ranges >&
      ranges() const;

  // repeated .vitis.ai.proto.PointPillarsNusParam.AnchorInfo.Sizes sizes = 2;
  int sizes_size() const;
  private:
  int _internal_sizes_size() const;
  public:
  void clear_sizes();
  ::vitis::ai::proto::PointPillarsNusParam_AnchorInfo_Sizes* mutable_sizes(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::PointPillarsNusParam_AnchorInfo_Sizes >*
      mutable_sizes();
  private:
  const ::vitis::ai::proto::PointPillarsNusParam_AnchorInfo_Sizes& _internal_sizes(int index) const;
  ::vitis::ai::proto::PointPillarsNusParam_AnchorInfo_Sizes* _internal_add_sizes();
  public:
  const ::vitis::ai::proto::PointPillarsNusParam_AnchorInfo_Sizes& sizes(int index) const;
  ::vitis::ai::proto::PointPillarsNusParam_AnchorInfo_Sizes* add_sizes();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::PointPillarsNusParam_AnchorInfo_Sizes >&
      sizes() const;

  // repeated float rotations = 3;
  int rotations_size() const;
  private:
  int _internal_rotations_size() const;
  public:
  void clear_rotations();
  private:
  float _internal_rotations(int index) const;
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
      _internal_rotations() const;
  void _internal_add_rotations(float value);
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
      _internal_mutable_rotations();
  public:
  float rotations(int index) const;
  void set_rotations(int index, float value);
  void add_rotations(float value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
      rotations() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
      mutable_rotations();

  // repeated float custom_value = 4;
  int custom_value_size() const;
  private:
  int _internal_custom_value_size() const;
  public:
  void clear_custom_value();
  private:
  float _internal_custom_value(int index) const;
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
      _internal_custom_value() const;
  void _internal_add_custom_value(float value);
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
      _internal_mutable_custom_value();
  public:
  float custom_value(int index) const;
  void set_custom_value(int index, float value);
  void add_custom_value(float value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
      custom_value() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
      mutable_custom_value();

  // bool align_corner = 5;
  void clear_align_corner();
  bool align_corner() const;
  void set_align_corner(bool value);
  private:
  bool _internal_align_corner() const;
  void _internal_set_align_corner(bool value);
  public:

  // float scale = 6;
  void clear_scale();
  float scale() const;
  void set_scale(float value);
  private:
  float _internal_scale() const;
  void _internal_set_scale(float value);
  public:

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.PointPillarsNusParam.AnchorInfo)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::PointPillarsNusParam_AnchorInfo_Ranges > ranges_;
    ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::PointPillarsNusParam_AnchorInfo_Sizes > sizes_;
    ::PROTOBUF_NAMESPACE_ID::RepeatedField< float > rotations_;
    ::PROTOBUF_NAMESPACE_ID::RepeatedField< float > custom_value_;
    bool align_corner_;
    float scale_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class PointPillarsNusParam final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.PointPillarsNusParam) */ {
 public:
  inline PointPillarsNusParam() : PointPillarsNusParam(nullptr) {}
  ~PointPillarsNusParam() override;
  explicit PROTOBUF_CONSTEXPR PointPillarsNusParam(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  PointPillarsNusParam(const PointPillarsNusParam& from);
  PointPillarsNusParam(PointPillarsNusParam&& from) noexcept
    : PointPillarsNusParam() {
    *this = ::std::move(from);
  }

  inline PointPillarsNusParam& operator=(const PointPillarsNusParam& from) {
    CopyFrom(from);
    return *this;
  }
  inline PointPillarsNusParam& operator=(PointPillarsNusParam&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const PointPillarsNusParam& default_instance() {
    return *internal_default_instance();
  }
  static inline const PointPillarsNusParam* internal_default_instance() {
    return reinterpret_cast<const PointPillarsNusParam*>(
               &_PointPillarsNusParam_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    38;

  friend void swap(PointPillarsNusParam& a, PointPillarsNusParam& b) {
    a.Swap(&b);
  }
  inline void Swap(PointPillarsNusParam* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(PointPillarsNusParam* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  PointPillarsNusParam* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<PointPillarsNusParam>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const PointPillarsNusParam& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom( const PointPillarsNusParam& from) {
    PointPillarsNusParam::MergeImpl(*this, from);
  }
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned);
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(PointPillarsNusParam* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.PointPillarsNusParam";
  }
  protected:
  explicit PointPillarsNusParam(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

  typedef PointPillarsNusParam_AnchorInfo AnchorInfo;

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

  enum : int {
    kPointCloudRangeFieldNumber = 1,
    kFeatmapSizeFieldNumber = 5,
    kScoreLayerNameFieldNumber = 12,
    kBboxLayerNameFieldNumber = 13,
    kDirLayerNameFieldNumber = 14,
    kAnchorInfoFieldNumber = 6,
    kInChannelsFieldNumber = 2,
    kMaxPointsNumFieldNumber = 3,
    kMaxVoxelsNumFieldNumber = 4,
    kNumClassesFieldNumber = 7,
    kNmsPreFieldNumber = 8,
    kNmsThreshFieldNumber = 9,
    kMaxNumFieldNumber = 10,
    kScoreThreshFieldNumber = 11,
  };
  // repeated float point_cloud_range = 1;
  int point_cloud_range_size() const;
  private:
  int _internal_point_cloud_range_size() const;
  public:
  void clear_point_cloud_range();
  private:
  float _internal_point_cloud_range(int index) const;
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
      _internal_point_cloud_range() const;
  void _internal_add_point_cloud_range(float value);
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
      _internal_mutable_point_cloud_range();
  public:
  float point_cloud_range(int index) const;
  void set_point_cloud_range(int index, float value);
  void add_point_cloud_range(float value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
      point_cloud_range() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
      mutable_point_cloud_range();

  // repeated int32 featmap_size = 5;
  int featmap_size_size() const;
  private:
  int _internal_featmap_size_size() const;
  public:
  void clear_featmap_size();
  private:
  int32_t _internal_featmap_size(int index) const;
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >&
      _internal_featmap_size() const;
  void _internal_add_featmap_size(int32_t value);
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >*
      _internal_mutable_featmap_size();
  public:
  int32_t featmap_size(int index) const;
  void set_featmap_size(int index, int32_t value);
  void add_featmap_size(int32_t value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >&
      featmap_size() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >*
      mutable_featmap_size();

  // string score_layer_name = 12;
  void clear_score_layer_name();
  const std::string& score_layer_name() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_score_layer_name(ArgT0&& arg0, ArgT... args);
  std::string* mutable_score_layer_name();
  PROTOBUF_NODISCARD std::string* release_score_layer_name();
  void set_allocated_score_layer_name(std::string* score_layer_name);
  private:
  const std::string& _internal_score_layer_name() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_score_layer_name(const std::string& value);
  std::string* _internal_mutable_score_layer_name();
  public:

  // string bbox_layer_name = 13;
  void clear_bbox_layer_name();
  const std::string& bbox_layer_name() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_bbox_layer_name(ArgT0&& arg0, ArgT... args);
  std::string* mutable_bbox_layer_name();
  PROTOBUF_NODISCARD std::string* release_bbox_layer_name();
  void set_allocated_bbox_layer_name(std::string* bbox_layer_name);
  private:
  const std::string& _internal_bbox_layer_name() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_bbox_layer_name(const std::string& value);
  std::string* _internal_mutable_bbox_layer_name();
  public:

  // string dir_layer_name = 14;
  void clear_dir_layer_name();
  const std::string& dir_layer_name() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_dir_layer_name(ArgT0&& arg0, ArgT... args);
  std::string* mutable_dir_layer_name();
  PROTOBUF_NODISCARD std::string* release_dir_layer_name();
  void set_allocated_dir_layer_name(std::string* dir_layer_name);
  private:
  const std::string& _internal_dir_layer_name() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_dir_layer_name(const std::string& value);
  std::string* _internal_mutable_dir_layer_name();
  public:

  // .vitis.ai.proto.PointPillarsNusParam.AnchorInfo anchor_info = 6;
  bool has_anchor_info() const;
  private:
  bool _internal_has_anchor_info() const;
  public:
  void clear_anchor_info();
  const ::vitis::ai::proto::PointPillarsNusParam_AnchorInfo& anchor_info() const;
  PROTOBUF_NODISCARD ::vitis::ai::proto::PointPillarsNusParam_AnchorInfo* release_anchor_info();
  ::vitis::ai::proto::PointPillarsNusParam_AnchorInfo* mutable_anchor_info();
  void set_allocated_anchor_info(::vitis::ai::proto::PointPillarsNusParam_AnchorInfo* anchor_info);
  private:
  const ::vitis::ai::proto::PointPillarsNusParam_AnchorInfo& _internal_anchor_info() const;
  ::vitis::ai::proto::PointPillarsNusParam_AnchorInfo* _internal_mutable_anchor_info();
  public:
  void unsafe_arena_set_allocated_anchor_info(
      ::vitis::ai::proto::PointPillarsNusParam_AnchorInfo* anchor_info);
  ::vitis::ai::proto::PointPillarsNusParam_AnchorInfo* unsafe_arena_release_anchor_info();

  // int32 in_channels = 2;
  void clear_in_channels();
  int32_t in_channels() const;
  void set_in_channels(int32_t value);
  private:
  int32_t _internal_in_channels() const;
  void _internal_set_in_channels(int32_t value);
  public:

  // int32 max_points_num = 3;
  void clear_max_points_num();
  int32_t max_points_num() const;
  void set_max_points_num(int32_t value);
  private:
  int32_t _internal_max_points_num() const;
  void _internal_set_max_points_num(int32_t value);
  public:

  // int32 max_voxels_num = 4;
  void clear_max_voxels_num();
  int32_t max_voxels_num() const;
  void set_max_voxels_num(int32_t value);
  private:
  int32_t _internal_max_voxels_num() const;
  void _internal_set_max_voxels_num(int32_t value);
  public:

  // int32 num_classes = 7;
  void clear_num_classes();
  int32_t num_classes() const;
  void set_num_classes(int32_t value);
  private:
  int32_t _internal_num_classes() const;
  void _internal_set_num_classes(int32_t value);
  public:

  // float nms_pre = 8;
  void clear_nms_pre();
  float nms_pre() const;
  void set_nms_pre(float value);
  private:
  float _internal_nms_pre() const;
  void _internal_set_nms_pre(float value);
  public:

  // float nms_thresh = 9;
  void clear_nms_thresh();
  float nms_thresh() const;
  void set_nms_thresh(float value);
  private:
  float _internal_nms_thresh() const;
  void _internal_set_nms_thresh(float value);
  public:

  // float max_num = 10;
  void clear_max_num();
  float max_num() const;
  void set_max_num(float value);
  private:
  float _internal_max_num() const;
  void _internal_set_max_num(float value);
  public:

  // float score_thresh = 11;
  void clear_score_thresh();
  float score_thresh() const;
  void set_score_thresh(float value);
  private:
  float _internal_score_thresh() const;
  void _internal_set_score_thresh(float value);
  public:

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.PointPillarsNusParam)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    ::PROTOBUF_NAMESPACE_ID::RepeatedField< float > point_cloud_range_;
    ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t > featmap_size_;
    mutable std::atomic<int> _featmap_size_cached_byte_size_;
    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr score_layer_name_;
    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr bbox_layer_name_;
    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr dir_layer_name_;
    ::vitis::ai::proto::PointPillarsNusParam_AnchorInfo* anchor_info_;
    int32_t in_channels_;
    int32_t max_points_num_;
    int32_t max_voxels_num_;
    int32_t num_classes_;
    float nms_pre_;
    float nms_thresh_;
    float max_num_;
    float score_thresh_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class Segmentation3DParam final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.Segmentation3DParam) */ {
 public:
  inline Segmentation3DParam() : Segmentation3DParam(nullptr) {}
  ~Segmentation3DParam() override;
  explicit PROTOBUF_CONSTEXPR Segmentation3DParam(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  Segmentation3DParam(const Segmentation3DParam& from);
  Segmentation3DParam(Segmentation3DParam&& from) noexcept
    : Segmentation3DParam() {
    *this = ::std::move(from);
  }

  inline Segmentation3DParam& operator=(const Segmentation3DParam& from) {
    CopyFrom(from);
    return *this;
  }
  inline Segmentation3DParam& operator=(Segmentation3DParam&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const Segmentation3DParam& default_instance() {
    return *internal_default_instance();
  }
  static inline const Segmentation3DParam* internal_default_instance() {
    return reinterpret_cast<const Segmentation3DParam*>(
               &_Segmentation3DParam_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    39;

  friend void swap(Segmentation3DParam& a, Segmentation3DParam& b) {
    a.Swap(&b);
  }
  inline void Swap(Segmentation3DParam* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(Segmentation3DParam* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  Segmentation3DParam* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<Segmentation3DParam>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const Segmentation3DParam& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom( const Segmentation3DParam& from) {
    Segmentation3DParam::MergeImpl(*this, from);
  }
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned);
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(Segmentation3DParam* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.Segmentation3DParam";
  }
  protected:
  explicit Segmentation3DParam(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kEnableKnnFieldNumber = 1,
  };
  // bool enable_knn = 1;
  void clear_enable_knn();
  bool enable_knn() const;
  void set_enable_knn(bool value);
  private:
  bool _internal_enable_knn() const;
  void _internal_set_enable_knn(bool value);
  public:

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.Segmentation3DParam)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    bool enable_knn_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class YoloV5Param final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.YoloV5Param) */ {
 public:
  inline YoloV5Param() : YoloV5Param(nullptr) {}
  ~YoloV5Param() override;
  explicit PROTOBUF_CONSTEXPR YoloV5Param(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  YoloV5Param(const YoloV5Param& from);
  YoloV5Param(YoloV5Param&& from) noexcept
    : YoloV5Param() {
    *this = ::std::move(from);
  }

  inline YoloV5Param& operator=(const YoloV5Param& from) {
    CopyFrom(from);
    return *this;
  }
  inline YoloV5Param& operator=(YoloV5Param&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const YoloV5Param& default_instance() {
    return *internal_default_instance();
  }
  static inline const YoloV5Param* internal_default_instance() {
    return reinterpret_cast<const YoloV5Param*>(
               &_YoloV5Param_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    40;

  friend void swap(YoloV5Param& a, YoloV5Param& b) {
    a.Swap(&b);
  }
  inline void Swap(YoloV5Param* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(YoloV5Param* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  YoloV5Param* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<YoloV5Param>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const YoloV5Param& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom( const YoloV5Param& from) {
    YoloV5Param::MergeImpl(*this, from);
  }
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned);
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(YoloV5Param* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.YoloV5Param";
  }
  protected:
  explicit YoloV5Param(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kStrideFieldNumber = 2,
    kYoloParamFieldNumber = 1,
    kMaxBoxesNumFieldNumber = 3,
    kMaxNmsNumFieldNumber = 4,
  };
  // repeated float stride = 2;
  int stride_size() const;
  private:
  int _internal_stride_size() const;
  public:
  void clear_stride();
  private:
  float _internal_stride(int index) const;
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
      _internal_stride() const;
  void _internal_add_stride(float value);
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
      _internal_mutable_stride();
  public:
  float stride(int index) const;
  void set_stride(int index, float value);
  void add_stride(float value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
      stride() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
      mutable_stride();

  // .vitis.ai.proto.YoloV3Param yolo_param = 1;
  bool has_yolo_param() const;
  private:
  bool _internal_has_yolo_param() const;
  public:
  void clear_yolo_param();
  const ::vitis::ai::proto::YoloV3Param& yolo_param() const;
  PROTOBUF_NODISCARD ::vitis::ai::proto::YoloV3Param* release_yolo_param();
  ::vitis::ai::proto::YoloV3Param* mutable_yolo_param();
  void set_allocated_yolo_param(::vitis::ai::proto::YoloV3Param* yolo_param);
  private:
  const ::vitis::ai::proto::YoloV3Param& _internal_yolo_param() const;
  ::vitis::ai::proto::YoloV3Param* _internal_mutable_yolo_param();
  public:
  void unsafe_arena_set_allocated_yolo_param(
      ::vitis::ai::proto::YoloV3Param* yolo_param);
  ::vitis::ai::proto::YoloV3Param* unsafe_arena_release_yolo_param();

  // float max_boxes_num = 3;
  void clear_max_boxes_num();
  float max_boxes_num() const;
  void set_max_boxes_num(float value);
  private:
  float _internal_max_boxes_num() const;
  void _internal_set_max_boxes_num(float value);
  public:

  // float max_nms_num = 4;
  void clear_max_nms_num();
  float max_nms_num() const;
  void set_max_nms_num(float value);
  private:
  float _internal_max_nms_num() const;
  void _internal_set_max_nms_num(float value);
  public:

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.YoloV5Param)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    ::PROTOBUF_NAMESPACE_ID::RepeatedField< float > stride_;
    ::vitis::ai::proto::YoloV3Param* yolo_param_;
    float max_boxes_num_;
    float max_nms_num_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class YoloV6Param final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.YoloV6Param) */ {
 public:
  inline YoloV6Param() : YoloV6Param(nullptr) {}
  ~YoloV6Param() override;
  explicit PROTOBUF_CONSTEXPR YoloV6Param(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  YoloV6Param(const YoloV6Param& from);
  YoloV6Param(YoloV6Param&& from) noexcept
    : YoloV6Param() {
    *this = ::std::move(from);
  }

  inline YoloV6Param& operator=(const YoloV6Param& from) {
    CopyFrom(from);
    return *this;
  }
  inline YoloV6Param& operator=(YoloV6Param&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const YoloV6Param& default_instance() {
    return *internal_default_instance();
  }
  static inline const YoloV6Param* internal_default_instance() {
    return reinterpret_cast<const YoloV6Param*>(
               &_YoloV6Param_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    41;

  friend void swap(YoloV6Param& a, YoloV6Param& b) {
    a.Swap(&b);
  }
  inline void Swap(YoloV6Param* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(YoloV6Param* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  YoloV6Param* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<YoloV6Param>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const YoloV6Param& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom( const YoloV6Param& from) {
    YoloV6Param::MergeImpl(*this, from);
  }
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned);
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(YoloV6Param* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.YoloV6Param";
  }
  protected:
  explicit YoloV6Param(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kBiasesFieldNumber = 5,
    kBboxLayerNameFieldNumber = 7,
    kClsLayerNameFieldNumber = 8,
    kStrideFieldNumber = 9,
    kNumClassesFieldNumber = 1,
    kAnchorCntFieldNumber = 2,
    kConfThresholdFieldNumber = 3,
    kNmsThresholdFieldNumber = 4,
    kTestMAPFieldNumber = 6,
    kWithoutDflFieldNumber = 12,
    kMaxBoxesNumFieldNumber = 10,
    kMaxNmsNumFieldNumber = 11,
  };
  // repeated float biases = 5;
  int biases_size() const;
  private:
  int _internal_biases_size() const;
  public:
  void clear_biases();
  private:
  float _internal_biases(int index) const;
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
      _internal_biases() const;
  void _internal_add_biases(float value);
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
      _internal_mutable_biases();
  public:
  float biases(int index) const;
  void set_biases(int index, float value);
  void add_biases(float value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
      biases() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
      mutable_biases();

  // repeated string bbox_layer_name = 7;
  int bbox_layer_name_size() const;
  private:
  int _internal_bbox_layer_name_size() const;
  public:
  void clear_bbox_layer_name();
  const std::string& bbox_layer_name(int index) const;
  std::string* mutable_bbox_layer_name(int index);
  void set_bbox_layer_name(int index, const std::string& value);
  void set_bbox_layer_name(int index, std::string&& value);
  void set_bbox_layer_name(int index, const char* value);
  void set_bbox_layer_name(int index, const char* value, size_t size);
  std::string* add_bbox_layer_name();
  void add_bbox_layer_name(const std::string& value);
  void add_bbox_layer_name(std::string&& value);
  void add_bbox_layer_name(const char* value);
  void add_bbox_layer_name(const char* value, size_t size);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>& bbox_layer_name() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>* mutable_bbox_layer_name();
  private:
  const std::string& _internal_bbox_layer_name(int index) const;
  std::string* _internal_add_bbox_layer_name();
  public:

  // repeated string cls_layer_name = 8;
  int cls_layer_name_size() const;
  private:
  int _internal_cls_layer_name_size() const;
  public:
  void clear_cls_layer_name();
  const std::string& cls_layer_name(int index) const;
  std::string* mutable_cls_layer_name(int index);
  void set_cls_layer_name(int index, const std::string& value);
  void set_cls_layer_name(int index, std::string&& value);
  void set_cls_layer_name(int index, const char* value);
  void set_cls_layer_name(int index, const char* value, size_t size);
  std::string* add_cls_layer_name();
  void add_cls_layer_name(const std::string& value);
  void add_cls_layer_name(std::string&& value);
  void add_cls_layer_name(const char* value);
  void add_cls_layer_name(const char* value, size_t size);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>& cls_layer_name() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>* mutable_cls_layer_name();
  private:
  const std::string& _internal_cls_layer_name(int index) const;
  std::string* _internal_add_cls_layer_name();
  public:

  // repeated float stride = 9;
  int stride_size() const;
  private:
  int _internal_stride_size() const;
  public:
  void clear_stride();
  private:
  float _internal_stride(int index) const;
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
      _internal_stride() const;
  void _internal_add_stride(float value);
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
      _internal_mutable_stride();
  public:
  float stride(int index) const;
  void set_stride(int index, float value);
  void add_stride(float value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
      stride() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
      mutable_stride();

  // int32 num_classes = 1;
  void clear_num_classes();
  int32_t num_classes() const;
  void set_num_classes(int32_t value);
  private:
  int32_t _internal_num_classes() const;
  void _internal_set_num_classes(int32_t value);
  public:

  // int32 anchorCnt = 2;
  void clear_anchorcnt();
  int32_t anchorcnt() const;
  void set_anchorcnt(int32_t value);
  private:
  int32_t _internal_anchorcnt() const;
  void _internal_set_anchorcnt(int32_t value);
  public:

  // float conf_threshold = 3;
  void clear_conf_threshold();
  float conf_threshold() const;
  void set_conf_threshold(float value);
  private:
  float _internal_conf_threshold() const;
  void _internal_set_conf_threshold(float value);
  public:

  // float nms_threshold = 4;
  void clear_nms_threshold();
  float nms_threshold() const;
  void set_nms_threshold(float value);
  private:
  float _internal_nms_threshold() const;
  void _internal_set_nms_threshold(float value);
  public:

  // bool test_mAP = 6;
  void clear_test_map();
  bool test_map() const;
  void set_test_map(bool value);
  private:
  bool _internal_test_map() const;
  void _internal_set_test_map(bool value);
  public:

  // bool without_dfl = 12;
  void clear_without_dfl();
  bool without_dfl() const;
  void set_without_dfl(bool value);
  private:
  bool _internal_without_dfl() const;
  void _internal_set_without_dfl(bool value);
  public:

  // float max_boxes_num = 10;
  void clear_max_boxes_num();
  float max_boxes_num() const;
  void set_max_boxes_num(float value);
  private:
  float _internal_max_boxes_num() const;
  void _internal_set_max_boxes_num(float value);
  public:

  // float max_nms_num = 11;
  void clear_max_nms_num();
  float max_nms_num() const;
  void set_max_nms_num(float value);
  private:
  float _internal_max_nms_num() const;
  void _internal_set_max_nms_num(float value);
  public:

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.YoloV6Param)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    ::PROTOBUF_NAMESPACE_ID::RepeatedField< float > biases_;
    ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string> bbox_layer_name_;
    ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string> cls_layer_name_;
    ::PROTOBUF_NAMESPACE_ID::RepeatedField< float > stride_;
    int32_t num_classes_;
    int32_t anchorcnt_;
    float conf_threshold_;
    float nms_threshold_;
    bool test_map_;
    bool without_dfl_;
    float max_boxes_num_;
    float max_nms_num_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class YoloV7Param final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.YoloV7Param) */ {
 public:
  inline YoloV7Param() : YoloV7Param(nullptr) {}
  ~YoloV7Param() override;
  explicit PROTOBUF_CONSTEXPR YoloV7Param(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  YoloV7Param(const YoloV7Param& from);
  YoloV7Param(YoloV7Param&& from) noexcept
    : YoloV7Param() {
    *this = ::std::move(from);
  }

  inline YoloV7Param& operator=(const YoloV7Param& from) {
    CopyFrom(from);
    return *this;
  }
  inline YoloV7Param& operator=(YoloV7Param&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const YoloV7Param& default_instance() {
    return *internal_default_instance();
  }
  static inline const YoloV7Param* internal_default_instance() {
    return reinterpret_cast<const YoloV7Param*>(
               &_YoloV7Param_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    42;

  friend void swap(YoloV7Param& a, YoloV7Param& b) {
    a.Swap(&b);
  }
  inline void Swap(YoloV7Param* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(YoloV7Param* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  YoloV7Param* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<YoloV7Param>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const YoloV7Param& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom( const YoloV7Param& from) {
    YoloV7Param::MergeImpl(*this, from);
  }
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned);
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(YoloV7Param* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.YoloV7Param";
  }
  protected:
  explicit YoloV7Param(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kDetectLayerNameFieldNumber = 4,
    kBiasesFieldNumber = 5,
    kConfThreshFieldNumber = 1,
    kNmsThresholdFieldNumber = 2,
    kNumClassesFieldNumber = 3,
  };
  // repeated string detect_layer_name = 4;
  int detect_layer_name_size() const;
  private:
  int _internal_detect_layer_name_size() const;
  public:
  void clear_detect_layer_name();
  const std::string& detect_layer_name(int index) const;
  std::string* mutable_detect_layer_name(int index);
  void set_detect_layer_name(int index, const std::string& value);
  void set_detect_layer_name(int index, std::string&& value);
  void set_detect_layer_name(int index, const char* value);
  void set_detect_layer_name(int index, const char* value, size_t size);
  std::string* add_detect_layer_name();
  void add_detect_layer_name(const std::string& value);
  void add_detect_layer_name(std::string&& value);
  void add_detect_layer_name(const char* value);
  void add_detect_layer_name(const char* value, size_t size);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>& detect_layer_name() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>* mutable_detect_layer_name();
  private:
  const std::string& _internal_detect_layer_name(int index) const;
  std::string* _internal_add_detect_layer_name();
  public:

  // repeated float biases = 5;
  int biases_size() const;
  private:
  int _internal_biases_size() const;
  public:
  void clear_biases();
  private:
  float _internal_biases(int index) const;
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
      _internal_biases() const;
  void _internal_add_biases(float value);
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
      _internal_mutable_biases();
  public:
  float biases(int index) const;
  void set_biases(int index, float value);
  void add_biases(float value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
      biases() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
      mutable_biases();

  // float conf_thresh = 1;
  void clear_conf_thresh();
  float conf_thresh() const;
  void set_conf_thresh(float value);
  private:
  float _internal_conf_thresh() const;
  void _internal_set_conf_thresh(float value);
  public:

  // float nms_threshold = 2;
  void clear_nms_threshold();
  float nms_threshold() const;
  void set_nms_threshold(float value);
  private:
  float _internal_nms_threshold() const;
  void _internal_set_nms_threshold(float value);
  public:

  // int32 num_classes = 3;
  void clear_num_classes();
  int32_t num_classes() const;
  void set_num_classes(int32_t value);
  private:
  int32_t _internal_num_classes() const;
  void _internal_set_num_classes(int32_t value);
  public:

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.YoloV7Param)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string> detect_layer_name_;
    ::PROTOBUF_NAMESPACE_ID::RepeatedField< float > biases_;
    float conf_thresh_;
    float nms_threshold_;
    int32_t num_classes_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class YoloV8Param final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.YoloV8Param) */ {
 public:
  inline YoloV8Param() : YoloV8Param(nullptr) {}
  ~YoloV8Param() override;
  explicit PROTOBUF_CONSTEXPR YoloV8Param(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  YoloV8Param(const YoloV8Param& from);
  YoloV8Param(YoloV8Param&& from) noexcept
    : YoloV8Param() {
    *this = ::std::move(from);
  }

  inline YoloV8Param& operator=(const YoloV8Param& from) {
    CopyFrom(from);
    return *this;
  }
  inline YoloV8Param& operator=(YoloV8Param&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const YoloV8Param& default_instance() {
    return *internal_default_instance();
  }
  static inline const YoloV8Param* internal_default_instance() {
    return reinterpret_cast<const YoloV8Param*>(
               &_YoloV8Param_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    43;

  friend void swap(YoloV8Param& a, YoloV8Param& b) {
    a.Swap(&b);
  }
  inline void Swap(YoloV8Param* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(YoloV8Param* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  YoloV8Param* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<YoloV8Param>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const YoloV8Param& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom( const YoloV8Param& from) {
    YoloV8Param::MergeImpl(*this, from);
  }
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned);
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(YoloV8Param* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.YoloV8Param";
  }
  protected:
  explicit YoloV8Param(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kDetectLayerNameFieldNumber = 6,
    kStrideFieldNumber = 7,
    kConfThreshFieldNumber = 1,
    kMaxBoxesNumFieldNumber = 2,
    kNmsThresholdFieldNumber = 3,
    kMaxNmsNumFieldNumber = 4,
    kNumClassesFieldNumber = 5,
  };
  // repeated string detect_layer_name = 6;
  int detect_layer_name_size() const;
  private:
  int _internal_detect_layer_name_size() const;
  public:
  void clear_detect_layer_name();
  const std::string& detect_layer_name(int index) const;
  std::string* mutable_detect_layer_name(int index);
  void set_detect_layer_name(int index, const std::string& value);
  void set_detect_layer_name(int index, std::string&& value);
  void set_detect_layer_name(int index, const char* value);
  void set_detect_layer_name(int index, const char* value, size_t size);
  std::string* add_detect_layer_name();
  void add_detect_layer_name(const std::string& value);
  void add_detect_layer_name(std::string&& value);
  void add_detect_layer_name(const char* value);
  void add_detect_layer_name(const char* value, size_t size);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>& detect_layer_name() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>* mutable_detect_layer_name();
  private:
  const std::string& _internal_detect_layer_name(int index) const;
  std::string* _internal_add_detect_layer_name();
  public:

  // repeated float stride = 7;
  int stride_size() const;
  private:
  int _internal_stride_size() const;
  public:
  void clear_stride();
  private:
  float _internal_stride(int index) const;
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
      _internal_stride() const;
  void _internal_add_stride(float value);
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
      _internal_mutable_stride();
  public:
  float stride(int index) const;
  void set_stride(int index, float value);
  void add_stride(float value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
      stride() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
      mutable_stride();

  // float conf_thresh = 1;
  void clear_conf_thresh();
  float conf_thresh() const;
  void set_conf_thresh(float value);
  private:
  float _internal_conf_thresh() const;
  void _internal_set_conf_thresh(float value);
  public:

  // float max_boxes_num = 2;
  void clear_max_boxes_num();
  float max_boxes_num() const;
  void set_max_boxes_num(float value);
  private:
  float _internal_max_boxes_num() const;
  void _internal_set_max_boxes_num(float value);
  public:

  // float nms_threshold = 3;
  void clear_nms_threshold();
  float nms_threshold() const;
  void set_nms_threshold(float value);
  private:
  float _internal_nms_threshold() const;
  void _internal_set_nms_threshold(float value);
  public:

  // float max_nms_num = 4;
  void clear_max_nms_num();
  float max_nms_num() const;
  void set_max_nms_num(float value);
  private:
  float _internal_max_nms_num() const;
  void _internal_set_max_nms_num(float value);
  public:

  // int32 num_classes = 5;
  void clear_num_classes();
  int32_t num_classes() const;
  void set_num_classes(int32_t value);
  private:
  int32_t _internal_num_classes() const;
  void _internal_set_num_classes(int32_t value);
  public:

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.YoloV8Param)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string> detect_layer_name_;
    ::PROTOBUF_NAMESPACE_ID::RepeatedField< float > stride_;
    float conf_thresh_;
    float max_boxes_num_;
    float nms_threshold_;
    float max_nms_num_;
    int32_t num_classes_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class FcosParam final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.FcosParam) */ {
 public:
  inline FcosParam() : FcosParam(nullptr) {}
  ~FcosParam() override;
  explicit PROTOBUF_CONSTEXPR FcosParam(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  FcosParam(const FcosParam& from);
  FcosParam(FcosParam&& from) noexcept
    : FcosParam() {
    *this = ::std::move(from);
  }

  inline FcosParam& operator=(const FcosParam& from) {
    CopyFrom(from);
    return *this;
  }
  inline FcosParam& operator=(FcosParam&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const FcosParam& default_instance() {
    return *internal_default_instance();
  }
  static inline const FcosParam* internal_default_instance() {
    return reinterpret_cast<const FcosParam*>(
               &_FcosParam_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    44;

  friend void swap(FcosParam& a, FcosParam& b) {
    a.Swap(&b);
  }
  inline void Swap(FcosParam* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(FcosParam* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  FcosParam* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<FcosParam>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const FcosParam& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom( const FcosParam& from) {
    FcosParam::MergeImpl(*this, from);
  }
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned);
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(FcosParam* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.FcosParam";
  }
  protected:
  explicit FcosParam(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kCenterLayerNameFieldNumber = 6,
    kClsLayerNameFieldNumber = 7,
    kOffsetLayerNameFieldNumber = 8,
    kStrideFieldNumber = 9,
    kPreNmsThreshFieldNumber = 1,
    kPreNmsTopNFieldNumber = 2,
    kNmsThresholdFieldNumber = 3,
    kFpnPostNmsTopNFieldNumber = 4,
    kNumClassesFieldNumber = 5,
  };
  // repeated string center_layer_name = 6;
  int center_layer_name_size() const;
  private:
  int _internal_center_layer_name_size() const;
  public:
  void clear_center_layer_name();
  const std::string& center_layer_name(int index) const;
  std::string* mutable_center_layer_name(int index);
  void set_center_layer_name(int index, const std::string& value);
  void set_center_layer_name(int index, std::string&& value);
  void set_center_layer_name(int index, const char* value);
  void set_center_layer_name(int index, const char* value, size_t size);
  std::string* add_center_layer_name();
  void add_center_layer_name(const std::string& value);
  void add_center_layer_name(std::string&& value);
  void add_center_layer_name(const char* value);
  void add_center_layer_name(const char* value, size_t size);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>& center_layer_name() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>* mutable_center_layer_name();
  private:
  const std::string& _internal_center_layer_name(int index) const;
  std::string* _internal_add_center_layer_name();
  public:

  // repeated string cls_layer_name = 7;
  int cls_layer_name_size() const;
  private:
  int _internal_cls_layer_name_size() const;
  public:
  void clear_cls_layer_name();
  const std::string& cls_layer_name(int index) const;
  std::string* mutable_cls_layer_name(int index);
  void set_cls_layer_name(int index, const std::string& value);
  void set_cls_layer_name(int index, std::string&& value);
  void set_cls_layer_name(int index, const char* value);
  void set_cls_layer_name(int index, const char* value, size_t size);
  std::string* add_cls_layer_name();
  void add_cls_layer_name(const std::string& value);
  void add_cls_layer_name(std::string&& value);
  void add_cls_layer_name(const char* value);
  void add_cls_layer_name(const char* value, size_t size);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>& cls_layer_name() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>* mutable_cls_layer_name();
  private:
  const std::string& _internal_cls_layer_name(int index) const;
  std::string* _internal_add_cls_layer_name();
  public:

  // repeated string offset_layer_name = 8;
  int offset_layer_name_size() const;
  private:
  int _internal_offset_layer_name_size() const;
  public:
  void clear_offset_layer_name();
  const std::string& offset_layer_name(int index) const;
  std::string* mutable_offset_layer_name(int index);
  void set_offset_layer_name(int index, const std::string& value);
  void set_offset_layer_name(int index, std::string&& value);
  void set_offset_layer_name(int index, const char* value);
  void set_offset_layer_name(int index, const char* value, size_t size);
  std::string* add_offset_layer_name();
  void add_offset_layer_name(const std::string& value);
  void add_offset_layer_name(std::string&& value);
  void add_offset_layer_name(const char* value);
  void add_offset_layer_name(const char* value, size_t size);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>& offset_layer_name() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>* mutable_offset_layer_name();
  private:
  const std::string& _internal_offset_layer_name(int index) const;
  std::string* _internal_add_offset_layer_name();
  public:

  // repeated float stride = 9;
  int stride_size() const;
  private:
  int _internal_stride_size() const;
  public:
  void clear_stride();
  private:
  float _internal_stride(int index) const;
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
      _internal_stride() const;
  void _internal_add_stride(float value);
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
      _internal_mutable_stride();
  public:
  float stride(int index) const;
  void set_stride(int index, float value);
  void add_stride(float value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
      stride() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
      mutable_stride();

  // float pre_nms_thresh = 1;
  void clear_pre_nms_thresh();
  float pre_nms_thresh() const;
  void set_pre_nms_thresh(float value);
  private:
  float _internal_pre_nms_thresh() const;
  void _internal_set_pre_nms_thresh(float value);
  public:

  // int32 pre_nms_top_n = 2;
  void clear_pre_nms_top_n();
  int32_t pre_nms_top_n() const;
  void set_pre_nms_top_n(int32_t value);
  private:
  int32_t _internal_pre_nms_top_n() const;
  void _internal_set_pre_nms_top_n(int32_t value);
  public:

  // float nms_threshold = 3;
  void clear_nms_threshold();
  float nms_threshold() const;
  void set_nms_threshold(float value);
  private:
  float _internal_nms_threshold() const;
  void _internal_set_nms_threshold(float value);
  public:

  // float fpn_post_nms_top_n = 4;
  void clear_fpn_post_nms_top_n();
  float fpn_post_nms_top_n() const;
  void set_fpn_post_nms_top_n(float value);
  private:
  float _internal_fpn_post_nms_top_n() const;
  void _internal_set_fpn_post_nms_top_n(float value);
  public:

  // int32 num_classes = 5;
  void clear_num_classes();
  int32_t num_classes() const;
  void set_num_classes(int32_t value);
  private:
  int32_t _internal_num_classes() const;
  void _internal_set_num_classes(int32_t value);
  public:

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.FcosParam)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string> center_layer_name_;
    ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string> cls_layer_name_;
    ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string> offset_layer_name_;
    ::PROTOBUF_NAMESPACE_ID::RepeatedField< float > stride_;
    float pre_nms_thresh_;
    int32_t pre_nms_top_n_;
    float nms_threshold_;
    float fpn_post_nms_top_n_;
    int32_t num_classes_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class BTSParam final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.BTSParam) */ {
 public:
  inline BTSParam() : BTSParam(nullptr) {}
  ~BTSParam() override;
  explicit PROTOBUF_CONSTEXPR BTSParam(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  BTSParam(const BTSParam& from);
  BTSParam(BTSParam&& from) noexcept
    : BTSParam() {
    *this = ::std::move(from);
  }

  inline BTSParam& operator=(const BTSParam& from) {
    CopyFrom(from);
    return *this;
  }
  inline BTSParam& operator=(BTSParam&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const BTSParam& default_instance() {
    return *internal_default_instance();
  }
  static inline const BTSParam* internal_default_instance() {
    return reinterpret_cast<const BTSParam*>(
               &_BTSParam_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    45;

  friend void swap(BTSParam& a, BTSParam& b) {
    a.Swap(&b);
  }
  inline void Swap(BTSParam* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(BTSParam* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  BTSParam* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<BTSParam>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const BTSParam& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom( const BTSParam& from) {
    BTSParam::MergeImpl(*this, from);
  }
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned);
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(BTSParam* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.BTSParam";
  }
  protected:
  explicit BTSParam(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kMulFactorFieldNumber = 1,
    kDepthScaledFactorFieldNumber = 2,
    kHardSigmoidOutputScaleFieldNumber = 3,
    kMultipleOutputScaleFieldNumber = 4,
  };
  // float mul_factor = 1;
  void clear_mul_factor();
  float mul_factor() const;
  void set_mul_factor(float value);
  private:
  float _internal_mul_factor() const;
  void _internal_set_mul_factor(float value);
  public:

  // float depth_scaled_factor = 2;
  void clear_depth_scaled_factor();
  float depth_scaled_factor() const;
  void set_depth_scaled_factor(float value);
  private:
  float _internal_depth_scaled_factor() const;
  void _internal_set_depth_scaled_factor(float value);
  public:

  // float hard_sigmoid_output_scale = 3;
  void clear_hard_sigmoid_output_scale();
  float hard_sigmoid_output_scale() const;
  void set_hard_sigmoid_output_scale(float value);
  private:
  float _internal_hard_sigmoid_output_scale() const;
  void _internal_set_hard_sigmoid_output_scale(float value);
  public:

  // float multiple_output_scale = 4;
  void clear_multiple_output_scale();
  float multiple_output_scale() const;
  void set_multiple_output_scale(float value);
  private:
  float _internal_multiple_output_scale() const;
  void _internal_set_multiple_output_scale(float value);
  public:

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.BTSParam)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    float mul_factor_;
    float depth_scaled_factor_;
    float hard_sigmoid_output_scale_;
    float multiple_output_scale_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class PointPillarsBaseParam final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.PointPillarsBaseParam) */ {
 public:
  inline PointPillarsBaseParam() : PointPillarsBaseParam(nullptr) {}
  ~PointPillarsBaseParam() override;
  explicit PROTOBUF_CONSTEXPR PointPillarsBaseParam(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  PointPillarsBaseParam(const PointPillarsBaseParam& from);
  PointPillarsBaseParam(PointPillarsBaseParam&& from) noexcept
    : PointPillarsBaseParam() {
    *this = ::std::move(from);
  }

  inline PointPillarsBaseParam& operator=(const PointPillarsBaseParam& from) {
    CopyFrom(from);
    return *this;
  }
  inline PointPillarsBaseParam& operator=(PointPillarsBaseParam&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const PointPillarsBaseParam& default_instance() {
    return *internal_default_instance();
  }
  static inline const PointPillarsBaseParam* internal_default_instance() {
    return reinterpret_cast<const PointPillarsBaseParam*>(
               &_PointPillarsBaseParam_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    46;

  friend void swap(PointPillarsBaseParam& a, PointPillarsBaseParam& b) {
    a.Swap(&b);
  }
  inline void Swap(PointPillarsBaseParam* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(PointPillarsBaseParam* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  PointPillarsBaseParam* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<PointPillarsBaseParam>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const PointPillarsBaseParam& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom( const PointPillarsBaseParam& from) {
    PointPillarsBaseParam::MergeImpl(*this, from);
  }
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned);
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(PointPillarsBaseParam* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.PointPillarsBaseParam";
  }
  protected:
  explicit PointPillarsBaseParam(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kPointCloudRangeFieldNumber = 1,
    kVoxelSizeFieldNumber = 2,
    kPointsDimFieldNumber = 3,
    kMaxPointsNumFieldNumber = 4,
    kMaxVoxelsNumFieldNumber = 5,
    kInChannelsFieldNumber = 6,
  };
  // repeated float point_cloud_range = 1;
  int point_cloud_range_size() const;
  private:
  int _internal_point_cloud_range_size() const;
  public:
  void clear_point_cloud_range();
  private:
  float _internal_point_cloud_range(int index) const;
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
      _internal_point_cloud_range() const;
  void _internal_add_point_cloud_range(float value);
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
      _internal_mutable_point_cloud_range();
  public:
  float point_cloud_range(int index) const;
  void set_point_cloud_range(int index, float value);
  void add_point_cloud_range(float value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
      point_cloud_range() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
      mutable_point_cloud_range();

  // repeated float voxel_size = 2;
  int voxel_size_size() const;
  private:
  int _internal_voxel_size_size() const;
  public:
  void clear_voxel_size();
  private:
  float _internal_voxel_size(int index) const;
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
      _internal_voxel_size() const;
  void _internal_add_voxel_size(float value);
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
      _internal_mutable_voxel_size();
  public:
  float voxel_size(int index) const;
  void set_voxel_size(int index, float value);
  void add_voxel_size(float value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
      voxel_size() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
      mutable_voxel_size();

  // int32 points_dim = 3;
  void clear_points_dim();
  int32_t points_dim() const;
  void set_points_dim(int32_t value);
  private:
  int32_t _internal_points_dim() const;
  void _internal_set_points_dim(int32_t value);
  public:

  // int32 max_points_num = 4;
  void clear_max_points_num();
  int32_t max_points_num() const;
  void set_max_points_num(int32_t value);
  private:
  int32_t _internal_max_points_num() const;
  void _internal_set_max_points_num(int32_t value);
  public:

  // int32 max_voxels_num = 5;
  void clear_max_voxels_num();
  int32_t max_voxels_num() const;
  void set_max_voxels_num(int32_t value);
  private:
  int32_t _internal_max_voxels_num() const;
  void _internal_set_max_voxels_num(int32_t value);
  public:

  // int32 in_channels = 6;
  void clear_in_channels();
  int32_t in_channels() const;
  void set_in_channels(int32_t value);
  private:
  int32_t _internal_in_channels() const;
  void _internal_set_in_channels(int32_t value);
  public:

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.PointPillarsBaseParam)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    ::PROTOBUF_NAMESPACE_ID::RepeatedField< float > point_cloud_range_;
    ::PROTOBUF_NAMESPACE_ID::RepeatedField< float > voxel_size_;
    int32_t points_dim_;
    int32_t max_points_num_;
    int32_t max_voxels_num_;
    int32_t in_channels_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class PointPillarsKittiParam final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.PointPillarsKittiParam) */ {
 public:
  inline PointPillarsKittiParam() : PointPillarsKittiParam(nullptr) {}
  ~PointPillarsKittiParam() override;
  explicit PROTOBUF_CONSTEXPR PointPillarsKittiParam(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  PointPillarsKittiParam(const PointPillarsKittiParam& from);
  PointPillarsKittiParam(PointPillarsKittiParam&& from) noexcept
    : PointPillarsKittiParam() {
    *this = ::std::move(from);
  }

  inline PointPillarsKittiParam& operator=(const PointPillarsKittiParam& from) {
    CopyFrom(from);
    return *this;
  }
  inline PointPillarsKittiParam& operator=(PointPillarsKittiParam&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const PointPillarsKittiParam& default_instance() {
    return *internal_default_instance();
  }
  static inline const PointPillarsKittiParam* internal_default_instance() {
    return reinterpret_cast<const PointPillarsKittiParam*>(
               &_PointPillarsKittiParam_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    47;

  friend void swap(PointPillarsKittiParam& a, PointPillarsKittiParam& b) {
    a.Swap(&b);
  }
  inline void Swap(PointPillarsKittiParam* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(PointPillarsKittiParam* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  PointPillarsKittiParam* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<PointPillarsKittiParam>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const PointPillarsKittiParam& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom( const PointPillarsKittiParam& from) {
    PointPillarsKittiParam::MergeImpl(*this, from);
  }
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned);
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(PointPillarsKittiParam* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.PointPillarsKittiParam";
  }
  protected:
  explicit PointPillarsKittiParam(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kBaseFieldNumber = 1,
  };
  // .vitis.ai.proto.PointPillarsBaseParam base = 1;
  bool has_base() const;
  private:
  bool _internal_has_base() const;
  public:
  void clear_base();
  const ::vitis::ai::proto::PointPillarsBaseParam& base() const;
  PROTOBUF_NODISCARD ::vitis::ai::proto::PointPillarsBaseParam* release_base();
  ::vitis::ai::proto::PointPillarsBaseParam* mutable_base();
  void set_allocated_base(::vitis::ai::proto::PointPillarsBaseParam* base);
  private:
  const ::vitis::ai::proto::PointPillarsBaseParam& _internal_base() const;
  ::vitis::ai::proto::PointPillarsBaseParam* _internal_mutable_base();
  public:
  void unsafe_arena_set_allocated_base(
      ::vitis::ai::proto::PointPillarsBaseParam* base);
  ::vitis::ai::proto::PointPillarsBaseParam* unsafe_arena_release_base();

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.PointPillarsKittiParam)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    ::vitis::ai::proto::PointPillarsBaseParam* base_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class X_Autonomous3DParam_CenterPointOutputLayer final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.X_Autonomous3DParam.CenterPointOutputLayer) */ {
 public:
  inline X_Autonomous3DParam_CenterPointOutputLayer() : X_Autonomous3DParam_CenterPointOutputLayer(nullptr) {}
  ~X_Autonomous3DParam_CenterPointOutputLayer() override;
  explicit PROTOBUF_CONSTEXPR X_Autonomous3DParam_CenterPointOutputLayer(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  X_Autonomous3DParam_CenterPointOutputLayer(const X_Autonomous3DParam_CenterPointOutputLayer& from);
  X_Autonomous3DParam_CenterPointOutputLayer(X_Autonomous3DParam_CenterPointOutputLayer&& from) noexcept
    : X_Autonomous3DParam_CenterPointOutputLayer() {
    *this = ::std::move(from);
  }

  inline X_Autonomous3DParam_CenterPointOutputLayer& operator=(const X_Autonomous3DParam_CenterPointOutputLayer& from) {
    CopyFrom(from);
    return *this;
  }
  inline X_Autonomous3DParam_CenterPointOutputLayer& operator=(X_Autonomous3DParam_CenterPointOutputLayer&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const X_Autonomous3DParam_CenterPointOutputLayer& default_instance() {
    return *internal_default_instance();
  }
  static inline const X_Autonomous3DParam_CenterPointOutputLayer* internal_default_instance() {
    return reinterpret_cast<const X_Autonomous3DParam_CenterPointOutputLayer*>(
               &_X_Autonomous3DParam_CenterPointOutputLayer_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    48;

  friend void swap(X_Autonomous3DParam_CenterPointOutputLayer& a, X_Autonomous3DParam_CenterPointOutputLayer& b) {
    a.Swap(&b);
  }
  inline void Swap(X_Autonomous3DParam_CenterPointOutputLayer* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(X_Autonomous3DParam_CenterPointOutputLayer* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  X_Autonomous3DParam_CenterPointOutputLayer* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<X_Autonomous3DParam_CenterPointOutputLayer>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const X_Autonomous3DParam_CenterPointOutputLayer& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom( const X_Autonomous3DParam_CenterPointOutputLayer& from) {
    X_Autonomous3DParam_CenterPointOutputLayer::MergeImpl(*this, from);
  }
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned);
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(X_Autonomous3DParam_CenterPointOutputLayer* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.X_Autonomous3DParam.CenterPointOutputLayer";
  }
  protected:
  explicit X_Autonomous3DParam_CenterPointOutputLayer(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kRegLayerNameFieldNumber = 1,
    kHeightLayerNameFieldNumber = 2,
    kDimLayerNameFieldNumber = 3,
    kRotLayerNameFieldNumber = 4,
    kHeatmapLayerNameFieldNumber = 5,
    kIouQualityLayerNameFieldNumber = 6,
  };
  // string reg_layer_name = 1;
  void clear_reg_layer_name();
  const std::string& reg_layer_name() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_reg_layer_name(ArgT0&& arg0, ArgT... args);
  std::string* mutable_reg_layer_name();
  PROTOBUF_NODISCARD std::string* release_reg_layer_name();
  void set_allocated_reg_layer_name(std::string* reg_layer_name);
  private:
  const std::string& _internal_reg_layer_name() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_reg_layer_name(const std::string& value);
  std::string* _internal_mutable_reg_layer_name();
  public:

  // string height_layer_name = 2;
  void clear_height_layer_name();
  const std::string& height_layer_name() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_height_layer_name(ArgT0&& arg0, ArgT... args);
  std::string* mutable_height_layer_name();
  PROTOBUF_NODISCARD std::string* release_height_layer_name();
  void set_allocated_height_layer_name(std::string* height_layer_name);
  private:
  const std::string& _internal_height_layer_name() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_height_layer_name(const std::string& value);
  std::string* _internal_mutable_height_layer_name();
  public:

  // string dim_layer_name = 3;
  void clear_dim_layer_name();
  const std::string& dim_layer_name() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_dim_layer_name(ArgT0&& arg0, ArgT... args);
  std::string* mutable_dim_layer_name();
  PROTOBUF_NODISCARD std::string* release_dim_layer_name();
  void set_allocated_dim_layer_name(std::string* dim_layer_name);
  private:
  const std::string& _internal_dim_layer_name() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_dim_layer_name(const std::string& value);
  std::string* _internal_mutable_dim_layer_name();
  public:

  // string rot_layer_name = 4;
  void clear_rot_layer_name();
  const std::string& rot_layer_name() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_rot_layer_name(ArgT0&& arg0, ArgT... args);
  std::string* mutable_rot_layer_name();
  PROTOBUF_NODISCARD std::string* release_rot_layer_name();
  void set_allocated_rot_layer_name(std::string* rot_layer_name);
  private:
  const std::string& _internal_rot_layer_name() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_rot_layer_name(const std::string& value);
  std::string* _internal_mutable_rot_layer_name();
  public:

  // string heatmap_layer_name = 5;
  void clear_heatmap_layer_name();
  const std::string& heatmap_layer_name() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_heatmap_layer_name(ArgT0&& arg0, ArgT... args);
  std::string* mutable_heatmap_layer_name();
  PROTOBUF_NODISCARD std::string* release_heatmap_layer_name();
  void set_allocated_heatmap_layer_name(std::string* heatmap_layer_name);
  private:
  const std::string& _internal_heatmap_layer_name() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_heatmap_layer_name(const std::string& value);
  std::string* _internal_mutable_heatmap_layer_name();
  public:

  // string iou_quality_layer_name = 6;
  void clear_iou_quality_layer_name();
  const std::string& iou_quality_layer_name() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_iou_quality_layer_name(ArgT0&& arg0, ArgT... args);
  std::string* mutable_iou_quality_layer_name();
  PROTOBUF_NODISCARD std::string* release_iou_quality_layer_name();
  void set_allocated_iou_quality_layer_name(std::string* iou_quality_layer_name);
  private:
  const std::string& _internal_iou_quality_layer_name() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_iou_quality_layer_name(const std::string& value);
  std::string* _internal_mutable_iou_quality_layer_name();
  public:

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.X_Autonomous3DParam.CenterPointOutputLayer)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr reg_layer_name_;
    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr height_layer_name_;
    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr dim_layer_name_;
    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr rot_layer_name_;
    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr heatmap_layer_name_;
    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr iou_quality_layer_name_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class X_Autonomous3DParam final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.X_Autonomous3DParam) */ {
 public:
  inline X_Autonomous3DParam() : X_Autonomous3DParam(nullptr) {}
  ~X_Autonomous3DParam() override;
  explicit PROTOBUF_CONSTEXPR X_Autonomous3DParam(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  X_Autonomous3DParam(const X_Autonomous3DParam& from);
  X_Autonomous3DParam(X_Autonomous3DParam&& from) noexcept
    : X_Autonomous3DParam() {
    *this = ::std::move(from);
  }

  inline X_Autonomous3DParam& operator=(const X_Autonomous3DParam& from) {
    CopyFrom(from);
    return *this;
  }
  inline X_Autonomous3DParam& operator=(X_Autonomous3DParam&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const X_Autonomous3DParam& default_instance() {
    return *internal_default_instance();
  }
  static inline const X_Autonomous3DParam* internal_default_instance() {
    return reinterpret_cast<const X_Autonomous3DParam*>(
               &_X_Autonomous3DParam_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    49;

  friend void swap(X_Autonomous3DParam& a, X_Autonomous3DParam& b) {
    a.Swap(&b);
  }
  inline void Swap(X_Autonomous3DParam* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(X_Autonomous3DParam* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  X_Autonomous3DParam* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<X_Autonomous3DParam>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const X_Autonomous3DParam& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom( const X_Autonomous3DParam& from) {
    X_Autonomous3DParam::MergeImpl(*this, from);
  }
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned);
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(X_Autonomous3DParam* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.X_Autonomous3DParam";
  }
  protected:
  explicit X_Autonomous3DParam(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

  typedef X_Autonomous3DParam_CenterPointOutputLayer CenterPointOutputLayer;

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

  enum : int {
    kPointCloudRangeFieldNumber = 1,
    kVoxelSizeFieldNumber = 2,
    kIouQualityAlphaFieldNumber = 10,
    kPostPointCloudRangeFieldNumber = 11,
    kNmsThreshFieldNumber = 14,
    kOutputNamesFieldNumber = 7,
    kPointsDimFieldNumber = 3,
    kMaxPointsNumFieldNumber = 4,
    kMaxVoxelsNumFieldNumber = 5,
    kInChannelsFieldNumber = 6,
    kNumClassesFieldNumber = 8,
    kOutSizeFacterFieldNumber = 9,
    kBboxPreSizeFieldNumber = 12,
    kBboxMaxSizeFieldNumber = 13,
    kScoreThreshFieldNumber = 15,
  };
  // repeated float point_cloud_range = 1;
  int point_cloud_range_size() const;
  private:
  int _internal_point_cloud_range_size() const;
  public:
  void clear_point_cloud_range();
  private:
  float _internal_point_cloud_range(int index) const;
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
      _internal_point_cloud_range() const;
  void _internal_add_point_cloud_range(float value);
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
      _internal_mutable_point_cloud_range();
  public:
  float point_cloud_range(int index) const;
  void set_point_cloud_range(int index, float value);
  void add_point_cloud_range(float value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
      point_cloud_range() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
      mutable_point_cloud_range();

  // repeated float voxel_size = 2;
  int voxel_size_size() const;
  private:
  int _internal_voxel_size_size() const;
  public:
  void clear_voxel_size();
  private:
  float _internal_voxel_size(int index) const;
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
      _internal_voxel_size() const;
  void _internal_add_voxel_size(float value);
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
      _internal_mutable_voxel_size();
  public:
  float voxel_size(int index) const;
  void set_voxel_size(int index, float value);
  void add_voxel_size(float value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
      voxel_size() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
      mutable_voxel_size();

  // repeated float iou_quality_alpha = 10;
  int iou_quality_alpha_size() const;
  private:
  int _internal_iou_quality_alpha_size() const;
  public:
  void clear_iou_quality_alpha();
  private:
  float _internal_iou_quality_alpha(int index) const;
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
      _internal_iou_quality_alpha() const;
  void _internal_add_iou_quality_alpha(float value);
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
      _internal_mutable_iou_quality_alpha();
  public:
  float iou_quality_alpha(int index) const;
  void set_iou_quality_alpha(int index, float value);
  void add_iou_quality_alpha(float value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
      iou_quality_alpha() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
      mutable_iou_quality_alpha();

  // repeated float post_point_cloud_range = 11;
  int post_point_cloud_range_size() const;
  private:
  int _internal_post_point_cloud_range_size() const;
  public:
  void clear_post_point_cloud_range();
  private:
  float _internal_post_point_cloud_range(int index) const;
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
      _internal_post_point_cloud_range() const;
  void _internal_add_post_point_cloud_range(float value);
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
      _internal_mutable_post_point_cloud_range();
  public:
  float post_point_cloud_range(int index) const;
  void set_post_point_cloud_range(int index, float value);
  void add_post_point_cloud_range(float value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
      post_point_cloud_range() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
      mutable_post_point_cloud_range();

  // repeated float nms_thresh = 14;
  int nms_thresh_size() const;
  private:
  int _internal_nms_thresh_size() const;
  public:
  void clear_nms_thresh();
  private:
  float _internal_nms_thresh(int index) const;
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
      _internal_nms_thresh() const;
  void _internal_add_nms_thresh(float value);
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
      _internal_mutable_nms_thresh();
  public:
  float nms_thresh(int index) const;
  void set_nms_thresh(int index, float value);
  void add_nms_thresh(float value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
      nms_thresh() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
      mutable_nms_thresh();

  // .vitis.ai.proto.X_Autonomous3DParam.CenterPointOutputLayer output_names = 7;
  bool has_output_names() const;
  private:
  bool _internal_has_output_names() const;
  public:
  void clear_output_names();
  const ::vitis::ai::proto::X_Autonomous3DParam_CenterPointOutputLayer& output_names() const;
  PROTOBUF_NODISCARD ::vitis::ai::proto::X_Autonomous3DParam_CenterPointOutputLayer* release_output_names();
  ::vitis::ai::proto::X_Autonomous3DParam_CenterPointOutputLayer* mutable_output_names();
  void set_allocated_output_names(::vitis::ai::proto::X_Autonomous3DParam_CenterPointOutputLayer* output_names);
  private:
  const ::vitis::ai::proto::X_Autonomous3DParam_CenterPointOutputLayer& _internal_output_names() const;
  ::vitis::ai::proto::X_Autonomous3DParam_CenterPointOutputLayer* _internal_mutable_output_names();
  public:
  void unsafe_arena_set_allocated_output_names(
      ::vitis::ai::proto::X_Autonomous3DParam_CenterPointOutputLayer* output_names);
  ::vitis::ai::proto::X_Autonomous3DParam_CenterPointOutputLayer* unsafe_arena_release_output_names();

  // int32 points_dim = 3;
  void clear_points_dim();
  int32_t points_dim() const;
  void set_points_dim(int32_t value);
  private:
  int32_t _internal_points_dim() const;
  void _internal_set_points_dim(int32_t value);
  public:

  // int32 max_points_num = 4;
  void clear_max_points_num();
  int32_t max_points_num() const;
  void set_max_points_num(int32_t value);
  private:
  int32_t _internal_max_points_num() const;
  void _internal_set_max_points_num(int32_t value);
  public:

  // int32 max_voxels_num = 5;
  void clear_max_voxels_num();
  int32_t max_voxels_num() const;
  void set_max_voxels_num(int32_t value);
  private:
  int32_t _internal_max_voxels_num() const;
  void _internal_set_max_voxels_num(int32_t value);
  public:

  // int32 in_channels = 6;
  void clear_in_channels();
  int32_t in_channels() const;
  void set_in_channels(int32_t value);
  private:
  int32_t _internal_in_channels() const;
  void _internal_set_in_channels(int32_t value);
  public:

  // int32 num_classes = 8;
  void clear_num_classes();
  int32_t num_classes() const;
  void set_num_classes(int32_t value);
  private:
  int32_t _internal_num_classes() const;
  void _internal_set_num_classes(int32_t value);
  public:

  // float out_size_facter = 9;
  void clear_out_size_facter();
  float out_size_facter() const;
  void set_out_size_facter(float value);
  private:
  float _internal_out_size_facter() const;
  void _internal_set_out_size_facter(float value);
  public:

  // int32 bbox_pre_size = 12;
  void clear_bbox_pre_size();
  int32_t bbox_pre_size() const;
  void set_bbox_pre_size(int32_t value);
  private:
  int32_t _internal_bbox_pre_size() const;
  void _internal_set_bbox_pre_size(int32_t value);
  public:

  // int32 bbox_max_size = 13;
  void clear_bbox_max_size();
  int32_t bbox_max_size() const;
  void set_bbox_max_size(int32_t value);
  private:
  int32_t _internal_bbox_max_size() const;
  void _internal_set_bbox_max_size(int32_t value);
  public:

  // float score_thresh = 15;
  void clear_score_thresh();
  float score_thresh() const;
  void set_score_thresh(float value);
  private:
  float _internal_score_thresh() const;
  void _internal_set_score_thresh(float value);
  public:

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.X_Autonomous3DParam)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    ::PROTOBUF_NAMESPACE_ID::RepeatedField< float > point_cloud_range_;
    ::PROTOBUF_NAMESPACE_ID::RepeatedField< float > voxel_size_;
    ::PROTOBUF_NAMESPACE_ID::RepeatedField< float > iou_quality_alpha_;
    ::PROTOBUF_NAMESPACE_ID::RepeatedField< float > post_point_cloud_range_;
    ::PROTOBUF_NAMESPACE_ID::RepeatedField< float > nms_thresh_;
    ::vitis::ai::proto::X_Autonomous3DParam_CenterPointOutputLayer* output_names_;
    int32_t points_dim_;
    int32_t max_points_num_;
    int32_t max_voxels_num_;
    int32_t in_channels_;
    int32_t num_classes_;
    float out_size_facter_;
    int32_t bbox_pre_size_;
    int32_t bbox_max_size_;
    float score_thresh_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class EfficientDetD2Param_OutputInfo final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.EfficientDetD2Param.OutputInfo) */ {
 public:
  inline EfficientDetD2Param_OutputInfo() : EfficientDetD2Param_OutputInfo(nullptr) {}
  ~EfficientDetD2Param_OutputInfo() override;
  explicit PROTOBUF_CONSTEXPR EfficientDetD2Param_OutputInfo(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  EfficientDetD2Param_OutputInfo(const EfficientDetD2Param_OutputInfo& from);
  EfficientDetD2Param_OutputInfo(EfficientDetD2Param_OutputInfo&& from) noexcept
    : EfficientDetD2Param_OutputInfo() {
    *this = ::std::move(from);
  }

  inline EfficientDetD2Param_OutputInfo& operator=(const EfficientDetD2Param_OutputInfo& from) {
    CopyFrom(from);
    return *this;
  }
  inline EfficientDetD2Param_OutputInfo& operator=(EfficientDetD2Param_OutputInfo&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const EfficientDetD2Param_OutputInfo& default_instance() {
    return *internal_default_instance();
  }
  static inline const EfficientDetD2Param_OutputInfo* internal_default_instance() {
    return reinterpret_cast<const EfficientDetD2Param_OutputInfo*>(
               &_EfficientDetD2Param_OutputInfo_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    50;

  friend void swap(EfficientDetD2Param_OutputInfo& a, EfficientDetD2Param_OutputInfo& b) {
    a.Swap(&b);
  }
  inline void Swap(EfficientDetD2Param_OutputInfo* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(EfficientDetD2Param_OutputInfo* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  EfficientDetD2Param_OutputInfo* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<EfficientDetD2Param_OutputInfo>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const EfficientDetD2Param_OutputInfo& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom( const EfficientDetD2Param_OutputInfo& from) {
    EfficientDetD2Param_OutputInfo::MergeImpl(*this, from);
  }
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned);
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(EfficientDetD2Param_OutputInfo* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.EfficientDetD2Param.OutputInfo";
  }
  protected:
  explicit EfficientDetD2Param_OutputInfo(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kNameFieldNumber = 3,
    kTypeFieldNumber = 1,
    kLevelFieldNumber = 2,
  };
  // string name = 3;
  void clear_name();
  const std::string& name() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_name(ArgT0&& arg0, ArgT... args);
  std::string* mutable_name();
  PROTOBUF_NODISCARD std::string* release_name();
  void set_allocated_name(std::string* name);
  private:
  const std::string& _internal_name() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_name(const std::string& value);
  std::string* _internal_mutable_name();
  public:

  // .vitis.ai.proto.EfficientDetD2Param.OutputType type = 1;
  void clear_type();
  ::vitis::ai::proto::EfficientDetD2Param_OutputType type() const;
  void set_type(::vitis::ai::proto::EfficientDetD2Param_OutputType value);
  private:
  ::vitis::ai::proto::EfficientDetD2Param_OutputType _internal_type() const;
  void _internal_set_type(::vitis::ai::proto::EfficientDetD2Param_OutputType value);
  public:

  // int32 level = 2;
  void clear_level();
  int32_t level() const;
  void set_level(int32_t value);
  private:
  int32_t _internal_level() const;
  void _internal_set_level(int32_t value);
  public:

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.EfficientDetD2Param.OutputInfo)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr name_;
    int type_;
    int32_t level_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class EfficientDetD2Param_AnchorInfo final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.EfficientDetD2Param.AnchorInfo) */ {
 public:
  inline EfficientDetD2Param_AnchorInfo() : EfficientDetD2Param_AnchorInfo(nullptr) {}
  ~EfficientDetD2Param_AnchorInfo() override;
  explicit PROTOBUF_CONSTEXPR EfficientDetD2Param_AnchorInfo(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  EfficientDetD2Param_AnchorInfo(const EfficientDetD2Param_AnchorInfo& from);
  EfficientDetD2Param_AnchorInfo(EfficientDetD2Param_AnchorInfo&& from) noexcept
    : EfficientDetD2Param_AnchorInfo() {
    *this = ::std::move(from);
  }

  inline EfficientDetD2Param_AnchorInfo& operator=(const EfficientDetD2Param_AnchorInfo& from) {
    CopyFrom(from);
    return *this;
  }
  inline EfficientDetD2Param_AnchorInfo& operator=(EfficientDetD2Param_AnchorInfo&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const EfficientDetD2Param_AnchorInfo& default_instance() {
    return *internal_default_instance();
  }
  static inline const EfficientDetD2Param_AnchorInfo* internal_default_instance() {
    return reinterpret_cast<const EfficientDetD2Param_AnchorInfo*>(
               &_EfficientDetD2Param_AnchorInfo_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    51;

  friend void swap(EfficientDetD2Param_AnchorInfo& a, EfficientDetD2Param_AnchorInfo& b) {
    a.Swap(&b);
  }
  inline void Swap(EfficientDetD2Param_AnchorInfo* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(EfficientDetD2Param_AnchorInfo* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  EfficientDetD2Param_AnchorInfo* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<EfficientDetD2Param_AnchorInfo>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const EfficientDetD2Param_AnchorInfo& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom( const EfficientDetD2Param_AnchorInfo& from) {
    EfficientDetD2Param_AnchorInfo::MergeImpl(*this, from);
  }
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned);
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(EfficientDetD2Param_AnchorInfo* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.EfficientDetD2Param.AnchorInfo";
  }
  protected:
  explicit EfficientDetD2Param_AnchorInfo(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kAnchorScalesFieldNumber = 4,
    kAspectRatioFieldNumber = 5,
    kMinLevelFieldNumber = 1,
    kMaxLevelFieldNumber = 2,
    kNumScalesFieldNumber = 3,
    kImageWidthFieldNumber = 6,
    kImageHeightFieldNumber = 7,
  };
  // repeated float anchor_scales = 4;
  int anchor_scales_size() const;
  private:
  int _internal_anchor_scales_size() const;
  public:
  void clear_anchor_scales();
  private:
  float _internal_anchor_scales(int index) const;
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
      _internal_anchor_scales() const;
  void _internal_add_anchor_scales(float value);
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
      _internal_mutable_anchor_scales();
  public:
  float anchor_scales(int index) const;
  void set_anchor_scales(int index, float value);
  void add_anchor_scales(float value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
      anchor_scales() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
      mutable_anchor_scales();

  // repeated float aspect_ratio = 5;
  int aspect_ratio_size() const;
  private:
  int _internal_aspect_ratio_size() const;
  public:
  void clear_aspect_ratio();
  private:
  float _internal_aspect_ratio(int index) const;
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
      _internal_aspect_ratio() const;
  void _internal_add_aspect_ratio(float value);
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
      _internal_mutable_aspect_ratio();
  public:
  float aspect_ratio(int index) const;
  void set_aspect_ratio(int index, float value);
  void add_aspect_ratio(float value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
      aspect_ratio() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
      mutable_aspect_ratio();

  // int32 min_level = 1;
  void clear_min_level();
  int32_t min_level() const;
  void set_min_level(int32_t value);
  private:
  int32_t _internal_min_level() const;
  void _internal_set_min_level(int32_t value);
  public:

  // int32 max_level = 2;
  void clear_max_level();
  int32_t max_level() const;
  void set_max_level(int32_t value);
  private:
  int32_t _internal_max_level() const;
  void _internal_set_max_level(int32_t value);
  public:

  // int32 num_scales = 3;
  void clear_num_scales();
  int32_t num_scales() const;
  void set_num_scales(int32_t value);
  private:
  int32_t _internal_num_scales() const;
  void _internal_set_num_scales(int32_t value);
  public:

  // int32 image_width = 6;
  void clear_image_width();
  int32_t image_width() const;
  void set_image_width(int32_t value);
  private:
  int32_t _internal_image_width() const;
  void _internal_set_image_width(int32_t value);
  public:

  // int32 image_height = 7;
  void clear_image_height();
  int32_t image_height() const;
  void set_image_height(int32_t value);
  private:
  int32_t _internal_image_height() const;
  void _internal_set_image_height(int32_t value);
  public:

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.EfficientDetD2Param.AnchorInfo)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    ::PROTOBUF_NAMESPACE_ID::RepeatedField< float > anchor_scales_;
    ::PROTOBUF_NAMESPACE_ID::RepeatedField< float > aspect_ratio_;
    int32_t min_level_;
    int32_t max_level_;
    int32_t num_scales_;
    int32_t image_width_;
    int32_t image_height_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class EfficientDetD2Param final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.EfficientDetD2Param) */ {
 public:
  inline EfficientDetD2Param() : EfficientDetD2Param(nullptr) {}
  ~EfficientDetD2Param() override;
  explicit PROTOBUF_CONSTEXPR EfficientDetD2Param(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  EfficientDetD2Param(const EfficientDetD2Param& from);
  EfficientDetD2Param(EfficientDetD2Param&& from) noexcept
    : EfficientDetD2Param() {
    *this = ::std::move(from);
  }

  inline EfficientDetD2Param& operator=(const EfficientDetD2Param& from) {
    CopyFrom(from);
    return *this;
  }
  inline EfficientDetD2Param& operator=(EfficientDetD2Param&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const EfficientDetD2Param& default_instance() {
    return *internal_default_instance();
  }
  static inline const EfficientDetD2Param* internal_default_instance() {
    return reinterpret_cast<const EfficientDetD2Param*>(
               &_EfficientDetD2Param_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    52;

  friend void swap(EfficientDetD2Param& a, EfficientDetD2Param& b) {
    a.Swap(&b);
  }
  inline void Swap(EfficientDetD2Param* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(EfficientDetD2Param* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  EfficientDetD2Param* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<EfficientDetD2Param>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const EfficientDetD2Param& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom( const EfficientDetD2Param& from) {
    EfficientDetD2Param::MergeImpl(*this, from);
  }
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned);
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(EfficientDetD2Param* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.EfficientDetD2Param";
  }
  protected:
  explicit EfficientDetD2Param(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

  typedef EfficientDetD2Param_OutputInfo OutputInfo;
  typedef EfficientDetD2Param_AnchorInfo AnchorInfo;

  typedef EfficientDetD2Param_OutputType OutputType;
  static constexpr OutputType USELESS =
    EfficientDetD2Param_OutputType_USELESS;
  static constexpr OutputType CONF =
    EfficientDetD2Param_OutputType_CONF;
  static constexpr OutputType BBOX =
    EfficientDetD2Param_OutputType_BBOX;
  static inline bool OutputType_IsValid(int value) {
    return EfficientDetD2Param_OutputType_IsValid(value);
  }
  static constexpr OutputType OutputType_MIN =
    EfficientDetD2Param_OutputType_OutputType_MIN;
  static constexpr OutputType OutputType_MAX =
    EfficientDetD2Param_OutputType_OutputType_MAX;
  static constexpr int OutputType_ARRAYSIZE =
    EfficientDetD2Param_OutputType_OutputType_ARRAYSIZE;
  static inline const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor*
  OutputType_descriptor() {
    return EfficientDetD2Param_OutputType_descriptor();
  }
  template<typename T>
  static inline const std::string& OutputType_Name(T enum_t_value) {
    static_assert(::std::is_same<T, OutputType>::value ||
      ::std::is_integral<T>::value,
      "Incorrect type passed to function OutputType_Name.");
    return EfficientDetD2Param_OutputType_Name(enum_t_value);
  }
  static inline bool OutputType_Parse(::PROTOBUF_NAMESPACE_ID::ConstStringParam name,
      OutputType* value) {
    return EfficientDetD2Param_OutputType_Parse(name, value);
  }

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

  enum : int {
    kOutputInfoFieldNumber = 7,
    kAnchorInfoFieldNumber = 1,
    kNumClassesFieldNumber = 2,
    kPreNmsNumFieldNumber = 3,
    kNmsThresholdFieldNumber = 4,
    kConfThresholdFieldNumber = 5,
    kNmsOutputNumFieldNumber = 6,
  };
  // repeated .vitis.ai.proto.EfficientDetD2Param.OutputInfo output_info = 7;
  int output_info_size() const;
  private:
  int _internal_output_info_size() const;
  public:
  void clear_output_info();
  ::vitis::ai::proto::EfficientDetD2Param_OutputInfo* mutable_output_info(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::EfficientDetD2Param_OutputInfo >*
      mutable_output_info();
  private:
  const ::vitis::ai::proto::EfficientDetD2Param_OutputInfo& _internal_output_info(int index) const;
  ::vitis::ai::proto::EfficientDetD2Param_OutputInfo* _internal_add_output_info();
  public:
  const ::vitis::ai::proto::EfficientDetD2Param_OutputInfo& output_info(int index) const;
  ::vitis::ai::proto::EfficientDetD2Param_OutputInfo* add_output_info();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::EfficientDetD2Param_OutputInfo >&
      output_info() const;

  // .vitis.ai.proto.EfficientDetD2Param.AnchorInfo anchor_info = 1;
  bool has_anchor_info() const;
  private:
  bool _internal_has_anchor_info() const;
  public:
  void clear_anchor_info();
  const ::vitis::ai::proto::EfficientDetD2Param_AnchorInfo& anchor_info() const;
  PROTOBUF_NODISCARD ::vitis::ai::proto::EfficientDetD2Param_AnchorInfo* release_anchor_info();
  ::vitis::ai::proto::EfficientDetD2Param_AnchorInfo* mutable_anchor_info();
  void set_allocated_anchor_info(::vitis::ai::proto::EfficientDetD2Param_AnchorInfo* anchor_info);
  private:
  const ::vitis::ai::proto::EfficientDetD2Param_AnchorInfo& _internal_anchor_info() const;
  ::vitis::ai::proto::EfficientDetD2Param_AnchorInfo* _internal_mutable_anchor_info();
  public:
  void unsafe_arena_set_allocated_anchor_info(
      ::vitis::ai::proto::EfficientDetD2Param_AnchorInfo* anchor_info);
  ::vitis::ai::proto::EfficientDetD2Param_AnchorInfo* unsafe_arena_release_anchor_info();

  // int32 num_classes = 2;
  void clear_num_classes();
  int32_t num_classes() const;
  void set_num_classes(int32_t value);
  private:
  int32_t _internal_num_classes() const;
  void _internal_set_num_classes(int32_t value);
  public:

  // int32 pre_nms_num = 3;
  void clear_pre_nms_num();
  int32_t pre_nms_num() const;
  void set_pre_nms_num(int32_t value);
  private:
  int32_t _internal_pre_nms_num() const;
  void _internal_set_pre_nms_num(int32_t value);
  public:

  // float nms_threshold = 4;
  void clear_nms_threshold();
  float nms_threshold() const;
  void set_nms_threshold(float value);
  private:
  float _internal_nms_threshold() const;
  void _internal_set_nms_threshold(float value);
  public:

  // float conf_threshold = 5;
  void clear_conf_threshold();
  float conf_threshold() const;
  void set_conf_threshold(float value);
  private:
  float _internal_conf_threshold() const;
  void _internal_set_conf_threshold(float value);
  public:

  // int32 nms_output_num = 6;
  void clear_nms_output_num();
  int32_t nms_output_num() const;
  void set_nms_output_num(int32_t value);
  private:
  int32_t _internal_nms_output_num() const;
  void _internal_set_nms_output_num(int32_t value);
  public:

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.EfficientDetD2Param)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::EfficientDetD2Param_OutputInfo > output_info_;
    ::vitis::ai::proto::EfficientDetD2Param_AnchorInfo* anchor_info_;
    int32_t num_classes_;
    int32_t pre_nms_num_;
    float nms_threshold_;
    float conf_threshold_;
    int32_t nms_output_num_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class SubgraphParam_InputParam final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.SubgraphParam.InputParam) */ {
 public:
  inline SubgraphParam_InputParam() : SubgraphParam_InputParam(nullptr) {}
  ~SubgraphParam_InputParam() override;
  explicit PROTOBUF_CONSTEXPR SubgraphParam_InputParam(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  SubgraphParam_InputParam(const SubgraphParam_InputParam& from);
  SubgraphParam_InputParam(SubgraphParam_InputParam&& from) noexcept
    : SubgraphParam_InputParam() {
    *this = ::std::move(from);
  }

  inline SubgraphParam_InputParam& operator=(const SubgraphParam_InputParam& from) {
    CopyFrom(from);
    return *this;
  }
  inline SubgraphParam_InputParam& operator=(SubgraphParam_InputParam&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const SubgraphParam_InputParam& default_instance() {
    return *internal_default_instance();
  }
  static inline const SubgraphParam_InputParam* internal_default_instance() {
    return reinterpret_cast<const SubgraphParam_InputParam*>(
               &_SubgraphParam_InputParam_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    53;

  friend void swap(SubgraphParam_InputParam& a, SubgraphParam_InputParam& b) {
    a.Swap(&b);
  }
  inline void Swap(SubgraphParam_InputParam* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(SubgraphParam_InputParam* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  SubgraphParam_InputParam* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<SubgraphParam_InputParam>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const SubgraphParam_InputParam& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom( const SubgraphParam_InputParam& from) {
    SubgraphParam_InputParam::MergeImpl(*this, from);
  }
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned);
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(SubgraphParam_InputParam* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.SubgraphParam.InputParam";
  }
  protected:
  explicit SubgraphParam_InputParam(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kNameFieldNumber = 1,
    kPreviousOutputTensorFieldNumber = 3,
    kPreviousModelIdxFieldNumber = 2,
  };
  // string name = 1;
  void clear_name();
  const std::string& name() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_name(ArgT0&& arg0, ArgT... args);
  std::string* mutable_name();
  PROTOBUF_NODISCARD std::string* release_name();
  void set_allocated_name(std::string* name);
  private:
  const std::string& _internal_name() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_name(const std::string& value);
  std::string* _internal_mutable_name();
  public:

  // string previous_output_tensor = 3;
  void clear_previous_output_tensor();
  const std::string& previous_output_tensor() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_previous_output_tensor(ArgT0&& arg0, ArgT... args);
  std::string* mutable_previous_output_tensor();
  PROTOBUF_NODISCARD std::string* release_previous_output_tensor();
  void set_allocated_previous_output_tensor(std::string* previous_output_tensor);
  private:
  const std::string& _internal_previous_output_tensor() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_previous_output_tensor(const std::string& value);
  std::string* _internal_mutable_previous_output_tensor();
  public:

  // int32 previous_model_idx = 2;
  void clear_previous_model_idx();
  int32_t previous_model_idx() const;
  void set_previous_model_idx(int32_t value);
  private:
  int32_t _internal_previous_model_idx() const;
  void _internal_set_previous_model_idx(int32_t value);
  public:

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.SubgraphParam.InputParam)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr name_;
    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr previous_output_tensor_;
    int32_t previous_model_idx_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class SubgraphParam final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.SubgraphParam) */ {
 public:
  inline SubgraphParam() : SubgraphParam(nullptr) {}
  ~SubgraphParam() override;
  explicit PROTOBUF_CONSTEXPR SubgraphParam(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  SubgraphParam(const SubgraphParam& from);
  SubgraphParam(SubgraphParam&& from) noexcept
    : SubgraphParam() {
    *this = ::std::move(from);
  }

  inline SubgraphParam& operator=(const SubgraphParam& from) {
    CopyFrom(from);
    return *this;
  }
  inline SubgraphParam& operator=(SubgraphParam&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const SubgraphParam& default_instance() {
    return *internal_default_instance();
  }
  static inline const SubgraphParam* internal_default_instance() {
    return reinterpret_cast<const SubgraphParam*>(
               &_SubgraphParam_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    54;

  friend void swap(SubgraphParam& a, SubgraphParam& b) {
    a.Swap(&b);
  }
  inline void Swap(SubgraphParam* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(SubgraphParam* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  SubgraphParam* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<SubgraphParam>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const SubgraphParam& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom( const SubgraphParam& from) {
    SubgraphParam::MergeImpl(*this, from);
  }
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned);
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(SubgraphParam* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.SubgraphParam";
  }
  protected:
  explicit SubgraphParam(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

  typedef SubgraphParam_InputParam InputParam;

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

  enum : int {
    kInputFieldNumber = 3,
    kSubgraphIdxFieldNumber = 2,
    kCyclesFieldNumber = 1,
  };
  // repeated .vitis.ai.proto.SubgraphParam.InputParam input = 3;
  int input_size() const;
  private:
  int _internal_input_size() const;
  public:
  void clear_input();
  ::vitis::ai::proto::SubgraphParam_InputParam* mutable_input(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::SubgraphParam_InputParam >*
      mutable_input();
  private:
  const ::vitis::ai::proto::SubgraphParam_InputParam& _internal_input(int index) const;
  ::vitis::ai::proto::SubgraphParam_InputParam* _internal_add_input();
  public:
  const ::vitis::ai::proto::SubgraphParam_InputParam& input(int index) const;
  ::vitis::ai::proto::SubgraphParam_InputParam* add_input();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::SubgraphParam_InputParam >&
      input() const;

  // string subgraph_idx = 2;
  void clear_subgraph_idx();
  const std::string& subgraph_idx() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_subgraph_idx(ArgT0&& arg0, ArgT... args);
  std::string* mutable_subgraph_idx();
  PROTOBUF_NODISCARD std::string* release_subgraph_idx();
  void set_allocated_subgraph_idx(std::string* subgraph_idx);
  private:
  const std::string& _internal_subgraph_idx() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_subgraph_idx(const std::string& value);
  std::string* _internal_mutable_subgraph_idx();
  public:

  // int32 cycles = 1;
  void clear_cycles();
  int32_t cycles() const;
  void set_cycles(int32_t value);
  private:
  int32_t _internal_cycles() const;
  void _internal_set_cycles(int32_t value);
  public:

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.SubgraphParam)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::SubgraphParam_InputParam > input_;
    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr subgraph_idx_;
    int32_t cycles_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class DpuModelParam final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.DpuModelParam) */ {
 public:
  inline DpuModelParam() : DpuModelParam(nullptr) {}
  ~DpuModelParam() override;
  explicit PROTOBUF_CONSTEXPR DpuModelParam(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  DpuModelParam(const DpuModelParam& from);
  DpuModelParam(DpuModelParam&& from) noexcept
    : DpuModelParam() {
    *this = ::std::move(from);
  }

  inline DpuModelParam& operator=(const DpuModelParam& from) {
    CopyFrom(from);
    return *this;
  }
  inline DpuModelParam& operator=(DpuModelParam&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const DpuModelParam& default_instance() {
    return *internal_default_instance();
  }
  static inline const DpuModelParam* internal_default_instance() {
    return reinterpret_cast<const DpuModelParam*>(
               &_DpuModelParam_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    55;

  friend void swap(DpuModelParam& a, DpuModelParam& b) {
    a.Swap(&b);
  }
  inline void Swap(DpuModelParam* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(DpuModelParam* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  DpuModelParam* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<DpuModelParam>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const DpuModelParam& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom( const DpuModelParam& from) {
    DpuModelParam::MergeImpl(*this, from);
  }
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned);
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(DpuModelParam* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.DpuModelParam";
  }
  protected:
  explicit DpuModelParam(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

  typedef DpuModelParam_ModelType ModelType;
  static constexpr ModelType UNKNOWN_TYPE =
    DpuModelParam_ModelType_UNKNOWN_TYPE;
  static constexpr ModelType REFINEDET =
    DpuModelParam_ModelType_REFINEDET;
  static constexpr ModelType SSD =
    DpuModelParam_ModelType_SSD;
  static constexpr ModelType YOLOv3 =
    DpuModelParam_ModelType_YOLOv3;
  static constexpr ModelType CLASSIFICATION =
    DpuModelParam_ModelType_CLASSIFICATION;
  static constexpr ModelType DENSE_BOX =
    DpuModelParam_ModelType_DENSE_BOX;
  static constexpr ModelType MULTI_TASK =
    DpuModelParam_ModelType_MULTI_TASK;
  static constexpr ModelType OPENPOSE =
    DpuModelParam_ModelType_OPENPOSE;
  static constexpr ModelType ROADLINE =
    DpuModelParam_ModelType_ROADLINE;
  static constexpr ModelType SEGMENTATION =
    DpuModelParam_ModelType_SEGMENTATION;
  static constexpr ModelType POSEDETECT =
    DpuModelParam_ModelType_POSEDETECT;
  static constexpr ModelType LANE =
    DpuModelParam_ModelType_LANE;
  static constexpr ModelType BLINKER =
    DpuModelParam_ModelType_BLINKER;
  static constexpr ModelType SEGDET =
    DpuModelParam_ModelType_SEGDET;
  static constexpr ModelType ROADLINE_DEEPHI =
    DpuModelParam_ModelType_ROADLINE_DEEPHI;
  static constexpr ModelType FACEQUALITY5PT =
    DpuModelParam_ModelType_FACEQUALITY5PT;
  static constexpr ModelType REID =
    DpuModelParam_ModelType_REID;
  static constexpr ModelType YOLOv2 =
    DpuModelParam_ModelType_YOLOv2;
  static constexpr ModelType TFSSD =
    DpuModelParam_ModelType_TFSSD;
  static constexpr ModelType FACELANDMARK =
    DpuModelParam_ModelType_FACELANDMARK;
  static constexpr ModelType PLATEDETECT =
    DpuModelParam_ModelType_PLATEDETECT;
  static constexpr ModelType PLATENUM =
    DpuModelParam_ModelType_PLATENUM;
  static constexpr ModelType PLATERECOG =
    DpuModelParam_ModelType_PLATERECOG;
  static constexpr ModelType FACEFEATURE =
    DpuModelParam_ModelType_FACEFEATURE;
  static constexpr ModelType SEGMENTATION8UC1 =
    DpuModelParam_ModelType_SEGMENTATION8UC1;
  static constexpr ModelType SEGMENTATION8UC3 =
    DpuModelParam_ModelType_SEGMENTATION8UC3;
  static constexpr ModelType MEDICALSEGMENTATION =
    DpuModelParam_ModelType_MEDICALSEGMENTATION;
  static constexpr ModelType MULTITASK8UC1 =
    DpuModelParam_ModelType_MULTITASK8UC1;
  static constexpr ModelType MULTITASK8UC3 =
    DpuModelParam_ModelType_MULTITASK8UC3;
  static constexpr ModelType MEDICALREFINEDET =
    DpuModelParam_ModelType_MEDICALREFINEDET;
  static constexpr ModelType FACEDETECTRECOG =
    DpuModelParam_ModelType_FACEDETECTRECOG;
  static constexpr ModelType HOURGLASS =
    DpuModelParam_ModelType_HOURGLASS;
  static constexpr ModelType RETINAFACE =
    DpuModelParam_ModelType_RETINAFACE;
  static constexpr ModelType TFREFINEDET =
    DpuModelParam_ModelType_TFREFINEDET;
  static constexpr ModelType POINTPILLARS_NUS =
    DpuModelParam_ModelType_POINTPILLARS_NUS;
  static constexpr ModelType YOLOv5 =
    DpuModelParam_ModelType_YOLOv5;
  static constexpr ModelType BTSParam =
    DpuModelParam_ModelType_BTSParam;
  static constexpr ModelType FAIRMOT =
    DpuModelParam_ModelType_FAIRMOT;
  static constexpr ModelType X_AUTONOMOUS3D =
    DpuModelParam_ModelType_X_AUTONOMOUS3D;
  static constexpr ModelType POINTPILLARS =
    DpuModelParam_ModelType_POINTPILLARS;
  static constexpr ModelType SOLO =
    DpuModelParam_ModelType_SOLO;
  static constexpr ModelType VEHICLECLASSIFICATION =
    DpuModelParam_ModelType_VEHICLECLASSIFICATION;
  static constexpr ModelType EFFICIENTDET_D2 =
    DpuModelParam_ModelType_EFFICIENTDET_D2;
  static constexpr ModelType MOVENET =
    DpuModelParam_ModelType_MOVENET;
  static constexpr ModelType YOLOv6 =
    DpuModelParam_ModelType_YOLOv6;
  static constexpr ModelType FCOS =
    DpuModelParam_ModelType_FCOS;
  static constexpr ModelType YOLOv8 =
    DpuModelParam_ModelType_YOLOv8;
  static constexpr ModelType YOLOv7 =
    DpuModelParam_ModelType_YOLOv7;
  static inline bool ModelType_IsValid(int value) {
    return DpuModelParam_ModelType_IsValid(value);
  }
  static constexpr ModelType ModelType_MIN =
    DpuModelParam_ModelType_ModelType_MIN;
  static constexpr ModelType ModelType_MAX =
    DpuModelParam_ModelType_ModelType_MAX;
  static constexpr int ModelType_ARRAYSIZE =
    DpuModelParam_ModelType_ModelType_ARRAYSIZE;
  static inline const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor*
  ModelType_descriptor() {
    return DpuModelParam_ModelType_descriptor();
  }
  template<typename T>
  static inline const std::string& ModelType_Name(T enum_t_value) {
    static_assert(::std::is_same<T, ModelType>::value ||
      ::std::is_integral<T>::value,
      "Incorrect type passed to function ModelType_Name.");
    return DpuModelParam_ModelType_Name(enum_t_value);
  }
  static inline bool ModelType_Parse(::PROTOBUF_NAMESPACE_ID::ConstStringParam name,
      ModelType* value) {
    return DpuModelParam_ModelType_Parse(name, value);
  }

  typedef DpuModelParam_OrderType OrderType;
  static constexpr OrderType UNKNOWNORDER =
    DpuModelParam_OrderType_UNKNOWNORDER;
  static constexpr OrderType BGR =
    DpuModelParam_OrderType_BGR;
  static constexpr OrderType RGB =
    DpuModelParam_OrderType_RGB;
  static constexpr OrderType GREY =
    DpuModelParam_OrderType_GREY;
  static inline bool OrderType_IsValid(int value) {
    return DpuModelParam_OrderType_IsValid(value);
  }
  static constexpr OrderType OrderType_MIN =
    DpuModelParam_OrderType_OrderType_MIN;
  static constexpr OrderType OrderType_MAX =
    DpuModelParam_OrderType_OrderType_MAX;
  static constexpr int OrderType_ARRAYSIZE =
    DpuModelParam_OrderType_OrderType_ARRAYSIZE;
  static inline const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor*
  OrderType_descriptor() {
    return DpuModelParam_OrderType_descriptor();
  }
  template<typename T>
  static inline const std::string& OrderType_Name(T enum_t_value) {
    static_assert(::std::is_same<T, OrderType>::value ||
      ::std::is_integral<T>::value,
      "Incorrect type passed to function OrderType_Name.");
    return DpuModelParam_OrderType_Name(enum_t_value);
  }
  static inline bool OrderType_Parse(::PROTOBUF_NAMESPACE_ID::ConstStringParam name,
      OrderType* value) {
    return DpuModelParam_OrderType_Parse(name, value);
  }

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

  enum : int {
    kKernelFieldNumber = 2,
    kSubgraphFieldNumber = 35,
    kNameFieldNumber = 1,
    kRefineDetParamFieldNumber = 4,
    kYoloV3ParamFieldNumber = 5,
    kSsdParamFieldNumber = 6,
    kClassificationParamFieldNumber = 7,
    kDenseBoxParamFieldNumber = 8,
    kMultiTaskParamFieldNumber = 9,
    kRoadlineParamFieldNumber = 10,
    kSegmentationParamFieldNumber = 11,
    kLaneParamFieldNumber = 12,
    kBlinkerParamFieldNumber = 13,
    kSegdetParamFieldNumber = 14,
    kRoadlineDpParamFieldNumber = 15,
    kFaceQuality5PtParamFieldNumber = 17,
    kTfssdParamFieldNumber = 18,
    kOpenPoseParamFieldNumber = 19,
    kReidParamFieldNumber = 20,
    kMedicalRefineDetParamFieldNumber = 21,
    kPlatenumParamFieldNumber = 22,
    kRetinafaceParamFieldNumber = 24,
    kTfrefinedetParamFieldNumber = 25,
    kPointpillarsNusParamFieldNumber = 26,
    kSegmentation3DParamFieldNumber = 27,
    kYoloV5ParamFieldNumber = 29,
    kBtsParamFieldNumber = 30,
    kFairMotParamFieldNumber = 31,
    kXAutonomous3DParamFieldNumber = 32,
    kPointpillarsKittiParamFieldNumber = 33,
    kSoloParamFieldNumber = 34,
    kVehicleclassificationParamFieldNumber = 36,
    kEfficientdetD2ParamFieldNumber = 37,
    kMovenetParamFieldNumber = 38,
    kRcanParamFieldNumber = 39,
    kYoloV6ParamFieldNumber = 40,
    kFcosParamFieldNumber = 41,
    kYoloV8ParamFieldNumber = 42,
    kRetinanetParamFieldNumber = 43,
    kYoloV7ParamFieldNumber = 44,
    kModelTypeFieldNumber = 3,
    kUseGraphRunnerFieldNumber = 28,
    kIsTfFieldNumber = 16,
    kOrderTypeFieldNumber = 23,
  };
  // repeated .vitis.ai.proto.DpuKernelParam kernel = 2;
  int kernel_size() const;
  private:
  int _internal_kernel_size() const;
  public:
  void clear_kernel();
  ::vitis::ai::proto::DpuKernelParam* mutable_kernel(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::DpuKernelParam >*
      mutable_kernel();
  private:
  const ::vitis::ai::proto::DpuKernelParam& _internal_kernel(int index) const;
  ::vitis::ai::proto::DpuKernelParam* _internal_add_kernel();
  public:
  const ::vitis::ai::proto::DpuKernelParam& kernel(int index) const;
  ::vitis::ai::proto::DpuKernelParam* add_kernel();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::DpuKernelParam >&
      kernel() const;

  // repeated .vitis.ai.proto.SubgraphParam subgraph = 35;
  int subgraph_size() const;
  private:
  int _internal_subgraph_size() const;
  public:
  void clear_subgraph();
  ::vitis::ai::proto::SubgraphParam* mutable_subgraph(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::SubgraphParam >*
      mutable_subgraph();
  private:
  const ::vitis::ai::proto::SubgraphParam& _internal_subgraph(int index) const;
  ::vitis::ai::proto::SubgraphParam* _internal_add_subgraph();
  public:
  const ::vitis::ai::proto::SubgraphParam& subgraph(int index) const;
  ::vitis::ai::proto::SubgraphParam* add_subgraph();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::SubgraphParam >&
      subgraph() const;

  // string name = 1;
  void clear_name();
  const std::string& name() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_name(ArgT0&& arg0, ArgT... args);
  std::string* mutable_name();
  PROTOBUF_NODISCARD std::string* release_name();
  void set_allocated_name(std::string* name);
  private:
  const std::string& _internal_name() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_name(const std::string& value);
  std::string* _internal_mutable_name();
  public:

  // .vitis.ai.proto.RefineDetParam refine_det_param = 4;
  bool has_refine_det_param() const;
  private:
  bool _internal_has_refine_det_param() const;
  public:
  void clear_refine_det_param();
  const ::vitis::ai::proto::RefineDetParam& refine_det_param() const;
  PROTOBUF_NODISCARD ::vitis::ai::proto::RefineDetParam* release_refine_det_param();
  ::vitis::ai::proto::RefineDetParam* mutable_refine_det_param();
  void set_allocated_refine_det_param(::vitis::ai::proto::RefineDetParam* refine_det_param);
  private:
  const ::vitis::ai::proto::RefineDetParam& _internal_refine_det_param() const;
  ::vitis::ai::proto::RefineDetParam* _internal_mutable_refine_det_param();
  public:
  void unsafe_arena_set_allocated_refine_det_param(
      ::vitis::ai::proto::RefineDetParam* refine_det_param);
  ::vitis::ai::proto::RefineDetParam* unsafe_arena_release_refine_det_param();

  // .vitis.ai.proto.YoloV3Param yolo_v3_param = 5;
  bool has_yolo_v3_param() const;
  private:
  bool _internal_has_yolo_v3_param() const;
  public:
  void clear_yolo_v3_param();
  const ::vitis::ai::proto::YoloV3Param& yolo_v3_param() const;
  PROTOBUF_NODISCARD ::vitis::ai::proto::YoloV3Param* release_yolo_v3_param();
  ::vitis::ai::proto::YoloV3Param* mutable_yolo_v3_param();
  void set_allocated_yolo_v3_param(::vitis::ai::proto::YoloV3Param* yolo_v3_param);
  private:
  const ::vitis::ai::proto::YoloV3Param& _internal_yolo_v3_param() const;
  ::vitis::ai::proto::YoloV3Param* _internal_mutable_yolo_v3_param();
  public:
  void unsafe_arena_set_allocated_yolo_v3_param(
      ::vitis::ai::proto::YoloV3Param* yolo_v3_param);
  ::vitis::ai::proto::YoloV3Param* unsafe_arena_release_yolo_v3_param();

  // .vitis.ai.proto.SSDParam ssd_param = 6;
  bool has_ssd_param() const;
  private:
  bool _internal_has_ssd_param() const;
  public:
  void clear_ssd_param();
  const ::vitis::ai::proto::SSDParam& ssd_param() const;
  PROTOBUF_NODISCARD ::vitis::ai::proto::SSDParam* release_ssd_param();
  ::vitis::ai::proto::SSDParam* mutable_ssd_param();
  void set_allocated_ssd_param(::vitis::ai::proto::SSDParam* ssd_param);
  private:
  const ::vitis::ai::proto::SSDParam& _internal_ssd_param() const;
  ::vitis::ai::proto::SSDParam* _internal_mutable_ssd_param();
  public:
  void unsafe_arena_set_allocated_ssd_param(
      ::vitis::ai::proto::SSDParam* ssd_param);
  ::vitis::ai::proto::SSDParam* unsafe_arena_release_ssd_param();

  // .vitis.ai.proto.ClassificationParam classification_param = 7;
  bool has_classification_param() const;
  private:
  bool _internal_has_classification_param() const;
  public:
  void clear_classification_param();
  const ::vitis::ai::proto::ClassificationParam& classification_param() const;
  PROTOBUF_NODISCARD ::vitis::ai::proto::ClassificationParam* release_classification_param();
  ::vitis::ai::proto::ClassificationParam* mutable_classification_param();
  void set_allocated_classification_param(::vitis::ai::proto::ClassificationParam* classification_param);
  private:
  const ::vitis::ai::proto::ClassificationParam& _internal_classification_param() const;
  ::vitis::ai::proto::ClassificationParam* _internal_mutable_classification_param();
  public:
  void unsafe_arena_set_allocated_classification_param(
      ::vitis::ai::proto::ClassificationParam* classification_param);
  ::vitis::ai::proto::ClassificationParam* unsafe_arena_release_classification_param();

  // .vitis.ai.proto.DenseBoxParam dense_box_param = 8;
  bool has_dense_box_param() const;
  private:
  bool _internal_has_dense_box_param() const;
  public:
  void clear_dense_box_param();
  const ::vitis::ai::proto::DenseBoxParam& dense_box_param() const;
  PROTOBUF_NODISCARD ::vitis::ai::proto::DenseBoxParam* release_dense_box_param();
  ::vitis::ai::proto::DenseBoxParam* mutable_dense_box_param();
  void set_allocated_dense_box_param(::vitis::ai::proto::DenseBoxParam* dense_box_param);
  private:
  const ::vitis::ai::proto::DenseBoxParam& _internal_dense_box_param() const;
  ::vitis::ai::proto::DenseBoxParam* _internal_mutable_dense_box_param();
  public:
  void unsafe_arena_set_allocated_dense_box_param(
      ::vitis::ai::proto::DenseBoxParam* dense_box_param);
  ::vitis::ai::proto::DenseBoxParam* unsafe_arena_release_dense_box_param();

  // .vitis.ai.proto.MultiTaskParam multi_task_param = 9;
  bool has_multi_task_param() const;
  private:
  bool _internal_has_multi_task_param() const;
  public:
  void clear_multi_task_param();
  const ::vitis::ai::proto::MultiTaskParam& multi_task_param() const;
  PROTOBUF_NODISCARD ::vitis::ai::proto::MultiTaskParam* release_multi_task_param();
  ::vitis::ai::proto::MultiTaskParam* mutable_multi_task_param();
  void set_allocated_multi_task_param(::vitis::ai::proto::MultiTaskParam* multi_task_param);
  private:
  const ::vitis::ai::proto::MultiTaskParam& _internal_multi_task_param() const;
  ::vitis::ai::proto::MultiTaskParam* _internal_mutable_multi_task_param();
  public:
  void unsafe_arena_set_allocated_multi_task_param(
      ::vitis::ai::proto::MultiTaskParam* multi_task_param);
  ::vitis::ai::proto::MultiTaskParam* unsafe_arena_release_multi_task_param();

  // .vitis.ai.proto.RoadlineParam roadline_param = 10;
  bool has_roadline_param() const;
  private:
  bool _internal_has_roadline_param() const;
  public:
  void clear_roadline_param();
  const ::vitis::ai::proto::RoadlineParam& roadline_param() const;
  PROTOBUF_NODISCARD ::vitis::ai::proto::RoadlineParam* release_roadline_param();
  ::vitis::ai::proto::RoadlineParam* mutable_roadline_param();
  void set_allocated_roadline_param(::vitis::ai::proto::RoadlineParam* roadline_param);
  private:
  const ::vitis::ai::proto::RoadlineParam& _internal_roadline_param() const;
  ::vitis::ai::proto::RoadlineParam* _internal_mutable_roadline_param();
  public:
  void unsafe_arena_set_allocated_roadline_param(
      ::vitis::ai::proto::RoadlineParam* roadline_param);
  ::vitis::ai::proto::RoadlineParam* unsafe_arena_release_roadline_param();

  // .vitis.ai.proto.SegmentationParam segmentation_param = 11;
  bool has_segmentation_param() const;
  private:
  bool _internal_has_segmentation_param() const;
  public:
  void clear_segmentation_param();
  const ::vitis::ai::proto::SegmentationParam& segmentation_param() const;
  PROTOBUF_NODISCARD ::vitis::ai::proto::SegmentationParam* release_segmentation_param();
  ::vitis::ai::proto::SegmentationParam* mutable_segmentation_param();
  void set_allocated_segmentation_param(::vitis::ai::proto::SegmentationParam* segmentation_param);
  private:
  const ::vitis::ai::proto::SegmentationParam& _internal_segmentation_param() const;
  ::vitis::ai::proto::SegmentationParam* _internal_mutable_segmentation_param();
  public:
  void unsafe_arena_set_allocated_segmentation_param(
      ::vitis::ai::proto::SegmentationParam* segmentation_param);
  ::vitis::ai::proto::SegmentationParam* unsafe_arena_release_segmentation_param();

  // .vitis.ai.proto.LaneParam lane_param = 12;
  bool has_lane_param() const;
  private:
  bool _internal_has_lane_param() const;
  public:
  void clear_lane_param();
  const ::vitis::ai::proto::LaneParam& lane_param() const;
  PROTOBUF_NODISCARD ::vitis::ai::proto::LaneParam* release_lane_param();
  ::vitis::ai::proto::LaneParam* mutable_lane_param();
  void set_allocated_lane_param(::vitis::ai::proto::LaneParam* lane_param);
  private:
  const ::vitis::ai::proto::LaneParam& _internal_lane_param() const;
  ::vitis::ai::proto::LaneParam* _internal_mutable_lane_param();
  public:
  void unsafe_arena_set_allocated_lane_param(
      ::vitis::ai::proto::LaneParam* lane_param);
  ::vitis::ai::proto::LaneParam* unsafe_arena_release_lane_param();

  // .vitis.ai.proto.BlinkerParam blinker_param = 13;
  bool has_blinker_param() const;
  private:
  bool _internal_has_blinker_param() const;
  public:
  void clear_blinker_param();
  const ::vitis::ai::proto::BlinkerParam& blinker_param() const;
  PROTOBUF_NODISCARD ::vitis::ai::proto::BlinkerParam* release_blinker_param();
  ::vitis::ai::proto::BlinkerParam* mutable_blinker_param();
  void set_allocated_blinker_param(::vitis::ai::proto::BlinkerParam* blinker_param);
  private:
  const ::vitis::ai::proto::BlinkerParam& _internal_blinker_param() const;
  ::vitis::ai::proto::BlinkerParam* _internal_mutable_blinker_param();
  public:
  void unsafe_arena_set_allocated_blinker_param(
      ::vitis::ai::proto::BlinkerParam* blinker_param);
  ::vitis::ai::proto::BlinkerParam* unsafe_arena_release_blinker_param();

  // .vitis.ai.proto.SegdetParam segdet_param = 14;
  bool has_segdet_param() const;
  private:
  bool _internal_has_segdet_param() const;
  public:
  void clear_segdet_param();
  const ::vitis::ai::proto::SegdetParam& segdet_param() const;
  PROTOBUF_NODISCARD ::vitis::ai::proto::SegdetParam* release_segdet_param();
  ::vitis::ai::proto::SegdetParam* mutable_segdet_param();
  void set_allocated_segdet_param(::vitis::ai::proto::SegdetParam* segdet_param);
  private:
  const ::vitis::ai::proto::SegdetParam& _internal_segdet_param() const;
  ::vitis::ai::proto::SegdetParam* _internal_mutable_segdet_param();
  public:
  void unsafe_arena_set_allocated_segdet_param(
      ::vitis::ai::proto::SegdetParam* segdet_param);
  ::vitis::ai::proto::SegdetParam* unsafe_arena_release_segdet_param();

  // .vitis.ai.proto.RoadlineDeephiParam roadline_dp_param = 15;
  bool has_roadline_dp_param() const;
  private:
  bool _internal_has_roadline_dp_param() const;
  public:
  void clear_roadline_dp_param();
  const ::vitis::ai::proto::RoadlineDeephiParam& roadline_dp_param() const;
  PROTOBUF_NODISCARD ::vitis::ai::proto::RoadlineDeephiParam* release_roadline_dp_param();
  ::vitis::ai::proto::RoadlineDeephiParam* mutable_roadline_dp_param();
  void set_allocated_roadline_dp_param(::vitis::ai::proto::RoadlineDeephiParam* roadline_dp_param);
  private:
  const ::vitis::ai::proto::RoadlineDeephiParam& _internal_roadline_dp_param() const;
  ::vitis::ai::proto::RoadlineDeephiParam* _internal_mutable_roadline_dp_param();
  public:
  void unsafe_arena_set_allocated_roadline_dp_param(
      ::vitis::ai::proto::RoadlineDeephiParam* roadline_dp_param);
  ::vitis::ai::proto::RoadlineDeephiParam* unsafe_arena_release_roadline_dp_param();

  // .vitis.ai.proto.FaceQuality5ptParam face_quality5pt_param = 17;
  bool has_face_quality5pt_param() const;
  private:
  bool _internal_has_face_quality5pt_param() const;
  public:
  void clear_face_quality5pt_param();
  const ::vitis::ai::proto::FaceQuality5ptParam& face_quality5pt_param() const;
  PROTOBUF_NODISCARD ::vitis::ai::proto::FaceQuality5ptParam* release_face_quality5pt_param();
  ::vitis::ai::proto::FaceQuality5ptParam* mutable_face_quality5pt_param();
  void set_allocated_face_quality5pt_param(::vitis::ai::proto::FaceQuality5ptParam* face_quality5pt_param);
  private:
  const ::vitis::ai::proto::FaceQuality5ptParam& _internal_face_quality5pt_param() const;
  ::vitis::ai::proto::FaceQuality5ptParam* _internal_mutable_face_quality5pt_param();
  public:
  void unsafe_arena_set_allocated_face_quality5pt_param(
      ::vitis::ai::proto::FaceQuality5ptParam* face_quality5pt_param);
  ::vitis::ai::proto::FaceQuality5ptParam* unsafe_arena_release_face_quality5pt_param();

  // .vitis.ai.proto.TfssdParam tfssd_param = 18;
  bool has_tfssd_param() const;
  private:
  bool _internal_has_tfssd_param() const;
  public:
  void clear_tfssd_param();
  const ::vitis::ai::proto::TfssdParam& tfssd_param() const;
  PROTOBUF_NODISCARD ::vitis::ai::proto::TfssdParam* release_tfssd_param();
  ::vitis::ai::proto::TfssdParam* mutable_tfssd_param();
  void set_allocated_tfssd_param(::vitis::ai::proto::TfssdParam* tfssd_param);
  private:
  const ::vitis::ai::proto::TfssdParam& _internal_tfssd_param() const;
  ::vitis::ai::proto::TfssdParam* _internal_mutable_tfssd_param();
  public:
  void unsafe_arena_set_allocated_tfssd_param(
      ::vitis::ai::proto::TfssdParam* tfssd_param);
  ::vitis::ai::proto::TfssdParam* unsafe_arena_release_tfssd_param();

  // .vitis.ai.proto.OpenPoseParam open_pose_param = 19;
  bool has_open_pose_param() const;
  private:
  bool _internal_has_open_pose_param() const;
  public:
  void clear_open_pose_param();
  const ::vitis::ai::proto::OpenPoseParam& open_pose_param() const;
  PROTOBUF_NODISCARD ::vitis::ai::proto::OpenPoseParam* release_open_pose_param();
  ::vitis::ai::proto::OpenPoseParam* mutable_open_pose_param();
  void set_allocated_open_pose_param(::vitis::ai::proto::OpenPoseParam* open_pose_param);
  private:
  const ::vitis::ai::proto::OpenPoseParam& _internal_open_pose_param() const;
  ::vitis::ai::proto::OpenPoseParam* _internal_mutable_open_pose_param();
  public:
  void unsafe_arena_set_allocated_open_pose_param(
      ::vitis::ai::proto::OpenPoseParam* open_pose_param);
  ::vitis::ai::proto::OpenPoseParam* unsafe_arena_release_open_pose_param();

  // .vitis.ai.proto.ReidParam reid_param = 20;
  bool has_reid_param() const;
  private:
  bool _internal_has_reid_param() const;
  public:
  void clear_reid_param();
  const ::vitis::ai::proto::ReidParam& reid_param() const;
  PROTOBUF_NODISCARD ::vitis::ai::proto::ReidParam* release_reid_param();
  ::vitis::ai::proto::ReidParam* mutable_reid_param();
  void set_allocated_reid_param(::vitis::ai::proto::ReidParam* reid_param);
  private:
  const ::vitis::ai::proto::ReidParam& _internal_reid_param() const;
  ::vitis::ai::proto::ReidParam* _internal_mutable_reid_param();
  public:
  void unsafe_arena_set_allocated_reid_param(
      ::vitis::ai::proto::ReidParam* reid_param);
  ::vitis::ai::proto::ReidParam* unsafe_arena_release_reid_param();

  // .vitis.ai.proto.MedicalRefineDetParam medical_refine_det_param = 21;
  bool has_medical_refine_det_param() const;
  private:
  bool _internal_has_medical_refine_det_param() const;
  public:
  void clear_medical_refine_det_param();
  const ::vitis::ai::proto::MedicalRefineDetParam& medical_refine_det_param() const;
  PROTOBUF_NODISCARD ::vitis::ai::proto::MedicalRefineDetParam* release_medical_refine_det_param();
  ::vitis::ai::proto::MedicalRefineDetParam* mutable_medical_refine_det_param();
  void set_allocated_medical_refine_det_param(::vitis::ai::proto::MedicalRefineDetParam* medical_refine_det_param);
  private:
  const ::vitis::ai::proto::MedicalRefineDetParam& _internal_medical_refine_det_param() const;
  ::vitis::ai::proto::MedicalRefineDetParam* _internal_mutable_medical_refine_det_param();
  public:
  void unsafe_arena_set_allocated_medical_refine_det_param(
      ::vitis::ai::proto::MedicalRefineDetParam* medical_refine_det_param);
  ::vitis::ai::proto::MedicalRefineDetParam* unsafe_arena_release_medical_refine_det_param();

  // .vitis.ai.proto.PlatenumParam platenum_param = 22;
  bool has_platenum_param() const;
  private:
  bool _internal_has_platenum_param() const;
  public:
  void clear_platenum_param();
  const ::vitis::ai::proto::PlatenumParam& platenum_param() const;
  PROTOBUF_NODISCARD ::vitis::ai::proto::PlatenumParam* release_platenum_param();
  ::vitis::ai::proto::PlatenumParam* mutable_platenum_param();
  void set_allocated_platenum_param(::vitis::ai::proto::PlatenumParam* platenum_param);
  private:
  const ::vitis::ai::proto::PlatenumParam& _internal_platenum_param() const;
  ::vitis::ai::proto::PlatenumParam* _internal_mutable_platenum_param();
  public:
  void unsafe_arena_set_allocated_platenum_param(
      ::vitis::ai::proto::PlatenumParam* platenum_param);
  ::vitis::ai::proto::PlatenumParam* unsafe_arena_release_platenum_param();

  // .vitis.ai.proto.RetinaFaceParam retinaface_param = 24;
  bool has_retinaface_param() const;
  private:
  bool _internal_has_retinaface_param() const;
  public:
  void clear_retinaface_param();
  const ::vitis::ai::proto::RetinaFaceParam& retinaface_param() const;
  PROTOBUF_NODISCARD ::vitis::ai::proto::RetinaFaceParam* release_retinaface_param();
  ::vitis::ai::proto::RetinaFaceParam* mutable_retinaface_param();
  void set_allocated_retinaface_param(::vitis::ai::proto::RetinaFaceParam* retinaface_param);
  private:
  const ::vitis::ai::proto::RetinaFaceParam& _internal_retinaface_param() const;
  ::vitis::ai::proto::RetinaFaceParam* _internal_mutable_retinaface_param();
  public:
  void unsafe_arena_set_allocated_retinaface_param(
      ::vitis::ai::proto::RetinaFaceParam* retinaface_param);
  ::vitis::ai::proto::RetinaFaceParam* unsafe_arena_release_retinaface_param();

  // .vitis.ai.proto.TFRefineDetParam tfrefinedet_param = 25;
  bool has_tfrefinedet_param() const;
  private:
  bool _internal_has_tfrefinedet_param() const;
  public:
  void clear_tfrefinedet_param();
  const ::vitis::ai::proto::TFRefineDetParam& tfrefinedet_param() const;
  PROTOBUF_NODISCARD ::vitis::ai::proto::TFRefineDetParam* release_tfrefinedet_param();
  ::vitis::ai::proto::TFRefineDetParam* mutable_tfrefinedet_param();
  void set_allocated_tfrefinedet_param(::vitis::ai::proto::TFRefineDetParam* tfrefinedet_param);
  private:
  const ::vitis::ai::proto::TFRefineDetParam& _internal_tfrefinedet_param() const;
  ::vitis::ai::proto::TFRefineDetParam* _internal_mutable_tfrefinedet_param();
  public:
  void unsafe_arena_set_allocated_tfrefinedet_param(
      ::vitis::ai::proto::TFRefineDetParam* tfrefinedet_param);
  ::vitis::ai::proto::TFRefineDetParam* unsafe_arena_release_tfrefinedet_param();

  // .vitis.ai.proto.PointPillarsNusParam pointpillars_nus_param = 26;
  bool has_pointpillars_nus_param() const;
  private:
  bool _internal_has_pointpillars_nus_param() const;
  public:
  void clear_pointpillars_nus_param();
  const ::vitis::ai::proto::PointPillarsNusParam& pointpillars_nus_param() const;
  PROTOBUF_NODISCARD ::vitis::ai::proto::PointPillarsNusParam* release_pointpillars_nus_param();
  ::vitis::ai::proto::PointPillarsNusParam* mutable_pointpillars_nus_param();
  void set_allocated_pointpillars_nus_param(::vitis::ai::proto::PointPillarsNusParam* pointpillars_nus_param);
  private:
  const ::vitis::ai::proto::PointPillarsNusParam& _internal_pointpillars_nus_param() const;
  ::vitis::ai::proto::PointPillarsNusParam* _internal_mutable_pointpillars_nus_param();
  public:
  void unsafe_arena_set_allocated_pointpillars_nus_param(
      ::vitis::ai::proto::PointPillarsNusParam* pointpillars_nus_param);
  ::vitis::ai::proto::PointPillarsNusParam* unsafe_arena_release_pointpillars_nus_param();

  // .vitis.ai.proto.Segmentation3DParam segmentation_3d_param = 27;
  bool has_segmentation_3d_param() const;
  private:
  bool _internal_has_segmentation_3d_param() const;
  public:
  void clear_segmentation_3d_param();
  const ::vitis::ai::proto::Segmentation3DParam& segmentation_3d_param() const;
  PROTOBUF_NODISCARD ::vitis::ai::proto::Segmentation3DParam* release_segmentation_3d_param();
  ::vitis::ai::proto::Segmentation3DParam* mutable_segmentation_3d_param();
  void set_allocated_segmentation_3d_param(::vitis::ai::proto::Segmentation3DParam* segmentation_3d_param);
  private:
  const ::vitis::ai::proto::Segmentation3DParam& _internal_segmentation_3d_param() const;
  ::vitis::ai::proto::Segmentation3DParam* _internal_mutable_segmentation_3d_param();
  public:
  void unsafe_arena_set_allocated_segmentation_3d_param(
      ::vitis::ai::proto::Segmentation3DParam* segmentation_3d_param);
  ::vitis::ai::proto::Segmentation3DParam* unsafe_arena_release_segmentation_3d_param();

  // .vitis.ai.proto.YoloV5Param yolo_v5_param = 29;
  bool has_yolo_v5_param() const;
  private:
  bool _internal_has_yolo_v5_param() const;
  public:
  void clear_yolo_v5_param();
  const ::vitis::ai::proto::YoloV5Param& yolo_v5_param() const;
  PROTOBUF_NODISCARD ::vitis::ai::proto::YoloV5Param* release_yolo_v5_param();
  ::vitis::ai::proto::YoloV5Param* mutable_yolo_v5_param();
  void set_allocated_yolo_v5_param(::vitis::ai::proto::YoloV5Param* yolo_v5_param);
  private:
  const ::vitis::ai::proto::YoloV5Param& _internal_yolo_v5_param() const;
  ::vitis::ai::proto::YoloV5Param* _internal_mutable_yolo_v5_param();
  public:
  void unsafe_arena_set_allocated_yolo_v5_param(
      ::vitis::ai::proto::YoloV5Param* yolo_v5_param);
  ::vitis::ai::proto::YoloV5Param* unsafe_arena_release_yolo_v5_param();

  // .vitis.ai.proto.BTSParam bts_param = 30;
  bool has_bts_param() const;
  private:
  bool _internal_has_bts_param() const;
  public:
  void clear_bts_param();
  const ::vitis::ai::proto::BTSParam& bts_param() const;
  PROTOBUF_NODISCARD ::vitis::ai::proto::BTSParam* release_bts_param();
  ::vitis::ai::proto::BTSParam* mutable_bts_param();
  void set_allocated_bts_param(::vitis::ai::proto::BTSParam* bts_param);
  private:
  const ::vitis::ai::proto::BTSParam& _internal_bts_param() const;
  ::vitis::ai::proto::BTSParam* _internal_mutable_bts_param();
  public:
  void unsafe_arena_set_allocated_bts_param(
      ::vitis::ai::proto::BTSParam* bts_param);
  ::vitis::ai::proto::BTSParam* unsafe_arena_release_bts_param();

  // .vitis.ai.proto.FairMotParam fair_mot_param = 31;
  bool has_fair_mot_param() const;
  private:
  bool _internal_has_fair_mot_param() const;
  public:
  void clear_fair_mot_param();
  const ::vitis::ai::proto::FairMotParam& fair_mot_param() const;
  PROTOBUF_NODISCARD ::vitis::ai::proto::FairMotParam* release_fair_mot_param();
  ::vitis::ai::proto::FairMotParam* mutable_fair_mot_param();
  void set_allocated_fair_mot_param(::vitis::ai::proto::FairMotParam* fair_mot_param);
  private:
  const ::vitis::ai::proto::FairMotParam& _internal_fair_mot_param() const;
  ::vitis::ai::proto::FairMotParam* _internal_mutable_fair_mot_param();
  public:
  void unsafe_arena_set_allocated_fair_mot_param(
      ::vitis::ai::proto::FairMotParam* fair_mot_param);
  ::vitis::ai::proto::FairMotParam* unsafe_arena_release_fair_mot_param();

  // .vitis.ai.proto.X_Autonomous3DParam x_autonomous3d_param = 32;
  bool has_x_autonomous3d_param() const;
  private:
  bool _internal_has_x_autonomous3d_param() const;
  public:
  void clear_x_autonomous3d_param();
  const ::vitis::ai::proto::X_Autonomous3DParam& x_autonomous3d_param() const;
  PROTOBUF_NODISCARD ::vitis::ai::proto::X_Autonomous3DParam* release_x_autonomous3d_param();
  ::vitis::ai::proto::X_Autonomous3DParam* mutable_x_autonomous3d_param();
  void set_allocated_x_autonomous3d_param(::vitis::ai::proto::X_Autonomous3DParam* x_autonomous3d_param);
  private:
  const ::vitis::ai::proto::X_Autonomous3DParam& _internal_x_autonomous3d_param() const;
  ::vitis::ai::proto::X_Autonomous3DParam* _internal_mutable_x_autonomous3d_param();
  public:
  void unsafe_arena_set_allocated_x_autonomous3d_param(
      ::vitis::ai::proto::X_Autonomous3DParam* x_autonomous3d_param);
  ::vitis::ai::proto::X_Autonomous3DParam* unsafe_arena_release_x_autonomous3d_param();

  // .vitis.ai.proto.PointPillarsKittiParam pointpillars_kitti_param = 33;
  bool has_pointpillars_kitti_param() const;
  private:
  bool _internal_has_pointpillars_kitti_param() const;
  public:
  void clear_pointpillars_kitti_param();
  const ::vitis::ai::proto::PointPillarsKittiParam& pointpillars_kitti_param() const;
  PROTOBUF_NODISCARD ::vitis::ai::proto::PointPillarsKittiParam* release_pointpillars_kitti_param();
  ::vitis::ai::proto::PointPillarsKittiParam* mutable_pointpillars_kitti_param();
  void set_allocated_pointpillars_kitti_param(::vitis::ai::proto::PointPillarsKittiParam* pointpillars_kitti_param);
  private:
  const ::vitis::ai::proto::PointPillarsKittiParam& _internal_pointpillars_kitti_param() const;
  ::vitis::ai::proto::PointPillarsKittiParam* _internal_mutable_pointpillars_kitti_param();
  public:
  void unsafe_arena_set_allocated_pointpillars_kitti_param(
      ::vitis::ai::proto::PointPillarsKittiParam* pointpillars_kitti_param);
  ::vitis::ai::proto::PointPillarsKittiParam* unsafe_arena_release_pointpillars_kitti_param();

  // .vitis.ai.proto.SoloParam solo_param = 34;
  bool has_solo_param() const;
  private:
  bool _internal_has_solo_param() const;
  public:
  void clear_solo_param();
  const ::vitis::ai::proto::SoloParam& solo_param() const;
  PROTOBUF_NODISCARD ::vitis::ai::proto::SoloParam* release_solo_param();
  ::vitis::ai::proto::SoloParam* mutable_solo_param();
  void set_allocated_solo_param(::vitis::ai::proto::SoloParam* solo_param);
  private:
  const ::vitis::ai::proto::SoloParam& _internal_solo_param() const;
  ::vitis::ai::proto::SoloParam* _internal_mutable_solo_param();
  public:
  void unsafe_arena_set_allocated_solo_param(
      ::vitis::ai::proto::SoloParam* solo_param);
  ::vitis::ai::proto::SoloParam* unsafe_arena_release_solo_param();

  // .vitis.ai.proto.ClassificationParam vehicleclassification_param = 36;
  bool has_vehicleclassification_param() const;
  private:
  bool _internal_has_vehicleclassification_param() const;
  public:
  void clear_vehicleclassification_param();
  const ::vitis::ai::proto::ClassificationParam& vehicleclassification_param() const;
  PROTOBUF_NODISCARD ::vitis::ai::proto::ClassificationParam* release_vehicleclassification_param();
  ::vitis::ai::proto::ClassificationParam* mutable_vehicleclassification_param();
  void set_allocated_vehicleclassification_param(::vitis::ai::proto::ClassificationParam* vehicleclassification_param);
  private:
  const ::vitis::ai::proto::ClassificationParam& _internal_vehicleclassification_param() const;
  ::vitis::ai::proto::ClassificationParam* _internal_mutable_vehicleclassification_param();
  public:
  void unsafe_arena_set_allocated_vehicleclassification_param(
      ::vitis::ai::proto::ClassificationParam* vehicleclassification_param);
  ::vitis::ai::proto::ClassificationParam* unsafe_arena_release_vehicleclassification_param();

  // .vitis.ai.proto.EfficientDetD2Param efficientdet_d2_param = 37;
  bool has_efficientdet_d2_param() const;
  private:
  bool _internal_has_efficientdet_d2_param() const;
  public:
  void clear_efficientdet_d2_param();
  const ::vitis::ai::proto::EfficientDetD2Param& efficientdet_d2_param() const;
  PROTOBUF_NODISCARD ::vitis::ai::proto::EfficientDetD2Param* release_efficientdet_d2_param();
  ::vitis::ai::proto::EfficientDetD2Param* mutable_efficientdet_d2_param();
  void set_allocated_efficientdet_d2_param(::vitis::ai::proto::EfficientDetD2Param* efficientdet_d2_param);
  private:
  const ::vitis::ai::proto::EfficientDetD2Param& _internal_efficientdet_d2_param() const;
  ::vitis::ai::proto::EfficientDetD2Param* _internal_mutable_efficientdet_d2_param();
  public:
  void unsafe_arena_set_allocated_efficientdet_d2_param(
      ::vitis::ai::proto::EfficientDetD2Param* efficientdet_d2_param);
  ::vitis::ai::proto::EfficientDetD2Param* unsafe_arena_release_efficientdet_d2_param();

  // .vitis.ai.proto.MovenetParam movenet_param = 38;
  bool has_movenet_param() const;
  private:
  bool _internal_has_movenet_param() const;
  public:
  void clear_movenet_param();
  const ::vitis::ai::proto::MovenetParam& movenet_param() const;
  PROTOBUF_NODISCARD ::vitis::ai::proto::MovenetParam* release_movenet_param();
  ::vitis::ai::proto::MovenetParam* mutable_movenet_param();
  void set_allocated_movenet_param(::vitis::ai::proto::MovenetParam* movenet_param);
  private:
  const ::vitis::ai::proto::MovenetParam& _internal_movenet_param() const;
  ::vitis::ai::proto::MovenetParam* _internal_mutable_movenet_param();
  public:
  void unsafe_arena_set_allocated_movenet_param(
      ::vitis::ai::proto::MovenetParam* movenet_param);
  ::vitis::ai::proto::MovenetParam* unsafe_arena_release_movenet_param();

  // .vitis.ai.proto.RcanParam rcan_param = 39;
  bool has_rcan_param() const;
  private:
  bool _internal_has_rcan_param() const;
  public:
  void clear_rcan_param();
  const ::vitis::ai::proto::RcanParam& rcan_param() const;
  PROTOBUF_NODISCARD ::vitis::ai::proto::RcanParam* release_rcan_param();
  ::vitis::ai::proto::RcanParam* mutable_rcan_param();
  void set_allocated_rcan_param(::vitis::ai::proto::RcanParam* rcan_param);
  private:
  const ::vitis::ai::proto::RcanParam& _internal_rcan_param() const;
  ::vitis::ai::proto::RcanParam* _internal_mutable_rcan_param();
  public:
  void unsafe_arena_set_allocated_rcan_param(
      ::vitis::ai::proto::RcanParam* rcan_param);
  ::vitis::ai::proto::RcanParam* unsafe_arena_release_rcan_param();

  // .vitis.ai.proto.YoloV6Param yolo_v6_param = 40;
  bool has_yolo_v6_param() const;
  private:
  bool _internal_has_yolo_v6_param() const;
  public:
  void clear_yolo_v6_param();
  const ::vitis::ai::proto::YoloV6Param& yolo_v6_param() const;
  PROTOBUF_NODISCARD ::vitis::ai::proto::YoloV6Param* release_yolo_v6_param();
  ::vitis::ai::proto::YoloV6Param* mutable_yolo_v6_param();
  void set_allocated_yolo_v6_param(::vitis::ai::proto::YoloV6Param* yolo_v6_param);
  private:
  const ::vitis::ai::proto::YoloV6Param& _internal_yolo_v6_param() const;
  ::vitis::ai::proto::YoloV6Param* _internal_mutable_yolo_v6_param();
  public:
  void unsafe_arena_set_allocated_yolo_v6_param(
      ::vitis::ai::proto::YoloV6Param* yolo_v6_param);
  ::vitis::ai::proto::YoloV6Param* unsafe_arena_release_yolo_v6_param();

  // .vitis.ai.proto.FcosParam fcos_param = 41;
  bool has_fcos_param() const;
  private:
  bool _internal_has_fcos_param() const;
  public:
  void clear_fcos_param();
  const ::vitis::ai::proto::FcosParam& fcos_param() const;
  PROTOBUF_NODISCARD ::vitis::ai::proto::FcosParam* release_fcos_param();
  ::vitis::ai::proto::FcosParam* mutable_fcos_param();
  void set_allocated_fcos_param(::vitis::ai::proto::FcosParam* fcos_param);
  private:
  const ::vitis::ai::proto::FcosParam& _internal_fcos_param() const;
  ::vitis::ai::proto::FcosParam* _internal_mutable_fcos_param();
  public:
  void unsafe_arena_set_allocated_fcos_param(
      ::vitis::ai::proto::FcosParam* fcos_param);
  ::vitis::ai::proto::FcosParam* unsafe_arena_release_fcos_param();

  // .vitis.ai.proto.YoloV8Param yolo_v8_param = 42;
  bool has_yolo_v8_param() const;
  private:
  bool _internal_has_yolo_v8_param() const;
  public:
  void clear_yolo_v8_param();
  const ::vitis::ai::proto::YoloV8Param& yolo_v8_param() const;
  PROTOBUF_NODISCARD ::vitis::ai::proto::YoloV8Param* release_yolo_v8_param();
  ::vitis::ai::proto::YoloV8Param* mutable_yolo_v8_param();
  void set_allocated_yolo_v8_param(::vitis::ai::proto::YoloV8Param* yolo_v8_param);
  private:
  const ::vitis::ai::proto::YoloV8Param& _internal_yolo_v8_param() const;
  ::vitis::ai::proto::YoloV8Param* _internal_mutable_yolo_v8_param();
  public:
  void unsafe_arena_set_allocated_yolo_v8_param(
      ::vitis::ai::proto::YoloV8Param* yolo_v8_param);
  ::vitis::ai::proto::YoloV8Param* unsafe_arena_release_yolo_v8_param();

  // .vitis.ai.proto.RetinaNetParam retinanet_param = 43;
  bool has_retinanet_param() const;
  private:
  bool _internal_has_retinanet_param() const;
  public:
  void clear_retinanet_param();
  const ::vitis::ai::proto::RetinaNetParam& retinanet_param() const;
  PROTOBUF_NODISCARD ::vitis::ai::proto::RetinaNetParam* release_retinanet_param();
  ::vitis::ai::proto::RetinaNetParam* mutable_retinanet_param();
  void set_allocated_retinanet_param(::vitis::ai::proto::RetinaNetParam* retinanet_param);
  private:
  const ::vitis::ai::proto::RetinaNetParam& _internal_retinanet_param() const;
  ::vitis::ai::proto::RetinaNetParam* _internal_mutable_retinanet_param();
  public:
  void unsafe_arena_set_allocated_retinanet_param(
      ::vitis::ai::proto::RetinaNetParam* retinanet_param);
  ::vitis::ai::proto::RetinaNetParam* unsafe_arena_release_retinanet_param();

  // .vitis.ai.proto.YoloV7Param yolo_v7_param = 44;
  bool has_yolo_v7_param() const;
  private:
  bool _internal_has_yolo_v7_param() const;
  public:
  void clear_yolo_v7_param();
  const ::vitis::ai::proto::YoloV7Param& yolo_v7_param() const;
  PROTOBUF_NODISCARD ::vitis::ai::proto::YoloV7Param* release_yolo_v7_param();
  ::vitis::ai::proto::YoloV7Param* mutable_yolo_v7_param();
  void set_allocated_yolo_v7_param(::vitis::ai::proto::YoloV7Param* yolo_v7_param);
  private:
  const ::vitis::ai::proto::YoloV7Param& _internal_yolo_v7_param() const;
  ::vitis::ai::proto::YoloV7Param* _internal_mutable_yolo_v7_param();
  public:
  void unsafe_arena_set_allocated_yolo_v7_param(
      ::vitis::ai::proto::YoloV7Param* yolo_v7_param);
  ::vitis::ai::proto::YoloV7Param* unsafe_arena_release_yolo_v7_param();

  // .vitis.ai.proto.DpuModelParam.ModelType model_type = 3;
  void clear_model_type();
  ::vitis::ai::proto::DpuModelParam_ModelType model_type() const;
  void set_model_type(::vitis::ai::proto::DpuModelParam_ModelType value);
  private:
  ::vitis::ai::proto::DpuModelParam_ModelType _internal_model_type() const;
  void _internal_set_model_type(::vitis::ai::proto::DpuModelParam_ModelType value);
  public:

  // bool use_graph_runner = 28;
  void clear_use_graph_runner();
  bool use_graph_runner() const;
  void set_use_graph_runner(bool value);
  private:
  bool _internal_use_graph_runner() const;
  void _internal_set_use_graph_runner(bool value);
  public:

  // bool is_tf = 16;
  void clear_is_tf();
  bool is_tf() const;
  void set_is_tf(bool value);
  private:
  bool _internal_is_tf() const;
  void _internal_set_is_tf(bool value);
  public:

  // .vitis.ai.proto.DpuModelParam.OrderType order_type = 23;
  void clear_order_type();
  ::vitis::ai::proto::DpuModelParam_OrderType order_type() const;
  void set_order_type(::vitis::ai::proto::DpuModelParam_OrderType value);
  private:
  ::vitis::ai::proto::DpuModelParam_OrderType _internal_order_type() const;
  void _internal_set_order_type(::vitis::ai::proto::DpuModelParam_OrderType value);
  public:

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.DpuModelParam)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::DpuKernelParam > kernel_;
    ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::SubgraphParam > subgraph_;
    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr name_;
    ::vitis::ai::proto::RefineDetParam* refine_det_param_;
    ::vitis::ai::proto::YoloV3Param* yolo_v3_param_;
    ::vitis::ai::proto::SSDParam* ssd_param_;
    ::vitis::ai::proto::ClassificationParam* classification_param_;
    ::vitis::ai::proto::DenseBoxParam* dense_box_param_;
    ::vitis::ai::proto::MultiTaskParam* multi_task_param_;
    ::vitis::ai::proto::RoadlineParam* roadline_param_;
    ::vitis::ai::proto::SegmentationParam* segmentation_param_;
    ::vitis::ai::proto::LaneParam* lane_param_;
    ::vitis::ai::proto::BlinkerParam* blinker_param_;
    ::vitis::ai::proto::SegdetParam* segdet_param_;
    ::vitis::ai::proto::RoadlineDeephiParam* roadline_dp_param_;
    ::vitis::ai::proto::FaceQuality5ptParam* face_quality5pt_param_;
    ::vitis::ai::proto::TfssdParam* tfssd_param_;
    ::vitis::ai::proto::OpenPoseParam* open_pose_param_;
    ::vitis::ai::proto::ReidParam* reid_param_;
    ::vitis::ai::proto::MedicalRefineDetParam* medical_refine_det_param_;
    ::vitis::ai::proto::PlatenumParam* platenum_param_;
    ::vitis::ai::proto::RetinaFaceParam* retinaface_param_;
    ::vitis::ai::proto::TFRefineDetParam* tfrefinedet_param_;
    ::vitis::ai::proto::PointPillarsNusParam* pointpillars_nus_param_;
    ::vitis::ai::proto::Segmentation3DParam* segmentation_3d_param_;
    ::vitis::ai::proto::YoloV5Param* yolo_v5_param_;
    ::vitis::ai::proto::BTSParam* bts_param_;
    ::vitis::ai::proto::FairMotParam* fair_mot_param_;
    ::vitis::ai::proto::X_Autonomous3DParam* x_autonomous3d_param_;
    ::vitis::ai::proto::PointPillarsKittiParam* pointpillars_kitti_param_;
    ::vitis::ai::proto::SoloParam* solo_param_;
    ::vitis::ai::proto::ClassificationParam* vehicleclassification_param_;
    ::vitis::ai::proto::EfficientDetD2Param* efficientdet_d2_param_;
    ::vitis::ai::proto::MovenetParam* movenet_param_;
    ::vitis::ai::proto::RcanParam* rcan_param_;
    ::vitis::ai::proto::YoloV6Param* yolo_v6_param_;
    ::vitis::ai::proto::FcosParam* fcos_param_;
    ::vitis::ai::proto::YoloV8Param* yolo_v8_param_;
    ::vitis::ai::proto::RetinaNetParam* retinanet_param_;
    ::vitis::ai::proto::YoloV7Param* yolo_v7_param_;
    int model_type_;
    bool use_graph_runner_;
    bool is_tf_;
    int order_type_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class DpuModelParamList final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.DpuModelParamList) */ {
 public:
  inline DpuModelParamList() : DpuModelParamList(nullptr) {}
  ~DpuModelParamList() override;
  explicit PROTOBUF_CONSTEXPR DpuModelParamList(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  DpuModelParamList(const DpuModelParamList& from);
  DpuModelParamList(DpuModelParamList&& from) noexcept
    : DpuModelParamList() {
    *this = ::std::move(from);
  }

  inline DpuModelParamList& operator=(const DpuModelParamList& from) {
    CopyFrom(from);
    return *this;
  }
  inline DpuModelParamList& operator=(DpuModelParamList&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const DpuModelParamList& default_instance() {
    return *internal_default_instance();
  }
  static inline const DpuModelParamList* internal_default_instance() {
    return reinterpret_cast<const DpuModelParamList*>(
               &_DpuModelParamList_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    56;

  friend void swap(DpuModelParamList& a, DpuModelParamList& b) {
    a.Swap(&b);
  }
  inline void Swap(DpuModelParamList* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(DpuModelParamList* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  DpuModelParamList* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<DpuModelParamList>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const DpuModelParamList& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom( const DpuModelParamList& from) {
    DpuModelParamList::MergeImpl(*this, from);
  }
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned);
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(DpuModelParamList* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.DpuModelParamList";
  }
  protected:
  explicit DpuModelParamList(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kModelFieldNumber = 1,
  };
  // repeated .vitis.ai.proto.DpuModelParam model = 1;
  int model_size() const;
  private:
  int _internal_model_size() const;
  public:
  void clear_model();
  ::vitis::ai::proto::DpuModelParam* mutable_model(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::DpuModelParam >*
      mutable_model();
  private:
  const ::vitis::ai::proto::DpuModelParam& _internal_model(int index) const;
  ::vitis::ai::proto::DpuModelParam* _internal_add_model();
  public:
  const ::vitis::ai::proto::DpuModelParam& model(int index) const;
  ::vitis::ai::proto::DpuModelParam* add_model();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::DpuModelParam >&
      model() const;

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.DpuModelParamList)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::DpuModelParam > model_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class Attribute final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.Attribute) */ {
 public:
  inline Attribute() : Attribute(nullptr) {}
  ~Attribute() override;
  explicit PROTOBUF_CONSTEXPR Attribute(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  Attribute(const Attribute& from);
  Attribute(Attribute&& from) noexcept
    : Attribute() {
    *this = ::std::move(from);
  }

  inline Attribute& operator=(const Attribute& from) {
    CopyFrom(from);
    return *this;
  }
  inline Attribute& operator=(Attribute&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const Attribute& default_instance() {
    return *internal_default_instance();
  }
  static inline const Attribute* internal_default_instance() {
    return reinterpret_cast<const Attribute*>(
               &_Attribute_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    57;

  friend void swap(Attribute& a, Attribute& b) {
    a.Swap(&b);
  }
  inline void Swap(Attribute* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(Attribute* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  Attribute* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<Attribute>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const Attribute& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom( const Attribute& from) {
    Attribute::MergeImpl(*this, from);
  }
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned);
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(Attribute* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.Attribute";
  }
  protected:
  explicit Attribute(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kLabelFieldNumber = 1,
    kValueFieldNumber = 2,
    kScoreFieldNumber = 3,
  };
  // string label = 1;
  void clear_label();
  const std::string& label() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_label(ArgT0&& arg0, ArgT... args);
  std::string* mutable_label();
  PROTOBUF_NODISCARD std::string* release_label();
  void set_allocated_label(std::string* label);
  private:
  const std::string& _internal_label() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_label(const std::string& value);
  std::string* _internal_mutable_label();
  public:

  // uint32 value = 2;
  void clear_value();
  uint32_t value() const;
  void set_value(uint32_t value);
  private:
  uint32_t _internal_value() const;
  void _internal_set_value(uint32_t value);
  public:

  // float score = 3;
  void clear_score();
  float score() const;
  void set_score(float value);
  private:
  float _internal_score() const;
  void _internal_set_score(float value);
  public:

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.Attribute)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr label_;
    uint32_t value_;
    float score_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class Point final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.Point) */ {
 public:
  inline Point() : Point(nullptr) {}
  ~Point() override;
  explicit PROTOBUF_CONSTEXPR Point(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  Point(const Point& from);
  Point(Point&& from) noexcept
    : Point() {
    *this = ::std::move(from);
  }

  inline Point& operator=(const Point& from) {
    CopyFrom(from);
    return *this;
  }
  inline Point& operator=(Point&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const Point& default_instance() {
    return *internal_default_instance();
  }
  static inline const Point* internal_default_instance() {
    return reinterpret_cast<const Point*>(
               &_Point_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    58;

  friend void swap(Point& a, Point& b) {
    a.Swap(&b);
  }
  inline void Swap(Point* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(Point* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  Point* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<Point>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const Point& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom( const Point& from) {
    Point::MergeImpl(*this, from);
  }
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned);
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(Point* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.Point";
  }
  protected:
  explicit Point(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kXFieldNumber = 1,
    kYFieldNumber = 2,
  };
  // float x = 1;
  void clear_x();
  float x() const;
  void set_x(float value);
  private:
  float _internal_x() const;
  void _internal_set_x(float value);
  public:

  // float y = 2;
  void clear_y();
  float y() const;
  void set_y(float value);
  private:
  float _internal_y() const;
  void _internal_set_y(float value);
  public:

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.Point)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    float x_;
    float y_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class Size final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.Size) */ {
 public:
  inline Size() : Size(nullptr) {}
  ~Size() override;
  explicit PROTOBUF_CONSTEXPR Size(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  Size(const Size& from);
  Size(Size&& from) noexcept
    : Size() {
    *this = ::std::move(from);
  }

  inline Size& operator=(const Size& from) {
    CopyFrom(from);
    return *this;
  }
  inline Size& operator=(Size&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const Size& default_instance() {
    return *internal_default_instance();
  }
  static inline const Size* internal_default_instance() {
    return reinterpret_cast<const Size*>(
               &_Size_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    59;

  friend void swap(Size& a, Size& b) {
    a.Swap(&b);
  }
  inline void Swap(Size* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(Size* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  Size* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<Size>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const Size& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom( const Size& from) {
    Size::MergeImpl(*this, from);
  }
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned);
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(Size* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.Size";
  }
  protected:
  explicit Size(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kWidthFieldNumber = 1,
    kHeightFieldNumber = 2,
  };
  // float width = 1;
  void clear_width();
  float width() const;
  void set_width(float value);
  private:
  float _internal_width() const;
  void _internal_set_width(float value);
  public:

  // float height = 2;
  void clear_height();
  float height() const;
  void set_height(float value);
  private:
  float _internal_height() const;
  void _internal_set_height(float value);
  public:

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.Size)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    float width_;
    float height_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class BoundingBox final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.BoundingBox) */ {
 public:
  inline BoundingBox() : BoundingBox(nullptr) {}
  ~BoundingBox() override;
  explicit PROTOBUF_CONSTEXPR BoundingBox(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  BoundingBox(const BoundingBox& from);
  BoundingBox(BoundingBox&& from) noexcept
    : BoundingBox() {
    *this = ::std::move(from);
  }

  inline BoundingBox& operator=(const BoundingBox& from) {
    CopyFrom(from);
    return *this;
  }
  inline BoundingBox& operator=(BoundingBox&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const BoundingBox& default_instance() {
    return *internal_default_instance();
  }
  static inline const BoundingBox* internal_default_instance() {
    return reinterpret_cast<const BoundingBox*>(
               &_BoundingBox_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    60;

  friend void swap(BoundingBox& a, BoundingBox& b) {
    a.Swap(&b);
  }
  inline void Swap(BoundingBox* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(BoundingBox* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  BoundingBox* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<BoundingBox>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const BoundingBox& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom( const BoundingBox& from) {
    BoundingBox::MergeImpl(*this, from);
  }
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned);
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(BoundingBox* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.BoundingBox";
  }
  protected:
  explicit BoundingBox(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kLabelFieldNumber = 1,
    kTopLeftFieldNumber = 3,
    kSizeFieldNumber = 4,
  };
  // .vitis.ai.proto.ClassificationLabel label = 1;
  bool has_label() const;
  private:
  bool _internal_has_label() const;
  public:
  void clear_label();
  const ::vitis::ai::proto::ClassificationLabel& label() const;
  PROTOBUF_NODISCARD ::vitis::ai::proto::ClassificationLabel* release_label();
  ::vitis::ai::proto::ClassificationLabel* mutable_label();
  void set_allocated_label(::vitis::ai::proto::ClassificationLabel* label);
  private:
  const ::vitis::ai::proto::ClassificationLabel& _internal_label() const;
  ::vitis::ai::proto::ClassificationLabel* _internal_mutable_label();
  public:
  void unsafe_arena_set_allocated_label(
      ::vitis::ai::proto::ClassificationLabel* label);
  ::vitis::ai::proto::ClassificationLabel* unsafe_arena_release_label();

  // .vitis.ai.proto.Point top_left = 3;
  bool has_top_left() const;
  private:
  bool _internal_has_top_left() const;
  public:
  void clear_top_left();
  const ::vitis::ai::proto::Point& top_left() const;
  PROTOBUF_NODISCARD ::vitis::ai::proto::Point* release_top_left();
  ::vitis::ai::proto::Point* mutable_top_left();
  void set_allocated_top_left(::vitis::ai::proto::Point* top_left);
  private:
  const ::vitis::ai::proto::Point& _internal_top_left() const;
  ::vitis::ai::proto::Point* _internal_mutable_top_left();
  public:
  void unsafe_arena_set_allocated_top_left(
      ::vitis::ai::proto::Point* top_left);
  ::vitis::ai::proto::Point* unsafe_arena_release_top_left();

  // .vitis.ai.proto.Size size = 4;
  bool has_size() const;
  private:
  bool _internal_has_size() const;
  public:
  void clear_size();
  const ::vitis::ai::proto::Size& size() const;
  PROTOBUF_NODISCARD ::vitis::ai::proto::Size* release_size();
  ::vitis::ai::proto::Size* mutable_size();
  void set_allocated_size(::vitis::ai::proto::Size* size);
  private:
  const ::vitis::ai::proto::Size& _internal_size() const;
  ::vitis::ai::proto::Size* _internal_mutable_size();
  public:
  void unsafe_arena_set_allocated_size(
      ::vitis::ai::proto::Size* size);
  ::vitis::ai::proto::Size* unsafe_arena_release_size();

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.BoundingBox)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    ::vitis::ai::proto::ClassificationLabel* label_;
    ::vitis::ai::proto::Point* top_left_;
    ::vitis::ai::proto::Size* size_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class AttributeResult final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.AttributeResult) */ {
 public:
  inline AttributeResult() : AttributeResult(nullptr) {}
  ~AttributeResult() override;
  explicit PROTOBUF_CONSTEXPR AttributeResult(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  AttributeResult(const AttributeResult& from);
  AttributeResult(AttributeResult&& from) noexcept
    : AttributeResult() {
    *this = ::std::move(from);
  }

  inline AttributeResult& operator=(const AttributeResult& from) {
    CopyFrom(from);
    return *this;
  }
  inline AttributeResult& operator=(AttributeResult&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const AttributeResult& default_instance() {
    return *internal_default_instance();
  }
  static inline const AttributeResult* internal_default_instance() {
    return reinterpret_cast<const AttributeResult*>(
               &_AttributeResult_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    61;

  friend void swap(AttributeResult& a, AttributeResult& b) {
    a.Swap(&b);
  }
  inline void Swap(AttributeResult* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(AttributeResult* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  AttributeResult* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<AttributeResult>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const AttributeResult& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom( const AttributeResult& from) {
    AttributeResult::MergeImpl(*this, from);
  }
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned);
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(AttributeResult* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.AttributeResult";
  }
  protected:
  explicit AttributeResult(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kAttributeFieldNumber = 1,
  };
  // repeated .vitis.ai.proto.Attribute attribute = 1;
  int attribute_size() const;
  private:
  int _internal_attribute_size() const;
  public:
  void clear_attribute();
  ::vitis::ai::proto::Attribute* mutable_attribute(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::Attribute >*
      mutable_attribute();
  private:
  const ::vitis::ai::proto::Attribute& _internal_attribute(int index) const;
  ::vitis::ai::proto::Attribute* _internal_add_attribute();
  public:
  const ::vitis::ai::proto::Attribute& attribute(int index) const;
  ::vitis::ai::proto::Attribute* add_attribute();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::Attribute >&
      attribute() const;

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.AttributeResult)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::Attribute > attribute_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class LandmarkResult final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.LandmarkResult) */ {
 public:
  inline LandmarkResult() : LandmarkResult(nullptr) {}
  ~LandmarkResult() override;
  explicit PROTOBUF_CONSTEXPR LandmarkResult(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  LandmarkResult(const LandmarkResult& from);
  LandmarkResult(LandmarkResult&& from) noexcept
    : LandmarkResult() {
    *this = ::std::move(from);
  }

  inline LandmarkResult& operator=(const LandmarkResult& from) {
    CopyFrom(from);
    return *this;
  }
  inline LandmarkResult& operator=(LandmarkResult&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const LandmarkResult& default_instance() {
    return *internal_default_instance();
  }
  static inline const LandmarkResult* internal_default_instance() {
    return reinterpret_cast<const LandmarkResult*>(
               &_LandmarkResult_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    62;

  friend void swap(LandmarkResult& a, LandmarkResult& b) {
    a.Swap(&b);
  }
  inline void Swap(LandmarkResult* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(LandmarkResult* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  LandmarkResult* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<LandmarkResult>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const LandmarkResult& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom( const LandmarkResult& from) {
    LandmarkResult::MergeImpl(*this, from);
  }
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned);
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(LandmarkResult* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.LandmarkResult";
  }
  protected:
  explicit LandmarkResult(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kPointFieldNumber = 2,
    kScoreFieldNumber = 1,
    kGenderFieldNumber = 3,
    kAgeFieldNumber = 4,
  };
  // repeated .vitis.ai.proto.Point point = 2;
  int point_size() const;
  private:
  int _internal_point_size() const;
  public:
  void clear_point();
  ::vitis::ai::proto::Point* mutable_point(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::Point >*
      mutable_point();
  private:
  const ::vitis::ai::proto::Point& _internal_point(int index) const;
  ::vitis::ai::proto::Point* _internal_add_point();
  public:
  const ::vitis::ai::proto::Point& point(int index) const;
  ::vitis::ai::proto::Point* add_point();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::Point >&
      point() const;

  // float score = 1;
  void clear_score();
  float score() const;
  void set_score(float value);
  private:
  float _internal_score() const;
  void _internal_set_score(float value);
  public:

  // uint32 gender = 3;
  void clear_gender();
  uint32_t gender() const;
  void set_gender(uint32_t value);
  private:
  uint32_t _internal_gender() const;
  void _internal_set_gender(uint32_t value);
  public:

  // uint32 age = 4;
  void clear_age();
  uint32_t age() const;
  void set_age(uint32_t value);
  private:
  uint32_t _internal_age() const;
  void _internal_set_age(uint32_t value);
  public:

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.LandmarkResult)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::Point > point_;
    float score_;
    uint32_t gender_;
    uint32_t age_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class DetectResult final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.DetectResult) */ {
 public:
  inline DetectResult() : DetectResult(nullptr) {}
  ~DetectResult() override;
  explicit PROTOBUF_CONSTEXPR DetectResult(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  DetectResult(const DetectResult& from);
  DetectResult(DetectResult&& from) noexcept
    : DetectResult() {
    *this = ::std::move(from);
  }

  inline DetectResult& operator=(const DetectResult& from) {
    CopyFrom(from);
    return *this;
  }
  inline DetectResult& operator=(DetectResult&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const DetectResult& default_instance() {
    return *internal_default_instance();
  }
  static inline const DetectResult* internal_default_instance() {
    return reinterpret_cast<const DetectResult*>(
               &_DetectResult_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    63;

  friend void swap(DetectResult& a, DetectResult& b) {
    a.Swap(&b);
  }
  inline void Swap(DetectResult* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(DetectResult* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  DetectResult* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<DetectResult>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const DetectResult& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom( const DetectResult& from) {
    DetectResult::MergeImpl(*this, from);
  }
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned);
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(DetectResult* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.DetectResult";
  }
  protected:
  explicit DetectResult(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kBoundingBoxFieldNumber = 1,
  };
  // repeated .vitis.ai.proto.BoundingBox bounding_box = 1;
  int bounding_box_size() const;
  private:
  int _internal_bounding_box_size() const;
  public:
  void clear_bounding_box();
  ::vitis::ai::proto::BoundingBox* mutable_bounding_box(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::BoundingBox >*
      mutable_bounding_box();
  private:
  const ::vitis::ai::proto::BoundingBox& _internal_bounding_box(int index) const;
  ::vitis::ai::proto::BoundingBox* _internal_add_bounding_box();
  public:
  const ::vitis::ai::proto::BoundingBox& bounding_box(int index) const;
  ::vitis::ai::proto::BoundingBox* add_bounding_box();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::BoundingBox >&
      bounding_box() const;

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.DetectResult)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::BoundingBox > bounding_box_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class LineAttribute final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.LineAttribute) */ {
 public:
  inline LineAttribute() : LineAttribute(nullptr) {}
  ~LineAttribute() override;
  explicit PROTOBUF_CONSTEXPR LineAttribute(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  LineAttribute(const LineAttribute& from);
  LineAttribute(LineAttribute&& from) noexcept
    : LineAttribute() {
    *this = ::std::move(from);
  }

  inline LineAttribute& operator=(const LineAttribute& from) {
    CopyFrom(from);
    return *this;
  }
  inline LineAttribute& operator=(LineAttribute&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const LineAttribute& default_instance() {
    return *internal_default_instance();
  }
  static inline const LineAttribute* internal_default_instance() {
    return reinterpret_cast<const LineAttribute*>(
               &_LineAttribute_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    64;

  friend void swap(LineAttribute& a, LineAttribute& b) {
    a.Swap(&b);
  }
  inline void Swap(LineAttribute* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(LineAttribute* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  LineAttribute* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<LineAttribute>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const LineAttribute& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom( const LineAttribute& from) {
    LineAttribute::MergeImpl(*this, from);
  }
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned);
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(LineAttribute* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.LineAttribute";
  }
  protected:
  explicit LineAttribute(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kPointFieldNumber = 2,
    kTypeFieldNumber = 1,
  };
  // repeated .vitis.ai.proto.Point point = 2;
  int point_size() const;
  private:
  int _internal_point_size() const;
  public:
  void clear_point();
  ::vitis::ai::proto::Point* mutable_point(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::Point >*
      mutable_point();
  private:
  const ::vitis::ai::proto::Point& _internal_point(int index) const;
  ::vitis::ai::proto::Point* _internal_add_point();
  public:
  const ::vitis::ai::proto::Point& point(int index) const;
  ::vitis::ai::proto::Point* add_point();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::Point >&
      point() const;

  // int32 type = 1;
  void clear_type();
  int32_t type() const;
  void set_type(int32_t value);
  private:
  int32_t _internal_type() const;
  void _internal_set_type(int32_t value);
  public:

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.LineAttribute)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::Point > point_;
    int32_t type_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class RoadlineResult final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.RoadlineResult) */ {
 public:
  inline RoadlineResult() : RoadlineResult(nullptr) {}
  ~RoadlineResult() override;
  explicit PROTOBUF_CONSTEXPR RoadlineResult(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  RoadlineResult(const RoadlineResult& from);
  RoadlineResult(RoadlineResult&& from) noexcept
    : RoadlineResult() {
    *this = ::std::move(from);
  }

  inline RoadlineResult& operator=(const RoadlineResult& from) {
    CopyFrom(from);
    return *this;
  }
  inline RoadlineResult& operator=(RoadlineResult&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const RoadlineResult& default_instance() {
    return *internal_default_instance();
  }
  static inline const RoadlineResult* internal_default_instance() {
    return reinterpret_cast<const RoadlineResult*>(
               &_RoadlineResult_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    65;

  friend void swap(RoadlineResult& a, RoadlineResult& b) {
    a.Swap(&b);
  }
  inline void Swap(RoadlineResult* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(RoadlineResult* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  RoadlineResult* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<RoadlineResult>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const RoadlineResult& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom( const RoadlineResult& from) {
    RoadlineResult::MergeImpl(*this, from);
  }
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned);
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(RoadlineResult* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.RoadlineResult";
  }
  protected:
  explicit RoadlineResult(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kLineAttributeFieldNumber = 1,
  };
  // repeated .vitis.ai.proto.LineAttribute line_attribute = 1;
  int line_attribute_size() const;
  private:
  int _internal_line_attribute_size() const;
  public:
  void clear_line_attribute();
  ::vitis::ai::proto::LineAttribute* mutable_line_attribute(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::LineAttribute >*
      mutable_line_attribute();
  private:
  const ::vitis::ai::proto::LineAttribute& _internal_line_attribute(int index) const;
  ::vitis::ai::proto::LineAttribute* _internal_add_line_attribute();
  public:
  const ::vitis::ai::proto::LineAttribute& line_attribute(int index) const;
  ::vitis::ai::proto::LineAttribute* add_line_attribute();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::LineAttribute >&
      line_attribute() const;

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.RoadlineResult)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::LineAttribute > line_attribute_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class Score final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.Score) */ {
 public:
  inline Score() : Score(nullptr) {}
  ~Score() override;
  explicit PROTOBUF_CONSTEXPR Score(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  Score(const Score& from);
  Score(Score&& from) noexcept
    : Score() {
    *this = ::std::move(from);
  }

  inline Score& operator=(const Score& from) {
    CopyFrom(from);
    return *this;
  }
  inline Score& operator=(Score&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const Score& default_instance() {
    return *internal_default_instance();
  }
  static inline const Score* internal_default_instance() {
    return reinterpret_cast<const Score*>(
               &_Score_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    66;

  friend void swap(Score& a, Score& b) {
    a.Swap(&b);
  }
  inline void Swap(Score* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(Score* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  Score* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<Score>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const Score& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom( const Score& from) {
    Score::MergeImpl(*this, from);
  }
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned);
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(Score* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.Score";
  }
  protected:
  explicit Score(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kIndexFieldNumber = 1,
    kScoreFieldNumber = 2,
  };
  // int32 index = 1;
  void clear_index();
  int32_t index() const;
  void set_index(int32_t value);
  private:
  int32_t _internal_index() const;
  void _internal_set_index(int32_t value);
  public:

  // float score = 2;
  void clear_score();
  float score() const;
  void set_score(float value);
  private:
  float _internal_score() const;
  void _internal_set_score(float value);
  public:

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.Score)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    int32_t index_;
    float score_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class ClassificationLabel final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.ClassificationLabel) */ {
 public:
  inline ClassificationLabel() : ClassificationLabel(nullptr) {}
  ~ClassificationLabel() override;
  explicit PROTOBUF_CONSTEXPR ClassificationLabel(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  ClassificationLabel(const ClassificationLabel& from);
  ClassificationLabel(ClassificationLabel&& from) noexcept
    : ClassificationLabel() {
    *this = ::std::move(from);
  }

  inline ClassificationLabel& operator=(const ClassificationLabel& from) {
    CopyFrom(from);
    return *this;
  }
  inline ClassificationLabel& operator=(ClassificationLabel&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const ClassificationLabel& default_instance() {
    return *internal_default_instance();
  }
  static inline const ClassificationLabel* internal_default_instance() {
    return reinterpret_cast<const ClassificationLabel*>(
               &_ClassificationLabel_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    67;

  friend void swap(ClassificationLabel& a, ClassificationLabel& b) {
    a.Swap(&b);
  }
  inline void Swap(ClassificationLabel* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ClassificationLabel* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  ClassificationLabel* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<ClassificationLabel>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const ClassificationLabel& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom( const ClassificationLabel& from) {
    ClassificationLabel::MergeImpl(*this, from);
  }
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned);
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(ClassificationLabel* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.ClassificationLabel";
  }
  protected:
  explicit ClassificationLabel(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kNameFieldNumber = 1,
    kIndexFieldNumber = 2,
    kScoreFieldNumber = 3,
  };
  // string name = 1;
  void clear_name();
  const std::string& name() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_name(ArgT0&& arg0, ArgT... args);
  std::string* mutable_name();
  PROTOBUF_NODISCARD std::string* release_name();
  void set_allocated_name(std::string* name);
  private:
  const std::string& _internal_name() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_name(const std::string& value);
  std::string* _internal_mutable_name();
  public:

  // uint32 index = 2;
  void clear_index();
  uint32_t index() const;
  void set_index(uint32_t value);
  private:
  uint32_t _internal_index() const;
  void _internal_set_index(uint32_t value);
  public:

  // float score = 3;
  void clear_score();
  float score() const;
  void set_score(float value);
  private:
  float _internal_score() const;
  void _internal_set_score(float value);
  public:

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.ClassificationLabel)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr name_;
    uint32_t index_;
    float score_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class ClassificationResult final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.ClassificationResult) */ {
 public:
  inline ClassificationResult() : ClassificationResult(nullptr) {}
  ~ClassificationResult() override;
  explicit PROTOBUF_CONSTEXPR ClassificationResult(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  ClassificationResult(const ClassificationResult& from);
  ClassificationResult(ClassificationResult&& from) noexcept
    : ClassificationResult() {
    *this = ::std::move(from);
  }

  inline ClassificationResult& operator=(const ClassificationResult& from) {
    CopyFrom(from);
    return *this;
  }
  inline ClassificationResult& operator=(ClassificationResult&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const ClassificationResult& default_instance() {
    return *internal_default_instance();
  }
  static inline const ClassificationResult* internal_default_instance() {
    return reinterpret_cast<const ClassificationResult*>(
               &_ClassificationResult_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    68;

  friend void swap(ClassificationResult& a, ClassificationResult& b) {
    a.Swap(&b);
  }
  inline void Swap(ClassificationResult* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ClassificationResult* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  ClassificationResult* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<ClassificationResult>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const ClassificationResult& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom( const ClassificationResult& from) {
    ClassificationResult::MergeImpl(*this, from);
  }
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned);
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(ClassificationResult* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.ClassificationResult";
  }
  protected:
  explicit ClassificationResult(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kTopkFieldNumber = 1,
  };
  // repeated .vitis.ai.proto.ClassificationLabel topk = 1;
  int topk_size() const;
  private:
  int _internal_topk_size() const;
  public:
  void clear_topk();
  ::vitis::ai::proto::ClassificationLabel* mutable_topk(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::ClassificationLabel >*
      mutable_topk();
  private:
  const ::vitis::ai::proto::ClassificationLabel& _internal_topk(int index) const;
  ::vitis::ai::proto::ClassificationLabel* _internal_add_topk();
  public:
  const ::vitis::ai::proto::ClassificationLabel& topk(int index) const;
  ::vitis::ai::proto::ClassificationLabel* add_topk();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::ClassificationLabel >&
      topk() const;

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.ClassificationResult)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::ClassificationLabel > topk_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class FaceLandmarkResult final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.FaceLandmarkResult) */ {
 public:
  inline FaceLandmarkResult() : FaceLandmarkResult(nullptr) {}
  ~FaceLandmarkResult() override;
  explicit PROTOBUF_CONSTEXPR FaceLandmarkResult(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  FaceLandmarkResult(const FaceLandmarkResult& from);
  FaceLandmarkResult(FaceLandmarkResult&& from) noexcept
    : FaceLandmarkResult() {
    *this = ::std::move(from);
  }

  inline FaceLandmarkResult& operator=(const FaceLandmarkResult& from) {
    CopyFrom(from);
    return *this;
  }
  inline FaceLandmarkResult& operator=(FaceLandmarkResult&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const FaceLandmarkResult& default_instance() {
    return *internal_default_instance();
  }
  static inline const FaceLandmarkResult* internal_default_instance() {
    return reinterpret_cast<const FaceLandmarkResult*>(
               &_FaceLandmarkResult_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    69;

  friend void swap(FaceLandmarkResult& a, FaceLandmarkResult& b) {
    a.Swap(&b);
  }
  inline void Swap(FaceLandmarkResult* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(FaceLandmarkResult* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  FaceLandmarkResult* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<FaceLandmarkResult>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const FaceLandmarkResult& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom( const FaceLandmarkResult& from) {
    FaceLandmarkResult::MergeImpl(*this, from);
  }
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned);
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(FaceLandmarkResult* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.FaceLandmarkResult";
  }
  protected:
  explicit FaceLandmarkResult(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kPointFieldNumber = 1,
  };
  // repeated .vitis.ai.proto.Point point = 1;
  int point_size() const;
  private:
  int _internal_point_size() const;
  public:
  void clear_point();
  ::vitis::ai::proto::Point* mutable_point(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::Point >*
      mutable_point();
  private:
  const ::vitis::ai::proto::Point& _internal_point(int index) const;
  ::vitis::ai::proto::Point* _internal_add_point();
  public:
  const ::vitis::ai::proto::Point& point(int index) const;
  ::vitis::ai::proto::Point* add_point();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::Point >&
      point() const;

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.FaceLandmarkResult)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::Point > point_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class PlateDetectResult final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.PlateDetectResult) */ {
 public:
  inline PlateDetectResult() : PlateDetectResult(nullptr) {}
  ~PlateDetectResult() override;
  explicit PROTOBUF_CONSTEXPR PlateDetectResult(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  PlateDetectResult(const PlateDetectResult& from);
  PlateDetectResult(PlateDetectResult&& from) noexcept
    : PlateDetectResult() {
    *this = ::std::move(from);
  }

  inline PlateDetectResult& operator=(const PlateDetectResult& from) {
    CopyFrom(from);
    return *this;
  }
  inline PlateDetectResult& operator=(PlateDetectResult&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const PlateDetectResult& default_instance() {
    return *internal_default_instance();
  }
  static inline const PlateDetectResult* internal_default_instance() {
    return reinterpret_cast<const PlateDetectResult*>(
               &_PlateDetectResult_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    70;

  friend void swap(PlateDetectResult& a, PlateDetectResult& b) {
    a.Swap(&b);
  }
  inline void Swap(PlateDetectResult* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(PlateDetectResult* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  PlateDetectResult* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<PlateDetectResult>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const PlateDetectResult& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom( const PlateDetectResult& from) {
    PlateDetectResult::MergeImpl(*this, from);
  }
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned);
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(PlateDetectResult* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.PlateDetectResult";
  }
  protected:
  explicit PlateDetectResult(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kBoundingBoxFieldNumber = 1,
  };
  // .vitis.ai.proto.BoundingBox bounding_box = 1;
  bool has_bounding_box() const;
  private:
  bool _internal_has_bounding_box() const;
  public:
  void clear_bounding_box();
  const ::vitis::ai::proto::BoundingBox& bounding_box() const;
  PROTOBUF_NODISCARD ::vitis::ai::proto::BoundingBox* release_bounding_box();
  ::vitis::ai::proto::BoundingBox* mutable_bounding_box();
  void set_allocated_bounding_box(::vitis::ai::proto::BoundingBox* bounding_box);
  private:
  const ::vitis::ai::proto::BoundingBox& _internal_bounding_box() const;
  ::vitis::ai::proto::BoundingBox* _internal_mutable_bounding_box();
  public:
  void unsafe_arena_set_allocated_bounding_box(
      ::vitis::ai::proto::BoundingBox* bounding_box);
  ::vitis::ai::proto::BoundingBox* unsafe_arena_release_bounding_box();

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.PlateDetectResult)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    ::vitis::ai::proto::BoundingBox* bounding_box_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class PlateNumberResult final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.PlateNumberResult) */ {
 public:
  inline PlateNumberResult() : PlateNumberResult(nullptr) {}
  ~PlateNumberResult() override;
  explicit PROTOBUF_CONSTEXPR PlateNumberResult(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  PlateNumberResult(const PlateNumberResult& from);
  PlateNumberResult(PlateNumberResult&& from) noexcept
    : PlateNumberResult() {
    *this = ::std::move(from);
  }

  inline PlateNumberResult& operator=(const PlateNumberResult& from) {
    CopyFrom(from);
    return *this;
  }
  inline PlateNumberResult& operator=(PlateNumberResult&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const PlateNumberResult& default_instance() {
    return *internal_default_instance();
  }
  static inline const PlateNumberResult* internal_default_instance() {
    return reinterpret_cast<const PlateNumberResult*>(
               &_PlateNumberResult_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    71;

  friend void swap(PlateNumberResult& a, PlateNumberResult& b) {
    a.Swap(&b);
  }
  inline void Swap(PlateNumberResult* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(PlateNumberResult* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  PlateNumberResult* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<PlateNumberResult>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const PlateNumberResult& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom( const PlateNumberResult& from) {
    PlateNumberResult::MergeImpl(*this, from);
  }
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned);
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(PlateNumberResult* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.PlateNumberResult";
  }
  protected:
  explicit PlateNumberResult(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kPlateNumberFieldNumber = 1,
    kPlateColorFieldNumber = 2,
  };
  // string plate_number = 1;
  void clear_plate_number();
  const std::string& plate_number() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_plate_number(ArgT0&& arg0, ArgT... args);
  std::string* mutable_plate_number();
  PROTOBUF_NODISCARD std::string* release_plate_number();
  void set_allocated_plate_number(std::string* plate_number);
  private:
  const std::string& _internal_plate_number() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_plate_number(const std::string& value);
  std::string* _internal_mutable_plate_number();
  public:

  // string plate_color = 2;
  void clear_plate_color();
  const std::string& plate_color() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_plate_color(ArgT0&& arg0, ArgT... args);
  std::string* mutable_plate_color();
  PROTOBUF_NODISCARD std::string* release_plate_color();
  void set_allocated_plate_color(std::string* plate_color);
  private:
  const std::string& _internal_plate_color() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_plate_color(const std::string& value);
  std::string* _internal_mutable_plate_color();
  public:

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.PlateNumberResult)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr plate_number_;
    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr plate_color_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class PlateRecogResult final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.PlateRecogResult) */ {
 public:
  inline PlateRecogResult() : PlateRecogResult(nullptr) {}
  ~PlateRecogResult() override;
  explicit PROTOBUF_CONSTEXPR PlateRecogResult(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  PlateRecogResult(const PlateRecogResult& from);
  PlateRecogResult(PlateRecogResult&& from) noexcept
    : PlateRecogResult() {
    *this = ::std::move(from);
  }

  inline PlateRecogResult& operator=(const PlateRecogResult& from) {
    CopyFrom(from);
    return *this;
  }
  inline PlateRecogResult& operator=(PlateRecogResult&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const PlateRecogResult& default_instance() {
    return *internal_default_instance();
  }
  static inline const PlateRecogResult* internal_default_instance() {
    return reinterpret_cast<const PlateRecogResult*>(
               &_PlateRecogResult_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    72;

  friend void swap(PlateRecogResult& a, PlateRecogResult& b) {
    a.Swap(&b);
  }
  inline void Swap(PlateRecogResult* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(PlateRecogResult* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  PlateRecogResult* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<PlateRecogResult>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const PlateRecogResult& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom( const PlateRecogResult& from) {
    PlateRecogResult::MergeImpl(*this, from);
  }
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned);
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(PlateRecogResult* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.PlateRecogResult";
  }
  protected:
  explicit PlateRecogResult(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kPlateNumberFieldNumber = 2,
    kPlateColorFieldNumber = 3,
    kBoundingBoxFieldNumber = 1,
  };
  // string plate_number = 2;
  void clear_plate_number();
  const std::string& plate_number() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_plate_number(ArgT0&& arg0, ArgT... args);
  std::string* mutable_plate_number();
  PROTOBUF_NODISCARD std::string* release_plate_number();
  void set_allocated_plate_number(std::string* plate_number);
  private:
  const std::string& _internal_plate_number() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_plate_number(const std::string& value);
  std::string* _internal_mutable_plate_number();
  public:

  // string plate_color = 3;
  void clear_plate_color();
  const std::string& plate_color() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_plate_color(ArgT0&& arg0, ArgT... args);
  std::string* mutable_plate_color();
  PROTOBUF_NODISCARD std::string* release_plate_color();
  void set_allocated_plate_color(std::string* plate_color);
  private:
  const std::string& _internal_plate_color() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_plate_color(const std::string& value);
  std::string* _internal_mutable_plate_color();
  public:

  // .vitis.ai.proto.BoundingBox bounding_box = 1;
  bool has_bounding_box() const;
  private:
  bool _internal_has_bounding_box() const;
  public:
  void clear_bounding_box();
  const ::vitis::ai::proto::BoundingBox& bounding_box() const;
  PROTOBUF_NODISCARD ::vitis::ai::proto::BoundingBox* release_bounding_box();
  ::vitis::ai::proto::BoundingBox* mutable_bounding_box();
  void set_allocated_bounding_box(::vitis::ai::proto::BoundingBox* bounding_box);
  private:
  const ::vitis::ai::proto::BoundingBox& _internal_bounding_box() const;
  ::vitis::ai::proto::BoundingBox* _internal_mutable_bounding_box();
  public:
  void unsafe_arena_set_allocated_bounding_box(
      ::vitis::ai::proto::BoundingBox* bounding_box);
  ::vitis::ai::proto::BoundingBox* unsafe_arena_release_bounding_box();

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.PlateRecogResult)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr plate_number_;
    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr plate_color_;
    ::vitis::ai::proto::BoundingBox* bounding_box_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class PoseDetectResult final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.PoseDetectResult) */ {
 public:
  inline PoseDetectResult() : PoseDetectResult(nullptr) {}
  ~PoseDetectResult() override;
  explicit PROTOBUF_CONSTEXPR PoseDetectResult(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  PoseDetectResult(const PoseDetectResult& from);
  PoseDetectResult(PoseDetectResult&& from) noexcept
    : PoseDetectResult() {
    *this = ::std::move(from);
  }

  inline PoseDetectResult& operator=(const PoseDetectResult& from) {
    CopyFrom(from);
    return *this;
  }
  inline PoseDetectResult& operator=(PoseDetectResult&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const PoseDetectResult& default_instance() {
    return *internal_default_instance();
  }
  static inline const PoseDetectResult* internal_default_instance() {
    return reinterpret_cast<const PoseDetectResult*>(
               &_PoseDetectResult_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    73;

  friend void swap(PoseDetectResult& a, PoseDetectResult& b) {
    a.Swap(&b);
  }
  inline void Swap(PoseDetectResult* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(PoseDetectResult* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  PoseDetectResult* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<PoseDetectResult>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const PoseDetectResult& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom( const PoseDetectResult& from) {
    PoseDetectResult::MergeImpl(*this, from);
  }
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned);
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(PoseDetectResult* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.PoseDetectResult";
  }
  protected:
  explicit PoseDetectResult(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kRightShoulderFieldNumber = 1,
    kRightElbowFieldNumber = 2,
    kRightWristFieldNumber = 3,
    kLeftShoulderFieldNumber = 4,
    kLeftElbowFieldNumber = 5,
    kLeftWristFieldNumber = 6,
    kRightHipFieldNumber = 7,
    kRightKneeFieldNumber = 8,
    kRightAnkleFieldNumber = 9,
    kLeftHipFieldNumber = 10,
    kLeftKneeFieldNumber = 11,
    kLeftAnkleFieldNumber = 12,
    kHeadFieldNumber = 13,
    kNeckFieldNumber = 14,
  };
  // .vitis.ai.proto.Point right_shoulder = 1;
  bool has_right_shoulder() const;
  private:
  bool _internal_has_right_shoulder() const;
  public:
  void clear_right_shoulder();
  const ::vitis::ai::proto::Point& right_shoulder() const;
  PROTOBUF_NODISCARD ::vitis::ai::proto::Point* release_right_shoulder();
  ::vitis::ai::proto::Point* mutable_right_shoulder();
  void set_allocated_right_shoulder(::vitis::ai::proto::Point* right_shoulder);
  private:
  const ::vitis::ai::proto::Point& _internal_right_shoulder() const;
  ::vitis::ai::proto::Point* _internal_mutable_right_shoulder();
  public:
  void unsafe_arena_set_allocated_right_shoulder(
      ::vitis::ai::proto::Point* right_shoulder);
  ::vitis::ai::proto::Point* unsafe_arena_release_right_shoulder();

  // .vitis.ai.proto.Point right_elbow = 2;
  bool has_right_elbow() const;
  private:
  bool _internal_has_right_elbow() const;
  public:
  void clear_right_elbow();
  const ::vitis::ai::proto::Point& right_elbow() const;
  PROTOBUF_NODISCARD ::vitis::ai::proto::Point* release_right_elbow();
  ::vitis::ai::proto::Point* mutable_right_elbow();
  void set_allocated_right_elbow(::vitis::ai::proto::Point* right_elbow);
  private:
  const ::vitis::ai::proto::Point& _internal_right_elbow() const;
  ::vitis::ai::proto::Point* _internal_mutable_right_elbow();
  public:
  void unsafe_arena_set_allocated_right_elbow(
      ::vitis::ai::proto::Point* right_elbow);
  ::vitis::ai::proto::Point* unsafe_arena_release_right_elbow();

  // .vitis.ai.proto.Point right_wrist = 3;
  bool has_right_wrist() const;
  private:
  bool _internal_has_right_wrist() const;
  public:
  void clear_right_wrist();
  const ::vitis::ai::proto::Point& right_wrist() const;
  PROTOBUF_NODISCARD ::vitis::ai::proto::Point* release_right_wrist();
  ::vitis::ai::proto::Point* mutable_right_wrist();
  void set_allocated_right_wrist(::vitis::ai::proto::Point* right_wrist);
  private:
  const ::vitis::ai::proto::Point& _internal_right_wrist() const;
  ::vitis::ai::proto::Point* _internal_mutable_right_wrist();
  public:
  void unsafe_arena_set_allocated_right_wrist(
      ::vitis::ai::proto::Point* right_wrist);
  ::vitis::ai::proto::Point* unsafe_arena_release_right_wrist();

  // .vitis.ai.proto.Point left_shoulder = 4;
  bool has_left_shoulder() const;
  private:
  bool _internal_has_left_shoulder() const;
  public:
  void clear_left_shoulder();
  const ::vitis::ai::proto::Point& left_shoulder() const;
  PROTOBUF_NODISCARD ::vitis::ai::proto::Point* release_left_shoulder();
  ::vitis::ai::proto::Point* mutable_left_shoulder();
  void set_allocated_left_shoulder(::vitis::ai::proto::Point* left_shoulder);
  private:
  const ::vitis::ai::proto::Point& _internal_left_shoulder() const;
  ::vitis::ai::proto::Point* _internal_mutable_left_shoulder();
  public:
  void unsafe_arena_set_allocated_left_shoulder(
      ::vitis::ai::proto::Point* left_shoulder);
  ::vitis::ai::proto::Point* unsafe_arena_release_left_shoulder();

  // .vitis.ai.proto.Point left_elbow = 5;
  bool has_left_elbow() const;
  private:
  bool _internal_has_left_elbow() const;
  public:
  void clear_left_elbow();
  const ::vitis::ai::proto::Point& left_elbow() const;
  PROTOBUF_NODISCARD ::vitis::ai::proto::Point* release_left_elbow();
  ::vitis::ai::proto::Point* mutable_left_elbow();
  void set_allocated_left_elbow(::vitis::ai::proto::Point* left_elbow);
  private:
  const ::vitis::ai::proto::Point& _internal_left_elbow() const;
  ::vitis::ai::proto::Point* _internal_mutable_left_elbow();
  public:
  void unsafe_arena_set_allocated_left_elbow(
      ::vitis::ai::proto::Point* left_elbow);
  ::vitis::ai::proto::Point* unsafe_arena_release_left_elbow();

  // .vitis.ai.proto.Point left_wrist = 6;
  bool has_left_wrist() const;
  private:
  bool _internal_has_left_wrist() const;
  public:
  void clear_left_wrist();
  const ::vitis::ai::proto::Point& left_wrist() const;
  PROTOBUF_NODISCARD ::vitis::ai::proto::Point* release_left_wrist();
  ::vitis::ai::proto::Point* mutable_left_wrist();
  void set_allocated_left_wrist(::vitis::ai::proto::Point* left_wrist);
  private:
  const ::vitis::ai::proto::Point& _internal_left_wrist() const;
  ::vitis::ai::proto::Point* _internal_mutable_left_wrist();
  public:
  void unsafe_arena_set_allocated_left_wrist(
      ::vitis::ai::proto::Point* left_wrist);
  ::vitis::ai::proto::Point* unsafe_arena_release_left_wrist();

  // .vitis.ai.proto.Point right_hip = 7;
  bool has_right_hip() const;
  private:
  bool _internal_has_right_hip() const;
  public:
  void clear_right_hip();
  const ::vitis::ai::proto::Point& right_hip() const;
  PROTOBUF_NODISCARD ::vitis::ai::proto::Point* release_right_hip();
  ::vitis::ai::proto::Point* mutable_right_hip();
  void set_allocated_right_hip(::vitis::ai::proto::Point* right_hip);
  private:
  const ::vitis::ai::proto::Point& _internal_right_hip() const;
  ::vitis::ai::proto::Point* _internal_mutable_right_hip();
  public:
  void unsafe_arena_set_allocated_right_hip(
      ::vitis::ai::proto::Point* right_hip);
  ::vitis::ai::proto::Point* unsafe_arena_release_right_hip();

  // .vitis.ai.proto.Point right_knee = 8;
  bool has_right_knee() const;
  private:
  bool _internal_has_right_knee() const;
  public:
  void clear_right_knee();
  const ::vitis::ai::proto::Point& right_knee() const;
  PROTOBUF_NODISCARD ::vitis::ai::proto::Point* release_right_knee();
  ::vitis::ai::proto::Point* mutable_right_knee();
  void set_allocated_right_knee(::vitis::ai::proto::Point* right_knee);
  private:
  const ::vitis::ai::proto::Point& _internal_right_knee() const;
  ::vitis::ai::proto::Point* _internal_mutable_right_knee();
  public:
  void unsafe_arena_set_allocated_right_knee(
      ::vitis::ai::proto::Point* right_knee);
  ::vitis::ai::proto::Point* unsafe_arena_release_right_knee();

  // .vitis.ai.proto.Point right_ankle = 9;
  bool has_right_ankle() const;
  private:
  bool _internal_has_right_ankle() const;
  public:
  void clear_right_ankle();
  const ::vitis::ai::proto::Point& right_ankle() const;
  PROTOBUF_NODISCARD ::vitis::ai::proto::Point* release_right_ankle();
  ::vitis::ai::proto::Point* mutable_right_ankle();
  void set_allocated_right_ankle(::vitis::ai::proto::Point* right_ankle);
  private:
  const ::vitis::ai::proto::Point& _internal_right_ankle() const;
  ::vitis::ai::proto::Point* _internal_mutable_right_ankle();
  public:
  void unsafe_arena_set_allocated_right_ankle(
      ::vitis::ai::proto::Point* right_ankle);
  ::vitis::ai::proto::Point* unsafe_arena_release_right_ankle();

  // .vitis.ai.proto.Point left_hip = 10;
  bool has_left_hip() const;
  private:
  bool _internal_has_left_hip() const;
  public:
  void clear_left_hip();
  const ::vitis::ai::proto::Point& left_hip() const;
  PROTOBUF_NODISCARD ::vitis::ai::proto::Point* release_left_hip();
  ::vitis::ai::proto::Point* mutable_left_hip();
  void set_allocated_left_hip(::vitis::ai::proto::Point* left_hip);
  private:
  const ::vitis::ai::proto::Point& _internal_left_hip() const;
  ::vitis::ai::proto::Point* _internal_mutable_left_hip();
  public:
  void unsafe_arena_set_allocated_left_hip(
      ::vitis::ai::proto::Point* left_hip);
  ::vitis::ai::proto::Point* unsafe_arena_release_left_hip();

  // .vitis.ai.proto.Point left_knee = 11;
  bool has_left_knee() const;
  private:
  bool _internal_has_left_knee() const;
  public:
  void clear_left_knee();
  const ::vitis::ai::proto::Point& left_knee() const;
  PROTOBUF_NODISCARD ::vitis::ai::proto::Point* release_left_knee();
  ::vitis::ai::proto::Point* mutable_left_knee();
  void set_allocated_left_knee(::vitis::ai::proto::Point* left_knee);
  private:
  const ::vitis::ai::proto::Point& _internal_left_knee() const;
  ::vitis::ai::proto::Point* _internal_mutable_left_knee();
  public:
  void unsafe_arena_set_allocated_left_knee(
      ::vitis::ai::proto::Point* left_knee);
  ::vitis::ai::proto::Point* unsafe_arena_release_left_knee();

  // .vitis.ai.proto.Point left_ankle = 12;
  bool has_left_ankle() const;
  private:
  bool _internal_has_left_ankle() const;
  public:
  void clear_left_ankle();
  const ::vitis::ai::proto::Point& left_ankle() const;
  PROTOBUF_NODISCARD ::vitis::ai::proto::Point* release_left_ankle();
  ::vitis::ai::proto::Point* mutable_left_ankle();
  void set_allocated_left_ankle(::vitis::ai::proto::Point* left_ankle);
  private:
  const ::vitis::ai::proto::Point& _internal_left_ankle() const;
  ::vitis::ai::proto::Point* _internal_mutable_left_ankle();
  public:
  void unsafe_arena_set_allocated_left_ankle(
      ::vitis::ai::proto::Point* left_ankle);
  ::vitis::ai::proto::Point* unsafe_arena_release_left_ankle();

  // .vitis.ai.proto.Point head = 13;
  bool has_head() const;
  private:
  bool _internal_has_head() const;
  public:
  void clear_head();
  const ::vitis::ai::proto::Point& head() const;
  PROTOBUF_NODISCARD ::vitis::ai::proto::Point* release_head();
  ::vitis::ai::proto::Point* mutable_head();
  void set_allocated_head(::vitis::ai::proto::Point* head);
  private:
  const ::vitis::ai::proto::Point& _internal_head() const;
  ::vitis::ai::proto::Point* _internal_mutable_head();
  public:
  void unsafe_arena_set_allocated_head(
      ::vitis::ai::proto::Point* head);
  ::vitis::ai::proto::Point* unsafe_arena_release_head();

  // .vitis.ai.proto.Point neck = 14;
  bool has_neck() const;
  private:
  bool _internal_has_neck() const;
  public:
  void clear_neck();
  const ::vitis::ai::proto::Point& neck() const;
  PROTOBUF_NODISCARD ::vitis::ai::proto::Point* release_neck();
  ::vitis::ai::proto::Point* mutable_neck();
  void set_allocated_neck(::vitis::ai::proto::Point* neck);
  private:
  const ::vitis::ai::proto::Point& _internal_neck() const;
  ::vitis::ai::proto::Point* _internal_mutable_neck();
  public:
  void unsafe_arena_set_allocated_neck(
      ::vitis::ai::proto::Point* neck);
  ::vitis::ai::proto::Point* unsafe_arena_release_neck();

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.PoseDetectResult)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    ::vitis::ai::proto::Point* right_shoulder_;
    ::vitis::ai::proto::Point* right_elbow_;
    ::vitis::ai::proto::Point* right_wrist_;
    ::vitis::ai::proto::Point* left_shoulder_;
    ::vitis::ai::proto::Point* left_elbow_;
    ::vitis::ai::proto::Point* left_wrist_;
    ::vitis::ai::proto::Point* right_hip_;
    ::vitis::ai::proto::Point* right_knee_;
    ::vitis::ai::proto::Point* right_ankle_;
    ::vitis::ai::proto::Point* left_hip_;
    ::vitis::ai::proto::Point* left_knee_;
    ::vitis::ai::proto::Point* left_ankle_;
    ::vitis::ai::proto::Point* head_;
    ::vitis::ai::proto::Point* neck_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class FaceFeatureResult final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.FaceFeatureResult) */ {
 public:
  inline FaceFeatureResult() : FaceFeatureResult(nullptr) {}
  ~FaceFeatureResult() override;
  explicit PROTOBUF_CONSTEXPR FaceFeatureResult(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  FaceFeatureResult(const FaceFeatureResult& from);
  FaceFeatureResult(FaceFeatureResult&& from) noexcept
    : FaceFeatureResult() {
    *this = ::std::move(from);
  }

  inline FaceFeatureResult& operator=(const FaceFeatureResult& from) {
    CopyFrom(from);
    return *this;
  }
  inline FaceFeatureResult& operator=(FaceFeatureResult&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const FaceFeatureResult& default_instance() {
    return *internal_default_instance();
  }
  static inline const FaceFeatureResult* internal_default_instance() {
    return reinterpret_cast<const FaceFeatureResult*>(
               &_FaceFeatureResult_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    74;

  friend void swap(FaceFeatureResult& a, FaceFeatureResult& b) {
    a.Swap(&b);
  }
  inline void Swap(FaceFeatureResult* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(FaceFeatureResult* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  FaceFeatureResult* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<FaceFeatureResult>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const FaceFeatureResult& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom( const FaceFeatureResult& from) {
    FaceFeatureResult::MergeImpl(*this, from);
  }
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned);
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(FaceFeatureResult* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.FaceFeatureResult";
  }
  protected:
  explicit FaceFeatureResult(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kFloatVecFieldNumber = 1,
    kFixVecFieldNumber = 2,
    kScaleFieldNumber = 3,
  };
  // repeated float float_vec = 1;
  int float_vec_size() const;
  private:
  int _internal_float_vec_size() const;
  public:
  void clear_float_vec();
  private:
  float _internal_float_vec(int index) const;
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
      _internal_float_vec() const;
  void _internal_add_float_vec(float value);
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
      _internal_mutable_float_vec();
  public:
  float float_vec(int index) const;
  void set_float_vec(int index, float value);
  void add_float_vec(float value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
      float_vec() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
      mutable_float_vec();

  // bytes fix_vec = 2;
  void clear_fix_vec();
  const std::string& fix_vec() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_fix_vec(ArgT0&& arg0, ArgT... args);
  std::string* mutable_fix_vec();
  PROTOBUF_NODISCARD std::string* release_fix_vec();
  void set_allocated_fix_vec(std::string* fix_vec);
  private:
  const std::string& _internal_fix_vec() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_fix_vec(const std::string& value);
  std::string* _internal_mutable_fix_vec();
  public:

  // float scale = 3;
  void clear_scale();
  float scale() const;
  void set_scale(float value);
  private:
  float _internal_scale() const;
  void _internal_set_scale(float value);
  public:

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.FaceFeatureResult)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    ::PROTOBUF_NAMESPACE_ID::RepeatedField< float > float_vec_;
    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr fix_vec_;
    float scale_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class FaceDetectRecogResult final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.FaceDetectRecogResult) */ {
 public:
  inline FaceDetectRecogResult() : FaceDetectRecogResult(nullptr) {}
  ~FaceDetectRecogResult() override;
  explicit PROTOBUF_CONSTEXPR FaceDetectRecogResult(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  FaceDetectRecogResult(const FaceDetectRecogResult& from);
  FaceDetectRecogResult(FaceDetectRecogResult&& from) noexcept
    : FaceDetectRecogResult() {
    *this = ::std::move(from);
  }

  inline FaceDetectRecogResult& operator=(const FaceDetectRecogResult& from) {
    CopyFrom(from);
    return *this;
  }
  inline FaceDetectRecogResult& operator=(FaceDetectRecogResult&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const FaceDetectRecogResult& default_instance() {
    return *internal_default_instance();
  }
  static inline const FaceDetectRecogResult* internal_default_instance() {
    return reinterpret_cast<const FaceDetectRecogResult*>(
               &_FaceDetectRecogResult_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    75;

  friend void swap(FaceDetectRecogResult& a, FaceDetectRecogResult& b) {
    a.Swap(&b);
  }
  inline void Swap(FaceDetectRecogResult* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(FaceDetectRecogResult* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  FaceDetectRecogResult* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<FaceDetectRecogResult>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const FaceDetectRecogResult& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom( const FaceDetectRecogResult& from) {
    FaceDetectRecogResult::MergeImpl(*this, from);
  }
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned);
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(FaceDetectRecogResult* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.FaceDetectRecogResult";
  }
  protected:
  explicit FaceDetectRecogResult(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kBoundingBoxFieldNumber = 1,
    kFeatureFieldNumber = 2,
  };
  // repeated .vitis.ai.proto.BoundingBox bounding_box = 1;
  int bounding_box_size() const;
  private:
  int _internal_bounding_box_size() const;
  public:
  void clear_bounding_box();
  ::vitis::ai::proto::BoundingBox* mutable_bounding_box(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::BoundingBox >*
      mutable_bounding_box();
  private:
  const ::vitis::ai::proto::BoundingBox& _internal_bounding_box(int index) const;
  ::vitis::ai::proto::BoundingBox* _internal_add_bounding_box();
  public:
  const ::vitis::ai::proto::BoundingBox& bounding_box(int index) const;
  ::vitis::ai::proto::BoundingBox* add_bounding_box();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::BoundingBox >&
      bounding_box() const;

  // repeated .vitis.ai.proto.FaceFeatureResult feature = 2;
  int feature_size() const;
  private:
  int _internal_feature_size() const;
  public:
  void clear_feature();
  ::vitis::ai::proto::FaceFeatureResult* mutable_feature(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::FaceFeatureResult >*
      mutable_feature();
  private:
  const ::vitis::ai::proto::FaceFeatureResult& _internal_feature(int index) const;
  ::vitis::ai::proto::FaceFeatureResult* _internal_add_feature();
  public:
  const ::vitis::ai::proto::FaceFeatureResult& feature(int index) const;
  ::vitis::ai::proto::FaceFeatureResult* add_feature();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::FaceFeatureResult >&
      feature() const;

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.FaceDetectRecogResult)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::BoundingBox > bounding_box_;
    ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::FaceFeatureResult > feature_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class SegmetationResult final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.SegmetationResult) */ {
 public:
  inline SegmetationResult() : SegmetationResult(nullptr) {}
  ~SegmetationResult() override;
  explicit PROTOBUF_CONSTEXPR SegmetationResult(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  SegmetationResult(const SegmetationResult& from);
  SegmetationResult(SegmetationResult&& from) noexcept
    : SegmetationResult() {
    *this = ::std::move(from);
  }

  inline SegmetationResult& operator=(const SegmetationResult& from) {
    CopyFrom(from);
    return *this;
  }
  inline SegmetationResult& operator=(SegmetationResult&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const SegmetationResult& default_instance() {
    return *internal_default_instance();
  }
  static inline const SegmetationResult* internal_default_instance() {
    return reinterpret_cast<const SegmetationResult*>(
               &_SegmetationResult_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    76;

  friend void swap(SegmetationResult& a, SegmetationResult& b) {
    a.Swap(&b);
  }
  inline void Swap(SegmetationResult* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(SegmetationResult* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  SegmetationResult* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<SegmetationResult>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const SegmetationResult& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom( const SegmetationResult& from) {
    SegmetationResult::MergeImpl(*this, from);
  }
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned);
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(SegmetationResult* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.SegmetationResult";
  }
  protected:
  explicit SegmetationResult(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kDataFieldNumber = 1,
  };
  // repeated uint32 data = 1;
  int data_size() const;
  private:
  int _internal_data_size() const;
  public:
  void clear_data();
  private:
  uint32_t _internal_data(int index) const;
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< uint32_t >&
      _internal_data() const;
  void _internal_add_data(uint32_t value);
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< uint32_t >*
      _internal_mutable_data();
  public:
  uint32_t data(int index) const;
  void set_data(int index, uint32_t value);
  void add_data(uint32_t value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< uint32_t >&
      data() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< uint32_t >*
      mutable_data();

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.SegmetationResult)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    ::PROTOBUF_NAMESPACE_ID::RepeatedField< uint32_t > data_;
    mutable std::atomic<int> _data_cached_byte_size_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class MedicalSegmetationResult final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.MedicalSegmetationResult) */ {
 public:
  inline MedicalSegmetationResult() : MedicalSegmetationResult(nullptr) {}
  ~MedicalSegmetationResult() override;
  explicit PROTOBUF_CONSTEXPR MedicalSegmetationResult(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  MedicalSegmetationResult(const MedicalSegmetationResult& from);
  MedicalSegmetationResult(MedicalSegmetationResult&& from) noexcept
    : MedicalSegmetationResult() {
    *this = ::std::move(from);
  }

  inline MedicalSegmetationResult& operator=(const MedicalSegmetationResult& from) {
    CopyFrom(from);
    return *this;
  }
  inline MedicalSegmetationResult& operator=(MedicalSegmetationResult&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const MedicalSegmetationResult& default_instance() {
    return *internal_default_instance();
  }
  static inline const MedicalSegmetationResult* internal_default_instance() {
    return reinterpret_cast<const MedicalSegmetationResult*>(
               &_MedicalSegmetationResult_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    77;

  friend void swap(MedicalSegmetationResult& a, MedicalSegmetationResult& b) {
    a.Swap(&b);
  }
  inline void Swap(MedicalSegmetationResult* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(MedicalSegmetationResult* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  MedicalSegmetationResult* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<MedicalSegmetationResult>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const MedicalSegmetationResult& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom( const MedicalSegmetationResult& from) {
    MedicalSegmetationResult::MergeImpl(*this, from);
  }
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned);
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(MedicalSegmetationResult* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.MedicalSegmetationResult";
  }
  protected:
  explicit MedicalSegmetationResult(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kSegmentationFieldNumber = 1,
  };
  // repeated .vitis.ai.proto.SegmetationResult segmentation = 1;
  int segmentation_size() const;
  private:
  int _internal_segmentation_size() const;
  public:
  void clear_segmentation();
  ::vitis::ai::proto::SegmetationResult* mutable_segmentation(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::SegmetationResult >*
      mutable_segmentation();
  private:
  const ::vitis::ai::proto::SegmetationResult& _internal_segmentation(int index) const;
  ::vitis::ai::proto::SegmetationResult* _internal_add_segmentation();
  public:
  const ::vitis::ai::proto::SegmetationResult& segmentation(int index) const;
  ::vitis::ai::proto::SegmetationResult* add_segmentation();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::SegmetationResult >&
      segmentation() const;

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.MedicalSegmetationResult)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::SegmetationResult > segmentation_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class VehicleResult final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.VehicleResult) */ {
 public:
  inline VehicleResult() : VehicleResult(nullptr) {}
  ~VehicleResult() override;
  explicit PROTOBUF_CONSTEXPR VehicleResult(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  VehicleResult(const VehicleResult& from);
  VehicleResult(VehicleResult&& from) noexcept
    : VehicleResult() {
    *this = ::std::move(from);
  }

  inline VehicleResult& operator=(const VehicleResult& from) {
    CopyFrom(from);
    return *this;
  }
  inline VehicleResult& operator=(VehicleResult&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const VehicleResult& default_instance() {
    return *internal_default_instance();
  }
  static inline const VehicleResult* internal_default_instance() {
    return reinterpret_cast<const VehicleResult*>(
               &_VehicleResult_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    78;

  friend void swap(VehicleResult& a, VehicleResult& b) {
    a.Swap(&b);
  }
  inline void Swap(VehicleResult* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(VehicleResult* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  VehicleResult* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<VehicleResult>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const VehicleResult& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom( const VehicleResult& from) {
    VehicleResult::MergeImpl(*this, from);
  }
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned);
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(VehicleResult* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.VehicleResult";
  }
  protected:
  explicit VehicleResult(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kLabelFieldNumber = 1,
    kScoreFieldNumber = 2,
    kXFieldNumber = 3,
    kYFieldNumber = 4,
    kWidthFieldNumber = 5,
    kHeightFieldNumber = 6,
    kAngleFieldNumber = 7,
  };
  // int32 label = 1;
  void clear_label();
  int32_t label() const;
  void set_label(int32_t value);
  private:
  int32_t _internal_label() const;
  void _internal_set_label(int32_t value);
  public:

  // float score = 2;
  void clear_score();
  float score() const;
  void set_score(float value);
  private:
  float _internal_score() const;
  void _internal_set_score(float value);
  public:

  // float x = 3;
  void clear_x();
  float x() const;
  void set_x(float value);
  private:
  float _internal_x() const;
  void _internal_set_x(float value);
  public:

  // float y = 4;
  void clear_y();
  float y() const;
  void set_y(float value);
  private:
  float _internal_y() const;
  void _internal_set_y(float value);
  public:

  // float width = 5;
  void clear_width();
  float width() const;
  void set_width(float value);
  private:
  float _internal_width() const;
  void _internal_set_width(float value);
  public:

  // float height = 6;
  void clear_height();
  float height() const;
  void set_height(float value);
  private:
  float _internal_height() const;
  void _internal_set_height(float value);
  public:

  // float angle = 7;
  void clear_angle();
  float angle() const;
  void set_angle(float value);
  private:
  float _internal_angle() const;
  void _internal_set_angle(float value);
  public:

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.VehicleResult)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    int32_t label_;
    float score_;
    float x_;
    float y_;
    float width_;
    float height_;
    float angle_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class MultiTaskResult final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.MultiTaskResult) */ {
 public:
  inline MultiTaskResult() : MultiTaskResult(nullptr) {}
  ~MultiTaskResult() override;
  explicit PROTOBUF_CONSTEXPR MultiTaskResult(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  MultiTaskResult(const MultiTaskResult& from);
  MultiTaskResult(MultiTaskResult&& from) noexcept
    : MultiTaskResult() {
    *this = ::std::move(from);
  }

  inline MultiTaskResult& operator=(const MultiTaskResult& from) {
    CopyFrom(from);
    return *this;
  }
  inline MultiTaskResult& operator=(MultiTaskResult&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const MultiTaskResult& default_instance() {
    return *internal_default_instance();
  }
  static inline const MultiTaskResult* internal_default_instance() {
    return reinterpret_cast<const MultiTaskResult*>(
               &_MultiTaskResult_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    79;

  friend void swap(MultiTaskResult& a, MultiTaskResult& b) {
    a.Swap(&b);
  }
  inline void Swap(MultiTaskResult* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(MultiTaskResult* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  MultiTaskResult* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<MultiTaskResult>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const MultiTaskResult& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom( const MultiTaskResult& from) {
    MultiTaskResult::MergeImpl(*this, from);
  }
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned);
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(MultiTaskResult* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.MultiTaskResult";
  }
  protected:
  explicit MultiTaskResult(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kVehicleReusltFieldNumber = 2,
    kSegmentationFieldNumber = 1,
  };
  // repeated .vitis.ai.proto.VehicleResult vehicle_reuslt = 2;
  int vehicle_reuslt_size() const;
  private:
  int _internal_vehicle_reuslt_size() const;
  public:
  void clear_vehicle_reuslt();
  ::vitis::ai::proto::VehicleResult* mutable_vehicle_reuslt(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::VehicleResult >*
      mutable_vehicle_reuslt();
  private:
  const ::vitis::ai::proto::VehicleResult& _internal_vehicle_reuslt(int index) const;
  ::vitis::ai::proto::VehicleResult* _internal_add_vehicle_reuslt();
  public:
  const ::vitis::ai::proto::VehicleResult& vehicle_reuslt(int index) const;
  ::vitis::ai::proto::VehicleResult* add_vehicle_reuslt();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::VehicleResult >&
      vehicle_reuslt() const;

  // .vitis.ai.proto.SegmetationResult segmentation = 1;
  bool has_segmentation() const;
  private:
  bool _internal_has_segmentation() const;
  public:
  void clear_segmentation();
  const ::vitis::ai::proto::SegmetationResult& segmentation() const;
  PROTOBUF_NODISCARD ::vitis::ai::proto::SegmetationResult* release_segmentation();
  ::vitis::ai::proto::SegmetationResult* mutable_segmentation();
  void set_allocated_segmentation(::vitis::ai::proto::SegmetationResult* segmentation);
  private:
  const ::vitis::ai::proto::SegmetationResult& _internal_segmentation() const;
  ::vitis::ai::proto::SegmetationResult* _internal_mutable_segmentation();
  public:
  void unsafe_arena_set_allocated_segmentation(
      ::vitis::ai::proto::SegmetationResult* segmentation);
  ::vitis::ai::proto::SegmetationResult* unsafe_arena_release_segmentation();

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.MultiTaskResult)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::VehicleResult > vehicle_reuslt_;
    ::vitis::ai::proto::SegmetationResult* segmentation_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class ReidResult final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.ReidResult) */ {
 public:
  inline ReidResult() : ReidResult(nullptr) {}
  ~ReidResult() override;
  explicit PROTOBUF_CONSTEXPR ReidResult(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  ReidResult(const ReidResult& from);
  ReidResult(ReidResult&& from) noexcept
    : ReidResult() {
    *this = ::std::move(from);
  }

  inline ReidResult& operator=(const ReidResult& from) {
    CopyFrom(from);
    return *this;
  }
  inline ReidResult& operator=(ReidResult&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const ReidResult& default_instance() {
    return *internal_default_instance();
  }
  static inline const ReidResult* internal_default_instance() {
    return reinterpret_cast<const ReidResult*>(
               &_ReidResult_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    80;

  friend void swap(ReidResult& a, ReidResult& b) {
    a.Swap(&b);
  }
  inline void Swap(ReidResult* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ReidResult* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  ReidResult* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<ReidResult>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const ReidResult& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom( const ReidResult& from) {
    ReidResult::MergeImpl(*this, from);
  }
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned);
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(ReidResult* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.ReidResult";
  }
  protected:
  explicit ReidResult(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kDataFieldNumber = 1,
  };
  // repeated uint32 data = 1;
  int data_size() const;
  private:
  int _internal_data_size() const;
  public:
  void clear_data();
  private:
  uint32_t _internal_data(int index) const;
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< uint32_t >&
      _internal_data() const;
  void _internal_add_data(uint32_t value);
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< uint32_t >*
      _internal_mutable_data();
  public:
  uint32_t data(int index) const;
  void set_data(int index, uint32_t value);
  void add_data(uint32_t value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< uint32_t >&
      data() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< uint32_t >*
      mutable_data();

  // @@protoc_insertion_point(class_scope:vitis.ai.proto.ReidResult)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    ::PROTOBUF_NAMESPACE_ID::RepeatedField< uint32_t > data_;
    mutable std::atomic<int> _data_cached_byte_size_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// -------------------------------------------------------------------

class DpuModelResult final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:vitis.ai.proto.DpuModelResult) */ {
 public:
  inline DpuModelResult() : DpuModelResult(nullptr) {}
  ~DpuModelResult() override;
  explicit PROTOBUF_CONSTEXPR DpuModelResult(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  DpuModelResult(const DpuModelResult& from);
  DpuModelResult(DpuModelResult&& from) noexcept
    : DpuModelResult() {
    *this = ::std::move(from);
  }

  inline DpuModelResult& operator=(const DpuModelResult& from) {
    CopyFrom(from);
    return *this;
  }
  inline DpuModelResult& operator=(DpuModelResult&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const DpuModelResult& default_instance() {
    return *internal_default_instance();
  }
  enum DpuModelResultCase {
    kLandmarkResult = 1,
    kDetectResult = 2,
    kAttributeResult = 3,
    kRefineDetResult = 4,
    kClassificationResult = 5,
    kRoadlineResult = 6,
    kFacelandmarkResult = 7,
    kPlateDetectResult = 8,
    kPlateNumberResult = 9,
    kPlateRecogResult = 10,
    kPoseDetectResult = 11,
    kFaceFeatureResult = 12,
    kSegmentationResult = 13,
    kMedicalSegmentationResult = 14,
    kMultitaskResult = 15,
    kReidResult = 16,
    kFaceDetectRecogResult = 17,
    kVehicleclassificationResult = 18,
    DPU_MODEL_RESULT_NOT_SET = 0,
  };

  static inline const DpuModelResult* internal_default_instance() {
    return reinterpret_cast<const DpuModelResult*>(
               &_DpuModelResult_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    81;

  friend void swap(DpuModelResult& a, DpuModelResult& b) {
    a.Swap(&b);
  }
  inline void Swap(DpuModelResult* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(DpuModelResult* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  DpuModelResult* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<DpuModelResult>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const DpuModelResult& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom( const DpuModelResult& from) {
    DpuModelResult::MergeImpl(*this, from);
  }
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg);
  public:
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned);
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(DpuModelResult* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "vitis.ai.proto.DpuModelResult";
  }
  protected:
  explicit DpuModelResult(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  static const ClassData _class_data_;
  const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;

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

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

  enum : int {
    kLandmarkResultFieldNumber = 1,
    kDetectResultFieldNumber = 2,
    kAttributeResultFieldNumber = 3,
    kRefineDetResultFieldNumber = 4,
    kClassificationResultFieldNumber = 5,
    kRoadlineResultFieldNumber = 6,
    kFacelandmarkResultFieldNumber = 7,
    kPlateDetectResultFieldNumber = 8,
    kPlateNumberResultFieldNumber = 9,
    kPlateRecogResultFieldNumber = 10,
    kPoseDetectResultFieldNumber = 11,
    kFaceFeatureResultFieldNumber = 12,
    kSegmentationResultFieldNumber = 13,
    kMedicalSegmentationResultFieldNumber = 14,
    kMultitaskResultFieldNumber = 15,
    kReidResultFieldNumber = 16,
    kFaceDetectRecogResultFieldNumber = 17,
    kVehicleclassificationResultFieldNumber = 18,
  };
  // .vitis.ai.proto.LandmarkResult landmark_result = 1;
  bool has_landmark_result() const;
  private:
  bool _internal_has_landmark_result() const;
  public:
  void clear_landmark_result();
  const ::vitis::ai::proto::LandmarkResult& landmark_result() const;
  PROTOBUF_NODISCARD ::vitis::ai::proto::LandmarkResult* release_landmark_result();
  ::vitis::ai::proto::LandmarkResult* mutable_landmark_result();
  void set_allocated_landmark_result(::vitis::ai::proto::LandmarkResult* landmark_result);
  private:
  const ::vitis::ai::proto::LandmarkResult& _internal_landmark_result() const;
  ::vitis::ai::proto::LandmarkResult* _internal_mutable_landmark_result();
  public:
  void unsafe_arena_set_allocated_landmark_result(
      ::vitis::ai::proto::LandmarkResult* landmark_result);
  ::vitis::ai::proto::LandmarkResult* unsafe_arena_release_landmark_result();

  // .vitis.ai.proto.DetectResult detect_result = 2;
  bool has_detect_result() const;
  private:
  bool _internal_has_detect_result() const;
  public:
  void clear_detect_result();
  const ::vitis::ai::proto::DetectResult& detect_result() const;
  PROTOBUF_NODISCARD ::vitis::ai::proto::DetectResult* release_detect_result();
  ::vitis::ai::proto::DetectResult* mutable_detect_result();
  void set_allocated_detect_result(::vitis::ai::proto::DetectResult* detect_result);
  private:
  const ::vitis::ai::proto::DetectResult& _internal_detect_result() const;
  ::vitis::ai::proto::DetectResult* _internal_mutable_detect_result();
  public:
  void unsafe_arena_set_allocated_detect_result(
      ::vitis::ai::proto::DetectResult* detect_result);
  ::vitis::ai::proto::DetectResult* unsafe_arena_release_detect_result();

  // .vitis.ai.proto.AttributeResult attribute_result = 3;
  bool has_attribute_result() const;
  private:
  bool _internal_has_attribute_result() const;
  public:
  void clear_attribute_result();
  const ::vitis::ai::proto::AttributeResult& attribute_result() const;
  PROTOBUF_NODISCARD ::vitis::ai::proto::AttributeResult* release_attribute_result();
  ::vitis::ai::proto::AttributeResult* mutable_attribute_result();
  void set_allocated_attribute_result(::vitis::ai::proto::AttributeResult* attribute_result);
  private:
  const ::vitis::ai::proto::AttributeResult& _internal_attribute_result() const;
  ::vitis::ai::proto::AttributeResult* _internal_mutable_attribute_result();
  public:
  void unsafe_arena_set_allocated_attribute_result(
      ::vitis::ai::proto::AttributeResult* attribute_result);
  ::vitis::ai::proto::AttributeResult* unsafe_arena_release_attribute_result();

  // .vitis.ai.proto.DetectResult refine_det_result = 4;
  bool has_refine_det_result() const;
  private:
  bool _internal_has_refine_det_result() const;
  public:
  void clear_refine_det_result();
  const ::vitis::ai::proto::DetectResult& refine_det_result() const;
  PROTOBUF_NODISCARD ::vitis::ai::proto::DetectResult* release_refine_det_result();
  ::vitis::ai::proto::DetectResult* mutable_refine_det_result();
  void set_allocated_refine_det_result(::vitis::ai::proto::DetectResult* refine_det_result);
  private:
  const ::vitis::ai::proto::DetectResult& _internal_refine_det_result() const;
  ::vitis::ai::proto::DetectResult* _internal_mutable_refine_det_result();
  public:
  void unsafe_arena_set_allocated_refine_det_result(
      ::vitis::ai::proto::DetectResult* refine_det_result);
  ::vitis::ai::proto::DetectResult* unsafe_arena_release_refine_det_result();

  // .vitis.ai.proto.ClassificationResult classification_result = 5;
  bool has_classification_result() const;
  private:
  bool _internal_has_classification_result() const;
  public:
  void clear_classification_result();
  const ::vitis::ai::proto::ClassificationResult& classification_result() const;
  PROTOBUF_NODISCARD ::vitis::ai::proto::ClassificationResult* release_classification_result();
  ::vitis::ai::proto::ClassificationResult* mutable_classification_result();
  void set_allocated_classification_result(::vitis::ai::proto::ClassificationResult* classification_result);
  private:
  const ::vitis::ai::proto::ClassificationResult& _internal_classification_result() const;
  ::vitis::ai::proto::ClassificationResult* _internal_mutable_classification_result();
  public:
  void unsafe_arena_set_allocated_classification_result(
      ::vitis::ai::proto::ClassificationResult* classification_result);
  ::vitis::ai::proto::ClassificationResult* unsafe_arena_release_classification_result();

  // .vitis.ai.proto.RoadlineResult roadline_result = 6;
  bool has_roadline_result() const;
  private:
  bool _internal_has_roadline_result() const;
  public:
  void clear_roadline_result();
  const ::vitis::ai::proto::RoadlineResult& roadline_result() const;
  PROTOBUF_NODISCARD ::vitis::ai::proto::RoadlineResult* release_roadline_result();
  ::vitis::ai::proto::RoadlineResult* mutable_roadline_result();
  void set_allocated_roadline_result(::vitis::ai::proto::RoadlineResult* roadline_result);
  private:
  const ::vitis::ai::proto::RoadlineResult& _internal_roadline_result() const;
  ::vitis::ai::proto::RoadlineResult* _internal_mutable_roadline_result();
  public:
  void unsafe_arena_set_allocated_roadline_result(
      ::vitis::ai::proto::RoadlineResult* roadline_result);
  ::vitis::ai::proto::RoadlineResult* unsafe_arena_release_roadline_result();

  // .vitis.ai.proto.FaceLandmarkResult facelandmark_result = 7;
  bool has_facelandmark_result() const;
  private:
  bool _internal_has_facelandmark_result() const;
  public:
  void clear_facelandmark_result();
  const ::vitis::ai::proto::FaceLandmarkResult& facelandmark_result() const;
  PROTOBUF_NODISCARD ::vitis::ai::proto::FaceLandmarkResult* release_facelandmark_result();
  ::vitis::ai::proto::FaceLandmarkResult* mutable_facelandmark_result();
  void set_allocated_facelandmark_result(::vitis::ai::proto::FaceLandmarkResult* facelandmark_result);
  private:
  const ::vitis::ai::proto::FaceLandmarkResult& _internal_facelandmark_result() const;
  ::vitis::ai::proto::FaceLandmarkResult* _internal_mutable_facelandmark_result();
  public:
  void unsafe_arena_set_allocated_facelandmark_result(
      ::vitis::ai::proto::FaceLandmarkResult* facelandmark_result);
  ::vitis::ai::proto::FaceLandmarkResult* unsafe_arena_release_facelandmark_result();

  // .vitis.ai.proto.PlateDetectResult plate_detect_result = 8;
  bool has_plate_detect_result() const;
  private:
  bool _internal_has_plate_detect_result() const;
  public:
  void clear_plate_detect_result();
  const ::vitis::ai::proto::PlateDetectResult& plate_detect_result() const;
  PROTOBUF_NODISCARD ::vitis::ai::proto::PlateDetectResult* release_plate_detect_result();
  ::vitis::ai::proto::PlateDetectResult* mutable_plate_detect_result();
  void set_allocated_plate_detect_result(::vitis::ai::proto::PlateDetectResult* plate_detect_result);
  private:
  const ::vitis::ai::proto::PlateDetectResult& _internal_plate_detect_result() const;
  ::vitis::ai::proto::PlateDetectResult* _internal_mutable_plate_detect_result();
  public:
  void unsafe_arena_set_allocated_plate_detect_result(
      ::vitis::ai::proto::PlateDetectResult* plate_detect_result);
  ::vitis::ai::proto::PlateDetectResult* unsafe_arena_release_plate_detect_result();

  // .vitis.ai.proto.PlateNumberResult plate_number_result = 9;
  bool has_plate_number_result() const;
  private:
  bool _internal_has_plate_number_result() const;
  public:
  void clear_plate_number_result();
  const ::vitis::ai::proto::PlateNumberResult& plate_number_result() const;
  PROTOBUF_NODISCARD ::vitis::ai::proto::PlateNumberResult* release_plate_number_result();
  ::vitis::ai::proto::PlateNumberResult* mutable_plate_number_result();
  void set_allocated_plate_number_result(::vitis::ai::proto::PlateNumberResult* plate_number_result);
  private:
  const ::vitis::ai::proto::PlateNumberResult& _internal_plate_number_result() const;
  ::vitis::ai::proto::PlateNumberResult* _internal_mutable_plate_number_result();
  public:
  void unsafe_arena_set_allocated_plate_number_result(
      ::vitis::ai::proto::PlateNumberResult* plate_number_result);
  ::vitis::ai::proto::PlateNumberResult* unsafe_arena_release_plate_number_result();

  // .vitis.ai.proto.PlateRecogResult plate_recog_result = 10;
  bool has_plate_recog_result() const;
  private:
  bool _internal_has_plate_recog_result() const;
  public:
  void clear_plate_recog_result();
  const ::vitis::ai::proto::PlateRecogResult& plate_recog_result() const;
  PROTOBUF_NODISCARD ::vitis::ai::proto::PlateRecogResult* release_plate_recog_result();
  ::vitis::ai::proto::PlateRecogResult* mutable_plate_recog_result();
  void set_allocated_plate_recog_result(::vitis::ai::proto::PlateRecogResult* plate_recog_result);
  private:
  const ::vitis::ai::proto::PlateRecogResult& _internal_plate_recog_result() const;
  ::vitis::ai::proto::PlateRecogResult* _internal_mutable_plate_recog_result();
  public:
  void unsafe_arena_set_allocated_plate_recog_result(
      ::vitis::ai::proto::PlateRecogResult* plate_recog_result);
  ::vitis::ai::proto::PlateRecogResult* unsafe_arena_release_plate_recog_result();

  // .vitis.ai.proto.PoseDetectResult pose_detect_result = 11;
  bool has_pose_detect_result() const;
  private:
  bool _internal_has_pose_detect_result() const;
  public:
  void clear_pose_detect_result();
  const ::vitis::ai::proto::PoseDetectResult& pose_detect_result() const;
  PROTOBUF_NODISCARD ::vitis::ai::proto::PoseDetectResult* release_pose_detect_result();
  ::vitis::ai::proto::PoseDetectResult* mutable_pose_detect_result();
  void set_allocated_pose_detect_result(::vitis::ai::proto::PoseDetectResult* pose_detect_result);
  private:
  const ::vitis::ai::proto::PoseDetectResult& _internal_pose_detect_result() const;
  ::vitis::ai::proto::PoseDetectResult* _internal_mutable_pose_detect_result();
  public:
  void unsafe_arena_set_allocated_pose_detect_result(
      ::vitis::ai::proto::PoseDetectResult* pose_detect_result);
  ::vitis::ai::proto::PoseDetectResult* unsafe_arena_release_pose_detect_result();

  // .vitis.ai.proto.FaceFeatureResult face_feature_result = 12;
  bool has_face_feature_result() const;
  private:
  bool _internal_has_face_feature_result() const;
  public:
  void clear_face_feature_result();
  const ::vitis::ai::proto::FaceFeatureResult& face_feature_result() const;
  PROTOBUF_NODISCARD ::vitis::ai::proto::FaceFeatureResult* release_face_feature_result();
  ::vitis::ai::proto::FaceFeatureResult* mutable_face_feature_result();
  void set_allocated_face_feature_result(::vitis::ai::proto::FaceFeatureResult* face_feature_result);
  private:
  const ::vitis::ai::proto::FaceFeatureResult& _internal_face_feature_result() const;
  ::vitis::ai::proto::FaceFeatureResult* _internal_mutable_face_feature_result();
  public:
  void unsafe_arena_set_allocated_face_feature_result(
      ::vitis::ai::proto::FaceFeatureResult* face_feature_result);
  ::vitis::ai::proto::FaceFeatureResult* unsafe_arena_release_face_feature_result();

  // .vitis.ai.proto.SegmetationResult segmentation_result = 13;
  bool has_segmentation_result() const;
  private:
  bool _internal_has_segmentation_result() const;
  public:
  void clear_segmentation_result();
  const ::vitis::ai::proto::SegmetationResult& segmentation_result() const;
  PROTOBUF_NODISCARD ::vitis::ai::proto::SegmetationResult* release_segmentation_result();
  ::vitis::ai::proto::SegmetationResult* mutable_segmentation_result();
  void set_allocated_segmentation_result(::vitis::ai::proto::SegmetationResult* segmentation_result);
  private:
  const ::vitis::ai::proto::SegmetationResult& _internal_segmentation_result() const;
  ::vitis::ai::proto::SegmetationResult* _internal_mutable_segmentation_result();
  public:
  void unsafe_arena_set_allocated_segmentation_result(
      ::vitis::ai::proto::SegmetationResult* segmentation_result);
  ::vitis::ai::proto::SegmetationResult* unsafe_arena_release_segmentation_result();

  // .vitis.ai.proto.MedicalSegmetationResult medical_segmentation_result = 14;
  bool has_medical_segmentation_result() const;
  private:
  bool _internal_has_medical_segmentation_result() const;
  public:
  void clear_medical_segmentation_result();
  const ::vitis::ai::proto::MedicalSegmetationResult& medical_segmentation_result() const;
  PROTOBUF_NODISCARD ::vitis::ai::proto::MedicalSegmetationResult* release_medical_segmentation_result();
  ::vitis::ai::proto::MedicalSegmetationResult* mutable_medical_segmentation_result();
  void set_allocated_medical_segmentation_result(::vitis::ai::proto::MedicalSegmetationResult* medical_segmentation_result);
  private:
  const ::vitis::ai::proto::MedicalSegmetationResult& _internal_medical_segmentation_result() const;
  ::vitis::ai::proto::MedicalSegmetationResult* _internal_mutable_medical_segmentation_result();
  public:
  void unsafe_arena_set_allocated_medical_segmentation_result(
      ::vitis::ai::proto::MedicalSegmetationResult* medical_segmentation_result);
  ::vitis::ai::proto::MedicalSegmetationResult* unsafe_arena_release_medical_segmentation_result();

  // .vitis.ai.proto.MultiTaskResult multitask_result = 15;
  bool has_multitask_result() const;
  private:
  bool _internal_has_multitask_result() const;
  public:
  void clear_multitask_result();
  const ::vitis::ai::proto::MultiTaskResult& multitask_result() const;
  PROTOBUF_NODISCARD ::vitis::ai::proto::MultiTaskResult* release_multitask_result();
  ::vitis::ai::proto::MultiTaskResult* mutable_multitask_result();
  void set_allocated_multitask_result(::vitis::ai::proto::MultiTaskResult* multitask_result);
  private:
  const ::vitis::ai::proto::MultiTaskResult& _internal_multitask_result() const;
  ::vitis::ai::proto::MultiTaskResult* _internal_mutable_multitask_result();
  public:
  void unsafe_arena_set_allocated_multitask_result(
      ::vitis::ai::proto::MultiTaskResult* multitask_result);
  ::vitis::ai::proto::MultiTaskResult* unsafe_arena_release_multitask_result();

  // .vitis.ai.proto.ReidResult reid_result = 16;
  bool has_reid_result() const;
  private:
  bool _internal_has_reid_result() const;
  public:
  void clear_reid_result();
  const ::vitis::ai::proto::ReidResult& reid_result() const;
  PROTOBUF_NODISCARD ::vitis::ai::proto::ReidResult* release_reid_result();
  ::vitis::ai::proto::ReidResult* mutable_reid_result();
  void set_allocated_reid_result(::vitis::ai::proto::ReidResult* reid_result);
  private:
  const ::vitis::ai::proto::ReidResult& _internal_reid_result() const;
  ::vitis::ai::proto::ReidResult* _internal_mutable_reid_result();
  public:
  void unsafe_arena_set_allocated_reid_result(
      ::vitis::ai::proto::ReidResult* reid_result);
  ::vitis::ai::proto::ReidResult* unsafe_arena_release_reid_result();

  // .vitis.ai.proto.FaceDetectRecogResult face_detect_recog_result = 17;
  bool has_face_detect_recog_result() const;
  private:
  bool _internal_has_face_detect_recog_result() const;
  public:
  void clear_face_detect_recog_result();
  const ::vitis::ai::proto::FaceDetectRecogResult& face_detect_recog_result() const;
  PROTOBUF_NODISCARD ::vitis::ai::proto::FaceDetectRecogResult* release_face_detect_recog_result();
  ::vitis::ai::proto::FaceDetectRecogResult* mutable_face_detect_recog_result();
  void set_allocated_face_detect_recog_result(::vitis::ai::proto::FaceDetectRecogResult* face_detect_recog_result);
  private:
  const ::vitis::ai::proto::FaceDetectRecogResult& _internal_face_detect_recog_result() const;
  ::vitis::ai::proto::FaceDetectRecogResult* _internal_mutable_face_detect_recog_result();
  public:
  void unsafe_arena_set_allocated_face_detect_recog_result(
      ::vitis::ai::proto::FaceDetectRecogResult* face_detect_recog_result);
  ::vitis::ai::proto::FaceDetectRecogResult* unsafe_arena_release_face_detect_recog_result();

  // .vitis.ai.proto.ClassificationResult vehicleclassification_result = 18;
  bool has_vehicleclassification_result() const;
  private:
  bool _internal_has_vehicleclassification_result() const;
  public:
  void clear_vehicleclassification_result();
  const ::vitis::ai::proto::ClassificationResult& vehicleclassification_result() const;
  PROTOBUF_NODISCARD ::vitis::ai::proto::ClassificationResult* release_vehicleclassification_result();
  ::vitis::ai::proto::ClassificationResult* mutable_vehicleclassification_result();
  void set_allocated_vehicleclassification_result(::vitis::ai::proto::ClassificationResult* vehicleclassification_result);
  private:
  const ::vitis::ai::proto::ClassificationResult& _internal_vehicleclassification_result() const;
  ::vitis::ai::proto::ClassificationResult* _internal_mutable_vehicleclassification_result();
  public:
  void unsafe_arena_set_allocated_vehicleclassification_result(
      ::vitis::ai::proto::ClassificationResult* vehicleclassification_result);
  ::vitis::ai::proto::ClassificationResult* unsafe_arena_release_vehicleclassification_result();

  void clear_dpu_model_result();
  DpuModelResultCase dpu_model_result_case() const;
  // @@protoc_insertion_point(class_scope:vitis.ai.proto.DpuModelResult)
 private:
  class _Internal;
  void set_has_landmark_result();
  void set_has_detect_result();
  void set_has_attribute_result();
  void set_has_refine_det_result();
  void set_has_classification_result();
  void set_has_roadline_result();
  void set_has_facelandmark_result();
  void set_has_plate_detect_result();
  void set_has_plate_number_result();
  void set_has_plate_recog_result();
  void set_has_pose_detect_result();
  void set_has_face_feature_result();
  void set_has_segmentation_result();
  void set_has_medical_segmentation_result();
  void set_has_multitask_result();
  void set_has_reid_result();
  void set_has_face_detect_recog_result();
  void set_has_vehicleclassification_result();

  inline bool has_dpu_model_result() const;
  inline void clear_has_dpu_model_result();

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    union DpuModelResultUnion {
      constexpr DpuModelResultUnion() : _constinit_{} {}
        ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized _constinit_;
      ::vitis::ai::proto::LandmarkResult* landmark_result_;
      ::vitis::ai::proto::DetectResult* detect_result_;
      ::vitis::ai::proto::AttributeResult* attribute_result_;
      ::vitis::ai::proto::DetectResult* refine_det_result_;
      ::vitis::ai::proto::ClassificationResult* classification_result_;
      ::vitis::ai::proto::RoadlineResult* roadline_result_;
      ::vitis::ai::proto::FaceLandmarkResult* facelandmark_result_;
      ::vitis::ai::proto::PlateDetectResult* plate_detect_result_;
      ::vitis::ai::proto::PlateNumberResult* plate_number_result_;
      ::vitis::ai::proto::PlateRecogResult* plate_recog_result_;
      ::vitis::ai::proto::PoseDetectResult* pose_detect_result_;
      ::vitis::ai::proto::FaceFeatureResult* face_feature_result_;
      ::vitis::ai::proto::SegmetationResult* segmentation_result_;
      ::vitis::ai::proto::MedicalSegmetationResult* medical_segmentation_result_;
      ::vitis::ai::proto::MultiTaskResult* multitask_result_;
      ::vitis::ai::proto::ReidResult* reid_result_;
      ::vitis::ai::proto::FaceDetectRecogResult* face_detect_recog_result_;
      ::vitis::ai::proto::ClassificationResult* vehicleclassification_result_;
    } dpu_model_result_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
    uint32_t _oneof_case_[1];

  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto;
};
// ===================================================================


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

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

// int32 num_classes = 1;
inline void YoloV3Param::clear_num_classes() {
  _impl_.num_classes_ = 0;
}
inline int32_t YoloV3Param::_internal_num_classes() const {
  return _impl_.num_classes_;
}
inline int32_t YoloV3Param::num_classes() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.YoloV3Param.num_classes)
  return _internal_num_classes();
}
inline void YoloV3Param::_internal_set_num_classes(int32_t value) {
  
  _impl_.num_classes_ = value;
}
inline void YoloV3Param::set_num_classes(int32_t value) {
  _internal_set_num_classes(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.YoloV3Param.num_classes)
}

// int32 anchorCnt = 2;
inline void YoloV3Param::clear_anchorcnt() {
  _impl_.anchorcnt_ = 0;
}
inline int32_t YoloV3Param::_internal_anchorcnt() const {
  return _impl_.anchorcnt_;
}
inline int32_t YoloV3Param::anchorcnt() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.YoloV3Param.anchorCnt)
  return _internal_anchorcnt();
}
inline void YoloV3Param::_internal_set_anchorcnt(int32_t value) {
  
  _impl_.anchorcnt_ = value;
}
inline void YoloV3Param::set_anchorcnt(int32_t value) {
  _internal_set_anchorcnt(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.YoloV3Param.anchorCnt)
}

// float conf_threshold = 3;
inline void YoloV3Param::clear_conf_threshold() {
  _impl_.conf_threshold_ = 0;
}
inline float YoloV3Param::_internal_conf_threshold() const {
  return _impl_.conf_threshold_;
}
inline float YoloV3Param::conf_threshold() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.YoloV3Param.conf_threshold)
  return _internal_conf_threshold();
}
inline void YoloV3Param::_internal_set_conf_threshold(float value) {
  
  _impl_.conf_threshold_ = value;
}
inline void YoloV3Param::set_conf_threshold(float value) {
  _internal_set_conf_threshold(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.YoloV3Param.conf_threshold)
}

// float nms_threshold = 4;
inline void YoloV3Param::clear_nms_threshold() {
  _impl_.nms_threshold_ = 0;
}
inline float YoloV3Param::_internal_nms_threshold() const {
  return _impl_.nms_threshold_;
}
inline float YoloV3Param::nms_threshold() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.YoloV3Param.nms_threshold)
  return _internal_nms_threshold();
}
inline void YoloV3Param::_internal_set_nms_threshold(float value) {
  
  _impl_.nms_threshold_ = value;
}
inline void YoloV3Param::set_nms_threshold(float value) {
  _internal_set_nms_threshold(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.YoloV3Param.nms_threshold)
}

// repeated float biases = 5;
inline int YoloV3Param::_internal_biases_size() const {
  return _impl_.biases_.size();
}
inline int YoloV3Param::biases_size() const {
  return _internal_biases_size();
}
inline void YoloV3Param::clear_biases() {
  _impl_.biases_.Clear();
}
inline float YoloV3Param::_internal_biases(int index) const {
  return _impl_.biases_.Get(index);
}
inline float YoloV3Param::biases(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.YoloV3Param.biases)
  return _internal_biases(index);
}
inline void YoloV3Param::set_biases(int index, float value) {
  _impl_.biases_.Set(index, value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.YoloV3Param.biases)
}
inline void YoloV3Param::_internal_add_biases(float value) {
  _impl_.biases_.Add(value);
}
inline void YoloV3Param::add_biases(float value) {
  _internal_add_biases(value);
  // @@protoc_insertion_point(field_add:vitis.ai.proto.YoloV3Param.biases)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
YoloV3Param::_internal_biases() const {
  return _impl_.biases_;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
YoloV3Param::biases() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.YoloV3Param.biases)
  return _internal_biases();
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
YoloV3Param::_internal_mutable_biases() {
  return &_impl_.biases_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
YoloV3Param::mutable_biases() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.YoloV3Param.biases)
  return _internal_mutable_biases();
}

// bool test_mAP = 6;
inline void YoloV3Param::clear_test_map() {
  _impl_.test_map_ = false;
}
inline bool YoloV3Param::_internal_test_map() const {
  return _impl_.test_map_;
}
inline bool YoloV3Param::test_map() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.YoloV3Param.test_mAP)
  return _internal_test_map();
}
inline void YoloV3Param::_internal_set_test_map(bool value) {
  
  _impl_.test_map_ = value;
}
inline void YoloV3Param::set_test_map(bool value) {
  _internal_set_test_map(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.YoloV3Param.test_mAP)
}

// repeated string layer_name = 7;
inline int YoloV3Param::_internal_layer_name_size() const {
  return _impl_.layer_name_.size();
}
inline int YoloV3Param::layer_name_size() const {
  return _internal_layer_name_size();
}
inline void YoloV3Param::clear_layer_name() {
  _impl_.layer_name_.Clear();
}
inline std::string* YoloV3Param::add_layer_name() {
  std::string* _s = _internal_add_layer_name();
  // @@protoc_insertion_point(field_add_mutable:vitis.ai.proto.YoloV3Param.layer_name)
  return _s;
}
inline const std::string& YoloV3Param::_internal_layer_name(int index) const {
  return _impl_.layer_name_.Get(index);
}
inline const std::string& YoloV3Param::layer_name(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.YoloV3Param.layer_name)
  return _internal_layer_name(index);
}
inline std::string* YoloV3Param::mutable_layer_name(int index) {
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.YoloV3Param.layer_name)
  return _impl_.layer_name_.Mutable(index);
}
inline void YoloV3Param::set_layer_name(int index, const std::string& value) {
  _impl_.layer_name_.Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.YoloV3Param.layer_name)
}
inline void YoloV3Param::set_layer_name(int index, std::string&& value) {
  _impl_.layer_name_.Mutable(index)->assign(std::move(value));
  // @@protoc_insertion_point(field_set:vitis.ai.proto.YoloV3Param.layer_name)
}
inline void YoloV3Param::set_layer_name(int index, const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  _impl_.layer_name_.Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set_char:vitis.ai.proto.YoloV3Param.layer_name)
}
inline void YoloV3Param::set_layer_name(int index, const char* value, size_t size) {
  _impl_.layer_name_.Mutable(index)->assign(
    reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:vitis.ai.proto.YoloV3Param.layer_name)
}
inline std::string* YoloV3Param::_internal_add_layer_name() {
  return _impl_.layer_name_.Add();
}
inline void YoloV3Param::add_layer_name(const std::string& value) {
  _impl_.layer_name_.Add()->assign(value);
  // @@protoc_insertion_point(field_add:vitis.ai.proto.YoloV3Param.layer_name)
}
inline void YoloV3Param::add_layer_name(std::string&& value) {
  _impl_.layer_name_.Add(std::move(value));
  // @@protoc_insertion_point(field_add:vitis.ai.proto.YoloV3Param.layer_name)
}
inline void YoloV3Param::add_layer_name(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  _impl_.layer_name_.Add()->assign(value);
  // @@protoc_insertion_point(field_add_char:vitis.ai.proto.YoloV3Param.layer_name)
}
inline void YoloV3Param::add_layer_name(const char* value, size_t size) {
  _impl_.layer_name_.Add()->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_add_pointer:vitis.ai.proto.YoloV3Param.layer_name)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>&
YoloV3Param::layer_name() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.YoloV3Param.layer_name)
  return _impl_.layer_name_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>*
YoloV3Param::mutable_layer_name() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.YoloV3Param.layer_name)
  return &_impl_.layer_name_;
}

// .vitis.ai.proto.YoloV3Param.Type type = 8;
inline void YoloV3Param::clear_type() {
  _impl_.type_ = 0;
}
inline ::vitis::ai::proto::YoloV3Param_Type YoloV3Param::_internal_type() const {
  return static_cast< ::vitis::ai::proto::YoloV3Param_Type >(_impl_.type_);
}
inline ::vitis::ai::proto::YoloV3Param_Type YoloV3Param::type() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.YoloV3Param.type)
  return _internal_type();
}
inline void YoloV3Param::_internal_set_type(::vitis::ai::proto::YoloV3Param_Type value) {
  
  _impl_.type_ = value;
}
inline void YoloV3Param::set_type(::vitis::ai::proto::YoloV3Param_Type value) {
  _internal_set_type(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.YoloV3Param.type)
}

// int32 iou_type = 9;
inline void YoloV3Param::clear_iou_type() {
  _impl_.iou_type_ = 0;
}
inline int32_t YoloV3Param::_internal_iou_type() const {
  return _impl_.iou_type_;
}
inline int32_t YoloV3Param::iou_type() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.YoloV3Param.iou_type)
  return _internal_iou_type();
}
inline void YoloV3Param::_internal_set_iou_type(int32_t value) {
  
  _impl_.iou_type_ = value;
}
inline void YoloV3Param::set_iou_type(int32_t value) {
  _internal_set_iou_type(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.YoloV3Param.iou_type)
}

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

// MedicalPriorBoxParam

// repeated int32 input_shape = 1;
inline int MedicalPriorBoxParam::_internal_input_shape_size() const {
  return _impl_.input_shape_.size();
}
inline int MedicalPriorBoxParam::input_shape_size() const {
  return _internal_input_shape_size();
}
inline void MedicalPriorBoxParam::clear_input_shape() {
  _impl_.input_shape_.Clear();
}
inline int32_t MedicalPriorBoxParam::_internal_input_shape(int index) const {
  return _impl_.input_shape_.Get(index);
}
inline int32_t MedicalPriorBoxParam::input_shape(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.MedicalPriorBoxParam.input_shape)
  return _internal_input_shape(index);
}
inline void MedicalPriorBoxParam::set_input_shape(int index, int32_t value) {
  _impl_.input_shape_.Set(index, value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.MedicalPriorBoxParam.input_shape)
}
inline void MedicalPriorBoxParam::_internal_add_input_shape(int32_t value) {
  _impl_.input_shape_.Add(value);
}
inline void MedicalPriorBoxParam::add_input_shape(int32_t value) {
  _internal_add_input_shape(value);
  // @@protoc_insertion_point(field_add:vitis.ai.proto.MedicalPriorBoxParam.input_shape)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >&
MedicalPriorBoxParam::_internal_input_shape() const {
  return _impl_.input_shape_;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >&
MedicalPriorBoxParam::input_shape() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.MedicalPriorBoxParam.input_shape)
  return _internal_input_shape();
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >*
MedicalPriorBoxParam::_internal_mutable_input_shape() {
  return &_impl_.input_shape_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >*
MedicalPriorBoxParam::mutable_input_shape() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.MedicalPriorBoxParam.input_shape)
  return _internal_mutable_input_shape();
}

// repeated int32 feature_shapes = 2;
inline int MedicalPriorBoxParam::_internal_feature_shapes_size() const {
  return _impl_.feature_shapes_.size();
}
inline int MedicalPriorBoxParam::feature_shapes_size() const {
  return _internal_feature_shapes_size();
}
inline void MedicalPriorBoxParam::clear_feature_shapes() {
  _impl_.feature_shapes_.Clear();
}
inline int32_t MedicalPriorBoxParam::_internal_feature_shapes(int index) const {
  return _impl_.feature_shapes_.Get(index);
}
inline int32_t MedicalPriorBoxParam::feature_shapes(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.MedicalPriorBoxParam.feature_shapes)
  return _internal_feature_shapes(index);
}
inline void MedicalPriorBoxParam::set_feature_shapes(int index, int32_t value) {
  _impl_.feature_shapes_.Set(index, value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.MedicalPriorBoxParam.feature_shapes)
}
inline void MedicalPriorBoxParam::_internal_add_feature_shapes(int32_t value) {
  _impl_.feature_shapes_.Add(value);
}
inline void MedicalPriorBoxParam::add_feature_shapes(int32_t value) {
  _internal_add_feature_shapes(value);
  // @@protoc_insertion_point(field_add:vitis.ai.proto.MedicalPriorBoxParam.feature_shapes)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >&
MedicalPriorBoxParam::_internal_feature_shapes() const {
  return _impl_.feature_shapes_;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >&
MedicalPriorBoxParam::feature_shapes() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.MedicalPriorBoxParam.feature_shapes)
  return _internal_feature_shapes();
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >*
MedicalPriorBoxParam::_internal_mutable_feature_shapes() {
  return &_impl_.feature_shapes_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >*
MedicalPriorBoxParam::mutable_feature_shapes() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.MedicalPriorBoxParam.feature_shapes)
  return _internal_mutable_feature_shapes();
}

// repeated int32 min_sizes = 3;
inline int MedicalPriorBoxParam::_internal_min_sizes_size() const {
  return _impl_.min_sizes_.size();
}
inline int MedicalPriorBoxParam::min_sizes_size() const {
  return _internal_min_sizes_size();
}
inline void MedicalPriorBoxParam::clear_min_sizes() {
  _impl_.min_sizes_.Clear();
}
inline int32_t MedicalPriorBoxParam::_internal_min_sizes(int index) const {
  return _impl_.min_sizes_.Get(index);
}
inline int32_t MedicalPriorBoxParam::min_sizes(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.MedicalPriorBoxParam.min_sizes)
  return _internal_min_sizes(index);
}
inline void MedicalPriorBoxParam::set_min_sizes(int index, int32_t value) {
  _impl_.min_sizes_.Set(index, value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.MedicalPriorBoxParam.min_sizes)
}
inline void MedicalPriorBoxParam::_internal_add_min_sizes(int32_t value) {
  _impl_.min_sizes_.Add(value);
}
inline void MedicalPriorBoxParam::add_min_sizes(int32_t value) {
  _internal_add_min_sizes(value);
  // @@protoc_insertion_point(field_add:vitis.ai.proto.MedicalPriorBoxParam.min_sizes)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >&
MedicalPriorBoxParam::_internal_min_sizes() const {
  return _impl_.min_sizes_;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >&
MedicalPriorBoxParam::min_sizes() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.MedicalPriorBoxParam.min_sizes)
  return _internal_min_sizes();
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >*
MedicalPriorBoxParam::_internal_mutable_min_sizes() {
  return &_impl_.min_sizes_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >*
MedicalPriorBoxParam::mutable_min_sizes() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.MedicalPriorBoxParam.min_sizes)
  return _internal_mutable_min_sizes();
}

// repeated int32 max_sizes = 4;
inline int MedicalPriorBoxParam::_internal_max_sizes_size() const {
  return _impl_.max_sizes_.size();
}
inline int MedicalPriorBoxParam::max_sizes_size() const {
  return _internal_max_sizes_size();
}
inline void MedicalPriorBoxParam::clear_max_sizes() {
  _impl_.max_sizes_.Clear();
}
inline int32_t MedicalPriorBoxParam::_internal_max_sizes(int index) const {
  return _impl_.max_sizes_.Get(index);
}
inline int32_t MedicalPriorBoxParam::max_sizes(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.MedicalPriorBoxParam.max_sizes)
  return _internal_max_sizes(index);
}
inline void MedicalPriorBoxParam::set_max_sizes(int index, int32_t value) {
  _impl_.max_sizes_.Set(index, value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.MedicalPriorBoxParam.max_sizes)
}
inline void MedicalPriorBoxParam::_internal_add_max_sizes(int32_t value) {
  _impl_.max_sizes_.Add(value);
}
inline void MedicalPriorBoxParam::add_max_sizes(int32_t value) {
  _internal_add_max_sizes(value);
  // @@protoc_insertion_point(field_add:vitis.ai.proto.MedicalPriorBoxParam.max_sizes)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >&
MedicalPriorBoxParam::_internal_max_sizes() const {
  return _impl_.max_sizes_;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >&
MedicalPriorBoxParam::max_sizes() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.MedicalPriorBoxParam.max_sizes)
  return _internal_max_sizes();
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >*
MedicalPriorBoxParam::_internal_mutable_max_sizes() {
  return &_impl_.max_sizes_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >*
MedicalPriorBoxParam::mutable_max_sizes() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.MedicalPriorBoxParam.max_sizes)
  return _internal_mutable_max_sizes();
}

// repeated float aspect_ratios = 5;
inline int MedicalPriorBoxParam::_internal_aspect_ratios_size() const {
  return _impl_.aspect_ratios_.size();
}
inline int MedicalPriorBoxParam::aspect_ratios_size() const {
  return _internal_aspect_ratios_size();
}
inline void MedicalPriorBoxParam::clear_aspect_ratios() {
  _impl_.aspect_ratios_.Clear();
}
inline float MedicalPriorBoxParam::_internal_aspect_ratios(int index) const {
  return _impl_.aspect_ratios_.Get(index);
}
inline float MedicalPriorBoxParam::aspect_ratios(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.MedicalPriorBoxParam.aspect_ratios)
  return _internal_aspect_ratios(index);
}
inline void MedicalPriorBoxParam::set_aspect_ratios(int index, float value) {
  _impl_.aspect_ratios_.Set(index, value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.MedicalPriorBoxParam.aspect_ratios)
}
inline void MedicalPriorBoxParam::_internal_add_aspect_ratios(float value) {
  _impl_.aspect_ratios_.Add(value);
}
inline void MedicalPriorBoxParam::add_aspect_ratios(float value) {
  _internal_add_aspect_ratios(value);
  // @@protoc_insertion_point(field_add:vitis.ai.proto.MedicalPriorBoxParam.aspect_ratios)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
MedicalPriorBoxParam::_internal_aspect_ratios() const {
  return _impl_.aspect_ratios_;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
MedicalPriorBoxParam::aspect_ratios() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.MedicalPriorBoxParam.aspect_ratios)
  return _internal_aspect_ratios();
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
MedicalPriorBoxParam::_internal_mutable_aspect_ratios() {
  return &_impl_.aspect_ratios_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
MedicalPriorBoxParam::mutable_aspect_ratios() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.MedicalPriorBoxParam.aspect_ratios)
  return _internal_mutable_aspect_ratios();
}

// repeated int32 steps = 6;
inline int MedicalPriorBoxParam::_internal_steps_size() const {
  return _impl_.steps_.size();
}
inline int MedicalPriorBoxParam::steps_size() const {
  return _internal_steps_size();
}
inline void MedicalPriorBoxParam::clear_steps() {
  _impl_.steps_.Clear();
}
inline int32_t MedicalPriorBoxParam::_internal_steps(int index) const {
  return _impl_.steps_.Get(index);
}
inline int32_t MedicalPriorBoxParam::steps(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.MedicalPriorBoxParam.steps)
  return _internal_steps(index);
}
inline void MedicalPriorBoxParam::set_steps(int index, int32_t value) {
  _impl_.steps_.Set(index, value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.MedicalPriorBoxParam.steps)
}
inline void MedicalPriorBoxParam::_internal_add_steps(int32_t value) {
  _impl_.steps_.Add(value);
}
inline void MedicalPriorBoxParam::add_steps(int32_t value) {
  _internal_add_steps(value);
  // @@protoc_insertion_point(field_add:vitis.ai.proto.MedicalPriorBoxParam.steps)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >&
MedicalPriorBoxParam::_internal_steps() const {
  return _impl_.steps_;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >&
MedicalPriorBoxParam::steps() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.MedicalPriorBoxParam.steps)
  return _internal_steps();
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >*
MedicalPriorBoxParam::_internal_mutable_steps() {
  return &_impl_.steps_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >*
MedicalPriorBoxParam::mutable_steps() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.MedicalPriorBoxParam.steps)
  return _internal_mutable_steps();
}

// float offset = 7;
inline void MedicalPriorBoxParam::clear_offset() {
  _impl_.offset_ = 0;
}
inline float MedicalPriorBoxParam::_internal_offset() const {
  return _impl_.offset_;
}
inline float MedicalPriorBoxParam::offset() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.MedicalPriorBoxParam.offset)
  return _internal_offset();
}
inline void MedicalPriorBoxParam::_internal_set_offset(float value) {
  
  _impl_.offset_ = value;
}
inline void MedicalPriorBoxParam::set_offset(float value) {
  _internal_set_offset(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.MedicalPriorBoxParam.offset)
}

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

// PriorBoxParam

// int32 layer_width = 1;
inline void PriorBoxParam::clear_layer_width() {
  _impl_.layer_width_ = 0;
}
inline int32_t PriorBoxParam::_internal_layer_width() const {
  return _impl_.layer_width_;
}
inline int32_t PriorBoxParam::layer_width() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.PriorBoxParam.layer_width)
  return _internal_layer_width();
}
inline void PriorBoxParam::_internal_set_layer_width(int32_t value) {
  
  _impl_.layer_width_ = value;
}
inline void PriorBoxParam::set_layer_width(int32_t value) {
  _internal_set_layer_width(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.PriorBoxParam.layer_width)
}

// int32 layer_height = 2;
inline void PriorBoxParam::clear_layer_height() {
  _impl_.layer_height_ = 0;
}
inline int32_t PriorBoxParam::_internal_layer_height() const {
  return _impl_.layer_height_;
}
inline int32_t PriorBoxParam::layer_height() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.PriorBoxParam.layer_height)
  return _internal_layer_height();
}
inline void PriorBoxParam::_internal_set_layer_height(int32_t value) {
  
  _impl_.layer_height_ = value;
}
inline void PriorBoxParam::set_layer_height(int32_t value) {
  _internal_set_layer_height(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.PriorBoxParam.layer_height)
}

// repeated float variances = 4;
inline int PriorBoxParam::_internal_variances_size() const {
  return _impl_.variances_.size();
}
inline int PriorBoxParam::variances_size() const {
  return _internal_variances_size();
}
inline void PriorBoxParam::clear_variances() {
  _impl_.variances_.Clear();
}
inline float PriorBoxParam::_internal_variances(int index) const {
  return _impl_.variances_.Get(index);
}
inline float PriorBoxParam::variances(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.PriorBoxParam.variances)
  return _internal_variances(index);
}
inline void PriorBoxParam::set_variances(int index, float value) {
  _impl_.variances_.Set(index, value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.PriorBoxParam.variances)
}
inline void PriorBoxParam::_internal_add_variances(float value) {
  _impl_.variances_.Add(value);
}
inline void PriorBoxParam::add_variances(float value) {
  _internal_add_variances(value);
  // @@protoc_insertion_point(field_add:vitis.ai.proto.PriorBoxParam.variances)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
PriorBoxParam::_internal_variances() const {
  return _impl_.variances_;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
PriorBoxParam::variances() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.PriorBoxParam.variances)
  return _internal_variances();
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
PriorBoxParam::_internal_mutable_variances() {
  return &_impl_.variances_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
PriorBoxParam::mutable_variances() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.PriorBoxParam.variances)
  return _internal_mutable_variances();
}

// repeated float min_sizes = 5;
inline int PriorBoxParam::_internal_min_sizes_size() const {
  return _impl_.min_sizes_.size();
}
inline int PriorBoxParam::min_sizes_size() const {
  return _internal_min_sizes_size();
}
inline void PriorBoxParam::clear_min_sizes() {
  _impl_.min_sizes_.Clear();
}
inline float PriorBoxParam::_internal_min_sizes(int index) const {
  return _impl_.min_sizes_.Get(index);
}
inline float PriorBoxParam::min_sizes(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.PriorBoxParam.min_sizes)
  return _internal_min_sizes(index);
}
inline void PriorBoxParam::set_min_sizes(int index, float value) {
  _impl_.min_sizes_.Set(index, value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.PriorBoxParam.min_sizes)
}
inline void PriorBoxParam::_internal_add_min_sizes(float value) {
  _impl_.min_sizes_.Add(value);
}
inline void PriorBoxParam::add_min_sizes(float value) {
  _internal_add_min_sizes(value);
  // @@protoc_insertion_point(field_add:vitis.ai.proto.PriorBoxParam.min_sizes)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
PriorBoxParam::_internal_min_sizes() const {
  return _impl_.min_sizes_;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
PriorBoxParam::min_sizes() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.PriorBoxParam.min_sizes)
  return _internal_min_sizes();
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
PriorBoxParam::_internal_mutable_min_sizes() {
  return &_impl_.min_sizes_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
PriorBoxParam::mutable_min_sizes() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.PriorBoxParam.min_sizes)
  return _internal_mutable_min_sizes();
}

// repeated float max_sizes = 6;
inline int PriorBoxParam::_internal_max_sizes_size() const {
  return _impl_.max_sizes_.size();
}
inline int PriorBoxParam::max_sizes_size() const {
  return _internal_max_sizes_size();
}
inline void PriorBoxParam::clear_max_sizes() {
  _impl_.max_sizes_.Clear();
}
inline float PriorBoxParam::_internal_max_sizes(int index) const {
  return _impl_.max_sizes_.Get(index);
}
inline float PriorBoxParam::max_sizes(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.PriorBoxParam.max_sizes)
  return _internal_max_sizes(index);
}
inline void PriorBoxParam::set_max_sizes(int index, float value) {
  _impl_.max_sizes_.Set(index, value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.PriorBoxParam.max_sizes)
}
inline void PriorBoxParam::_internal_add_max_sizes(float value) {
  _impl_.max_sizes_.Add(value);
}
inline void PriorBoxParam::add_max_sizes(float value) {
  _internal_add_max_sizes(value);
  // @@protoc_insertion_point(field_add:vitis.ai.proto.PriorBoxParam.max_sizes)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
PriorBoxParam::_internal_max_sizes() const {
  return _impl_.max_sizes_;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
PriorBoxParam::max_sizes() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.PriorBoxParam.max_sizes)
  return _internal_max_sizes();
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
PriorBoxParam::_internal_mutable_max_sizes() {
  return &_impl_.max_sizes_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
PriorBoxParam::mutable_max_sizes() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.PriorBoxParam.max_sizes)
  return _internal_mutable_max_sizes();
}

// repeated float aspect_ratios = 7;
inline int PriorBoxParam::_internal_aspect_ratios_size() const {
  return _impl_.aspect_ratios_.size();
}
inline int PriorBoxParam::aspect_ratios_size() const {
  return _internal_aspect_ratios_size();
}
inline void PriorBoxParam::clear_aspect_ratios() {
  _impl_.aspect_ratios_.Clear();
}
inline float PriorBoxParam::_internal_aspect_ratios(int index) const {
  return _impl_.aspect_ratios_.Get(index);
}
inline float PriorBoxParam::aspect_ratios(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.PriorBoxParam.aspect_ratios)
  return _internal_aspect_ratios(index);
}
inline void PriorBoxParam::set_aspect_ratios(int index, float value) {
  _impl_.aspect_ratios_.Set(index, value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.PriorBoxParam.aspect_ratios)
}
inline void PriorBoxParam::_internal_add_aspect_ratios(float value) {
  _impl_.aspect_ratios_.Add(value);
}
inline void PriorBoxParam::add_aspect_ratios(float value) {
  _internal_add_aspect_ratios(value);
  // @@protoc_insertion_point(field_add:vitis.ai.proto.PriorBoxParam.aspect_ratios)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
PriorBoxParam::_internal_aspect_ratios() const {
  return _impl_.aspect_ratios_;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
PriorBoxParam::aspect_ratios() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.PriorBoxParam.aspect_ratios)
  return _internal_aspect_ratios();
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
PriorBoxParam::_internal_mutable_aspect_ratios() {
  return &_impl_.aspect_ratios_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
PriorBoxParam::mutable_aspect_ratios() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.PriorBoxParam.aspect_ratios)
  return _internal_mutable_aspect_ratios();
}

// float offset = 8;
inline void PriorBoxParam::clear_offset() {
  _impl_.offset_ = 0;
}
inline float PriorBoxParam::_internal_offset() const {
  return _impl_.offset_;
}
inline float PriorBoxParam::offset() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.PriorBoxParam.offset)
  return _internal_offset();
}
inline void PriorBoxParam::_internal_set_offset(float value) {
  
  _impl_.offset_ = value;
}
inline void PriorBoxParam::set_offset(float value) {
  _internal_set_offset(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.PriorBoxParam.offset)
}

// float step_width = 9;
inline void PriorBoxParam::clear_step_width() {
  _impl_.step_width_ = 0;
}
inline float PriorBoxParam::_internal_step_width() const {
  return _impl_.step_width_;
}
inline float PriorBoxParam::step_width() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.PriorBoxParam.step_width)
  return _internal_step_width();
}
inline void PriorBoxParam::_internal_set_step_width(float value) {
  
  _impl_.step_width_ = value;
}
inline void PriorBoxParam::set_step_width(float value) {
  _internal_set_step_width(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.PriorBoxParam.step_width)
}

// float step_height = 10;
inline void PriorBoxParam::clear_step_height() {
  _impl_.step_height_ = 0;
}
inline float PriorBoxParam::_internal_step_height() const {
  return _impl_.step_height_;
}
inline float PriorBoxParam::step_height() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.PriorBoxParam.step_height)
  return _internal_step_height();
}
inline void PriorBoxParam::_internal_set_step_height(float value) {
  
  _impl_.step_height_ = value;
}
inline void PriorBoxParam::set_step_height(float value) {
  _internal_set_step_height(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.PriorBoxParam.step_height)
}

// bool flip = 11;
inline void PriorBoxParam::clear_flip() {
  _impl_.flip_ = false;
}
inline bool PriorBoxParam::_internal_flip() const {
  return _impl_.flip_;
}
inline bool PriorBoxParam::flip() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.PriorBoxParam.flip)
  return _internal_flip();
}
inline void PriorBoxParam::_internal_set_flip(bool value) {
  
  _impl_.flip_ = value;
}
inline void PriorBoxParam::set_flip(bool value) {
  _internal_set_flip(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.PriorBoxParam.flip)
}

// bool clip = 12;
inline void PriorBoxParam::clear_clip() {
  _impl_.clip_ = false;
}
inline bool PriorBoxParam::_internal_clip() const {
  return _impl_.clip_;
}
inline bool PriorBoxParam::clip() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.PriorBoxParam.clip)
  return _internal_clip();
}
inline void PriorBoxParam::_internal_set_clip(bool value) {
  
  _impl_.clip_ = value;
}
inline void PriorBoxParam::set_clip(bool value) {
  _internal_set_clip(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.PriorBoxParam.clip)
}

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

// SSDParam_OutputInfo

// .vitis.ai.proto.SSDParam.OutputType type = 1;
inline void SSDParam_OutputInfo::clear_type() {
  _impl_.type_ = 0;
}
inline ::vitis::ai::proto::SSDParam_OutputType SSDParam_OutputInfo::_internal_type() const {
  return static_cast< ::vitis::ai::proto::SSDParam_OutputType >(_impl_.type_);
}
inline ::vitis::ai::proto::SSDParam_OutputType SSDParam_OutputInfo::type() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.SSDParam.OutputInfo.type)
  return _internal_type();
}
inline void SSDParam_OutputInfo::_internal_set_type(::vitis::ai::proto::SSDParam_OutputType value) {
  
  _impl_.type_ = value;
}
inline void SSDParam_OutputInfo::set_type(::vitis::ai::proto::SSDParam_OutputType value) {
  _internal_set_type(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.SSDParam.OutputInfo.type)
}

// int32 order = 2;
inline void SSDParam_OutputInfo::clear_order() {
  _impl_.order_ = 0;
}
inline int32_t SSDParam_OutputInfo::_internal_order() const {
  return _impl_.order_;
}
inline int32_t SSDParam_OutputInfo::order() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.SSDParam.OutputInfo.order)
  return _internal_order();
}
inline void SSDParam_OutputInfo::_internal_set_order(int32_t value) {
  
  _impl_.order_ = value;
}
inline void SSDParam_OutputInfo::set_order(int32_t value) {
  _internal_set_order(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.SSDParam.OutputInfo.order)
}

// string name = 3;
inline void SSDParam_OutputInfo::clear_name() {
  _impl_.name_.ClearToEmpty();
}
inline const std::string& SSDParam_OutputInfo::name() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.SSDParam.OutputInfo.name)
  return _internal_name();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void SSDParam_OutputInfo::set_name(ArgT0&& arg0, ArgT... args) {
 
 _impl_.name_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:vitis.ai.proto.SSDParam.OutputInfo.name)
}
inline std::string* SSDParam_OutputInfo::mutable_name() {
  std::string* _s = _internal_mutable_name();
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.SSDParam.OutputInfo.name)
  return _s;
}
inline const std::string& SSDParam_OutputInfo::_internal_name() const {
  return _impl_.name_.Get();
}
inline void SSDParam_OutputInfo::_internal_set_name(const std::string& value) {
  
  _impl_.name_.Set(value, GetArenaForAllocation());
}
inline std::string* SSDParam_OutputInfo::_internal_mutable_name() {
  
  return _impl_.name_.Mutable(GetArenaForAllocation());
}
inline std::string* SSDParam_OutputInfo::release_name() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.SSDParam.OutputInfo.name)
  return _impl_.name_.Release();
}
inline void SSDParam_OutputInfo::set_allocated_name(std::string* name) {
  if (name != nullptr) {
    
  } else {
    
  }
  _impl_.name_.SetAllocated(name, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (_impl_.name_.IsDefault()) {
    _impl_.name_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.SSDParam.OutputInfo.name)
}

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

// SSDParam

// repeated .vitis.ai.proto.PriorBoxParam prior_box_param = 1;
inline int SSDParam::_internal_prior_box_param_size() const {
  return _impl_.prior_box_param_.size();
}
inline int SSDParam::prior_box_param_size() const {
  return _internal_prior_box_param_size();
}
inline void SSDParam::clear_prior_box_param() {
  _impl_.prior_box_param_.Clear();
}
inline ::vitis::ai::proto::PriorBoxParam* SSDParam::mutable_prior_box_param(int index) {
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.SSDParam.prior_box_param)
  return _impl_.prior_box_param_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::PriorBoxParam >*
SSDParam::mutable_prior_box_param() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.SSDParam.prior_box_param)
  return &_impl_.prior_box_param_;
}
inline const ::vitis::ai::proto::PriorBoxParam& SSDParam::_internal_prior_box_param(int index) const {
  return _impl_.prior_box_param_.Get(index);
}
inline const ::vitis::ai::proto::PriorBoxParam& SSDParam::prior_box_param(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.SSDParam.prior_box_param)
  return _internal_prior_box_param(index);
}
inline ::vitis::ai::proto::PriorBoxParam* SSDParam::_internal_add_prior_box_param() {
  return _impl_.prior_box_param_.Add();
}
inline ::vitis::ai::proto::PriorBoxParam* SSDParam::add_prior_box_param() {
  ::vitis::ai::proto::PriorBoxParam* _add = _internal_add_prior_box_param();
  // @@protoc_insertion_point(field_add:vitis.ai.proto.SSDParam.prior_box_param)
  return _add;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::PriorBoxParam >&
SSDParam::prior_box_param() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.SSDParam.prior_box_param)
  return _impl_.prior_box_param_;
}

// int32 num_classes = 2;
inline void SSDParam::clear_num_classes() {
  _impl_.num_classes_ = 0;
}
inline int32_t SSDParam::_internal_num_classes() const {
  return _impl_.num_classes_;
}
inline int32_t SSDParam::num_classes() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.SSDParam.num_classes)
  return _internal_num_classes();
}
inline void SSDParam::_internal_set_num_classes(int32_t value) {
  
  _impl_.num_classes_ = value;
}
inline void SSDParam::set_num_classes(int32_t value) {
  _internal_set_num_classes(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.SSDParam.num_classes)
}

// float nms_threshold = 3;
inline void SSDParam::clear_nms_threshold() {
  _impl_.nms_threshold_ = 0;
}
inline float SSDParam::_internal_nms_threshold() const {
  return _impl_.nms_threshold_;
}
inline float SSDParam::nms_threshold() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.SSDParam.nms_threshold)
  return _internal_nms_threshold();
}
inline void SSDParam::_internal_set_nms_threshold(float value) {
  
  _impl_.nms_threshold_ = value;
}
inline void SSDParam::set_nms_threshold(float value) {
  _internal_set_nms_threshold(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.SSDParam.nms_threshold)
}

// repeated float conf_threshold = 4;
inline int SSDParam::_internal_conf_threshold_size() const {
  return _impl_.conf_threshold_.size();
}
inline int SSDParam::conf_threshold_size() const {
  return _internal_conf_threshold_size();
}
inline void SSDParam::clear_conf_threshold() {
  _impl_.conf_threshold_.Clear();
}
inline float SSDParam::_internal_conf_threshold(int index) const {
  return _impl_.conf_threshold_.Get(index);
}
inline float SSDParam::conf_threshold(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.SSDParam.conf_threshold)
  return _internal_conf_threshold(index);
}
inline void SSDParam::set_conf_threshold(int index, float value) {
  _impl_.conf_threshold_.Set(index, value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.SSDParam.conf_threshold)
}
inline void SSDParam::_internal_add_conf_threshold(float value) {
  _impl_.conf_threshold_.Add(value);
}
inline void SSDParam::add_conf_threshold(float value) {
  _internal_add_conf_threshold(value);
  // @@protoc_insertion_point(field_add:vitis.ai.proto.SSDParam.conf_threshold)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
SSDParam::_internal_conf_threshold() const {
  return _impl_.conf_threshold_;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
SSDParam::conf_threshold() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.SSDParam.conf_threshold)
  return _internal_conf_threshold();
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
SSDParam::_internal_mutable_conf_threshold() {
  return &_impl_.conf_threshold_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
SSDParam::mutable_conf_threshold() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.SSDParam.conf_threshold)
  return _internal_mutable_conf_threshold();
}

// int32 keep_top_k = 5;
inline void SSDParam::clear_keep_top_k() {
  _impl_.keep_top_k_ = 0;
}
inline int32_t SSDParam::_internal_keep_top_k() const {
  return _impl_.keep_top_k_;
}
inline int32_t SSDParam::keep_top_k() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.SSDParam.keep_top_k)
  return _internal_keep_top_k();
}
inline void SSDParam::_internal_set_keep_top_k(int32_t value) {
  
  _impl_.keep_top_k_ = value;
}
inline void SSDParam::set_keep_top_k(int32_t value) {
  _internal_set_keep_top_k(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.SSDParam.keep_top_k)
}

// int32 top_k = 6;
inline void SSDParam::clear_top_k() {
  _impl_.top_k_ = 0;
}
inline int32_t SSDParam::_internal_top_k() const {
  return _impl_.top_k_;
}
inline int32_t SSDParam::top_k() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.SSDParam.top_k)
  return _internal_top_k();
}
inline void SSDParam::_internal_set_top_k(int32_t value) {
  
  _impl_.top_k_ = value;
}
inline void SSDParam::set_top_k(int32_t value) {
  _internal_set_top_k(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.SSDParam.top_k)
}

// bool is_mlperf = 7;
inline void SSDParam::clear_is_mlperf() {
  _impl_.is_mlperf_ = false;
}
inline bool SSDParam::_internal_is_mlperf() const {
  return _impl_.is_mlperf_;
}
inline bool SSDParam::is_mlperf() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.SSDParam.is_mlperf)
  return _internal_is_mlperf();
}
inline void SSDParam::_internal_set_is_mlperf(bool value) {
  
  _impl_.is_mlperf_ = value;
}
inline void SSDParam::set_is_mlperf(bool value) {
  _internal_set_is_mlperf(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.SSDParam.is_mlperf)
}

// repeated int32 bbox_layer_index = 8;
inline int SSDParam::_internal_bbox_layer_index_size() const {
  return _impl_.bbox_layer_index_.size();
}
inline int SSDParam::bbox_layer_index_size() const {
  return _internal_bbox_layer_index_size();
}
inline void SSDParam::clear_bbox_layer_index() {
  _impl_.bbox_layer_index_.Clear();
}
inline int32_t SSDParam::_internal_bbox_layer_index(int index) const {
  return _impl_.bbox_layer_index_.Get(index);
}
inline int32_t SSDParam::bbox_layer_index(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.SSDParam.bbox_layer_index)
  return _internal_bbox_layer_index(index);
}
inline void SSDParam::set_bbox_layer_index(int index, int32_t value) {
  _impl_.bbox_layer_index_.Set(index, value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.SSDParam.bbox_layer_index)
}
inline void SSDParam::_internal_add_bbox_layer_index(int32_t value) {
  _impl_.bbox_layer_index_.Add(value);
}
inline void SSDParam::add_bbox_layer_index(int32_t value) {
  _internal_add_bbox_layer_index(value);
  // @@protoc_insertion_point(field_add:vitis.ai.proto.SSDParam.bbox_layer_index)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >&
SSDParam::_internal_bbox_layer_index() const {
  return _impl_.bbox_layer_index_;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >&
SSDParam::bbox_layer_index() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.SSDParam.bbox_layer_index)
  return _internal_bbox_layer_index();
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >*
SSDParam::_internal_mutable_bbox_layer_index() {
  return &_impl_.bbox_layer_index_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >*
SSDParam::mutable_bbox_layer_index() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.SSDParam.bbox_layer_index)
  return _internal_mutable_bbox_layer_index();
}

// repeated .vitis.ai.proto.SSDParam.OutputInfo output_info = 9;
inline int SSDParam::_internal_output_info_size() const {
  return _impl_.output_info_.size();
}
inline int SSDParam::output_info_size() const {
  return _internal_output_info_size();
}
inline void SSDParam::clear_output_info() {
  _impl_.output_info_.Clear();
}
inline ::vitis::ai::proto::SSDParam_OutputInfo* SSDParam::mutable_output_info(int index) {
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.SSDParam.output_info)
  return _impl_.output_info_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::SSDParam_OutputInfo >*
SSDParam::mutable_output_info() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.SSDParam.output_info)
  return &_impl_.output_info_;
}
inline const ::vitis::ai::proto::SSDParam_OutputInfo& SSDParam::_internal_output_info(int index) const {
  return _impl_.output_info_.Get(index);
}
inline const ::vitis::ai::proto::SSDParam_OutputInfo& SSDParam::output_info(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.SSDParam.output_info)
  return _internal_output_info(index);
}
inline ::vitis::ai::proto::SSDParam_OutputInfo* SSDParam::_internal_add_output_info() {
  return _impl_.output_info_.Add();
}
inline ::vitis::ai::proto::SSDParam_OutputInfo* SSDParam::add_output_info() {
  ::vitis::ai::proto::SSDParam_OutputInfo* _add = _internal_add_output_info();
  // @@protoc_insertion_point(field_add:vitis.ai.proto.SSDParam.output_info)
  return _add;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::SSDParam_OutputInfo >&
SSDParam::output_info() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.SSDParam.output_info)
  return _impl_.output_info_;
}

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

// RetinaNetParam

// float box_threshold = 1;
inline void RetinaNetParam::clear_box_threshold() {
  _impl_.box_threshold_ = 0;
}
inline float RetinaNetParam::_internal_box_threshold() const {
  return _impl_.box_threshold_;
}
inline float RetinaNetParam::box_threshold() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.RetinaNetParam.box_threshold)
  return _internal_box_threshold();
}
inline void RetinaNetParam::_internal_set_box_threshold(float value) {
  
  _impl_.box_threshold_ = value;
}
inline void RetinaNetParam::set_box_threshold(float value) {
  _internal_set_box_threshold(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.RetinaNetParam.box_threshold)
}

// float nms_threshold = 2;
inline void RetinaNetParam::clear_nms_threshold() {
  _impl_.nms_threshold_ = 0;
}
inline float RetinaNetParam::_internal_nms_threshold() const {
  return _impl_.nms_threshold_;
}
inline float RetinaNetParam::nms_threshold() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.RetinaNetParam.nms_threshold)
  return _internal_nms_threshold();
}
inline void RetinaNetParam::_internal_set_nms_threshold(float value) {
  
  _impl_.nms_threshold_ = value;
}
inline void RetinaNetParam::set_nms_threshold(float value) {
  _internal_set_nms_threshold(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.RetinaNetParam.nms_threshold)
}

// float conf_threshold = 3;
inline void RetinaNetParam::clear_conf_threshold() {
  _impl_.conf_threshold_ = 0;
}
inline float RetinaNetParam::_internal_conf_threshold() const {
  return _impl_.conf_threshold_;
}
inline float RetinaNetParam::conf_threshold() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.RetinaNetParam.conf_threshold)
  return _internal_conf_threshold();
}
inline void RetinaNetParam::_internal_set_conf_threshold(float value) {
  
  _impl_.conf_threshold_ = value;
}
inline void RetinaNetParam::set_conf_threshold(float value) {
  _internal_set_conf_threshold(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.RetinaNetParam.conf_threshold)
}

// int32 top_k = 4;
inline void RetinaNetParam::clear_top_k() {
  _impl_.top_k_ = 0;
}
inline int32_t RetinaNetParam::_internal_top_k() const {
  return _impl_.top_k_;
}
inline int32_t RetinaNetParam::top_k() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.RetinaNetParam.top_k)
  return _internal_top_k();
}
inline void RetinaNetParam::_internal_set_top_k(int32_t value) {
  
  _impl_.top_k_ = value;
}
inline void RetinaNetParam::set_top_k(int32_t value) {
  _internal_set_top_k(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.RetinaNetParam.top_k)
}

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

// FairMotParam

// float nms_threshold = 1;
inline void FairMotParam::clear_nms_threshold() {
  _impl_.nms_threshold_ = 0;
}
inline float FairMotParam::_internal_nms_threshold() const {
  return _impl_.nms_threshold_;
}
inline float FairMotParam::nms_threshold() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.FairMotParam.nms_threshold)
  return _internal_nms_threshold();
}
inline void FairMotParam::_internal_set_nms_threshold(float value) {
  
  _impl_.nms_threshold_ = value;
}
inline void FairMotParam::set_nms_threshold(float value) {
  _internal_set_nms_threshold(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.FairMotParam.nms_threshold)
}

// float conf_threshold = 2;
inline void FairMotParam::clear_conf_threshold() {
  _impl_.conf_threshold_ = 0;
}
inline float FairMotParam::_internal_conf_threshold() const {
  return _impl_.conf_threshold_;
}
inline float FairMotParam::conf_threshold() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.FairMotParam.conf_threshold)
  return _internal_conf_threshold();
}
inline void FairMotParam::_internal_set_conf_threshold(float value) {
  
  _impl_.conf_threshold_ = value;
}
inline void FairMotParam::set_conf_threshold(float value) {
  _internal_set_conf_threshold(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.FairMotParam.conf_threshold)
}

// int32 keep_top_k = 3;
inline void FairMotParam::clear_keep_top_k() {
  _impl_.keep_top_k_ = 0;
}
inline int32_t FairMotParam::_internal_keep_top_k() const {
  return _impl_.keep_top_k_;
}
inline int32_t FairMotParam::keep_top_k() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.FairMotParam.keep_top_k)
  return _internal_keep_top_k();
}
inline void FairMotParam::_internal_set_keep_top_k(int32_t value) {
  
  _impl_.keep_top_k_ = value;
}
inline void FairMotParam::set_keep_top_k(int32_t value) {
  _internal_set_keep_top_k(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.FairMotParam.keep_top_k)
}

// int32 top_k = 4;
inline void FairMotParam::clear_top_k() {
  _impl_.top_k_ = 0;
}
inline int32_t FairMotParam::_internal_top_k() const {
  return _impl_.top_k_;
}
inline int32_t FairMotParam::top_k() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.FairMotParam.top_k)
  return _internal_top_k();
}
inline void FairMotParam::_internal_set_top_k(int32_t value) {
  
  _impl_.top_k_ = value;
}
inline void FairMotParam::set_top_k(int32_t value) {
  _internal_set_top_k(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.FairMotParam.top_k)
}

// repeated string layer_name = 5;
inline int FairMotParam::_internal_layer_name_size() const {
  return _impl_.layer_name_.size();
}
inline int FairMotParam::layer_name_size() const {
  return _internal_layer_name_size();
}
inline void FairMotParam::clear_layer_name() {
  _impl_.layer_name_.Clear();
}
inline std::string* FairMotParam::add_layer_name() {
  std::string* _s = _internal_add_layer_name();
  // @@protoc_insertion_point(field_add_mutable:vitis.ai.proto.FairMotParam.layer_name)
  return _s;
}
inline const std::string& FairMotParam::_internal_layer_name(int index) const {
  return _impl_.layer_name_.Get(index);
}
inline const std::string& FairMotParam::layer_name(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.FairMotParam.layer_name)
  return _internal_layer_name(index);
}
inline std::string* FairMotParam::mutable_layer_name(int index) {
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.FairMotParam.layer_name)
  return _impl_.layer_name_.Mutable(index);
}
inline void FairMotParam::set_layer_name(int index, const std::string& value) {
  _impl_.layer_name_.Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.FairMotParam.layer_name)
}
inline void FairMotParam::set_layer_name(int index, std::string&& value) {
  _impl_.layer_name_.Mutable(index)->assign(std::move(value));
  // @@protoc_insertion_point(field_set:vitis.ai.proto.FairMotParam.layer_name)
}
inline void FairMotParam::set_layer_name(int index, const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  _impl_.layer_name_.Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set_char:vitis.ai.proto.FairMotParam.layer_name)
}
inline void FairMotParam::set_layer_name(int index, const char* value, size_t size) {
  _impl_.layer_name_.Mutable(index)->assign(
    reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:vitis.ai.proto.FairMotParam.layer_name)
}
inline std::string* FairMotParam::_internal_add_layer_name() {
  return _impl_.layer_name_.Add();
}
inline void FairMotParam::add_layer_name(const std::string& value) {
  _impl_.layer_name_.Add()->assign(value);
  // @@protoc_insertion_point(field_add:vitis.ai.proto.FairMotParam.layer_name)
}
inline void FairMotParam::add_layer_name(std::string&& value) {
  _impl_.layer_name_.Add(std::move(value));
  // @@protoc_insertion_point(field_add:vitis.ai.proto.FairMotParam.layer_name)
}
inline void FairMotParam::add_layer_name(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  _impl_.layer_name_.Add()->assign(value);
  // @@protoc_insertion_point(field_add_char:vitis.ai.proto.FairMotParam.layer_name)
}
inline void FairMotParam::add_layer_name(const char* value, size_t size) {
  _impl_.layer_name_.Add()->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_add_pointer:vitis.ai.proto.FairMotParam.layer_name)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>&
FairMotParam::layer_name() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.FairMotParam.layer_name)
  return _impl_.layer_name_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>*
FairMotParam::mutable_layer_name() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.FairMotParam.layer_name)
  return &_impl_.layer_name_;
}

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

// MovenetParam

// float conf_threshold = 1;
inline void MovenetParam::clear_conf_threshold() {
  _impl_.conf_threshold_ = 0;
}
inline float MovenetParam::_internal_conf_threshold() const {
  return _impl_.conf_threshold_;
}
inline float MovenetParam::conf_threshold() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.MovenetParam.conf_threshold)
  return _internal_conf_threshold();
}
inline void MovenetParam::_internal_set_conf_threshold(float value) {
  
  _impl_.conf_threshold_ = value;
}
inline void MovenetParam::set_conf_threshold(float value) {
  _internal_set_conf_threshold(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.MovenetParam.conf_threshold)
}

// repeated string layer_name = 2;
inline int MovenetParam::_internal_layer_name_size() const {
  return _impl_.layer_name_.size();
}
inline int MovenetParam::layer_name_size() const {
  return _internal_layer_name_size();
}
inline void MovenetParam::clear_layer_name() {
  _impl_.layer_name_.Clear();
}
inline std::string* MovenetParam::add_layer_name() {
  std::string* _s = _internal_add_layer_name();
  // @@protoc_insertion_point(field_add_mutable:vitis.ai.proto.MovenetParam.layer_name)
  return _s;
}
inline const std::string& MovenetParam::_internal_layer_name(int index) const {
  return _impl_.layer_name_.Get(index);
}
inline const std::string& MovenetParam::layer_name(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.MovenetParam.layer_name)
  return _internal_layer_name(index);
}
inline std::string* MovenetParam::mutable_layer_name(int index) {
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.MovenetParam.layer_name)
  return _impl_.layer_name_.Mutable(index);
}
inline void MovenetParam::set_layer_name(int index, const std::string& value) {
  _impl_.layer_name_.Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.MovenetParam.layer_name)
}
inline void MovenetParam::set_layer_name(int index, std::string&& value) {
  _impl_.layer_name_.Mutable(index)->assign(std::move(value));
  // @@protoc_insertion_point(field_set:vitis.ai.proto.MovenetParam.layer_name)
}
inline void MovenetParam::set_layer_name(int index, const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  _impl_.layer_name_.Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set_char:vitis.ai.proto.MovenetParam.layer_name)
}
inline void MovenetParam::set_layer_name(int index, const char* value, size_t size) {
  _impl_.layer_name_.Mutable(index)->assign(
    reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:vitis.ai.proto.MovenetParam.layer_name)
}
inline std::string* MovenetParam::_internal_add_layer_name() {
  return _impl_.layer_name_.Add();
}
inline void MovenetParam::add_layer_name(const std::string& value) {
  _impl_.layer_name_.Add()->assign(value);
  // @@protoc_insertion_point(field_add:vitis.ai.proto.MovenetParam.layer_name)
}
inline void MovenetParam::add_layer_name(std::string&& value) {
  _impl_.layer_name_.Add(std::move(value));
  // @@protoc_insertion_point(field_add:vitis.ai.proto.MovenetParam.layer_name)
}
inline void MovenetParam::add_layer_name(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  _impl_.layer_name_.Add()->assign(value);
  // @@protoc_insertion_point(field_add_char:vitis.ai.proto.MovenetParam.layer_name)
}
inline void MovenetParam::add_layer_name(const char* value, size_t size) {
  _impl_.layer_name_.Add()->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_add_pointer:vitis.ai.proto.MovenetParam.layer_name)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>&
MovenetParam::layer_name() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.MovenetParam.layer_name)
  return _impl_.layer_name_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>*
MovenetParam::mutable_layer_name() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.MovenetParam.layer_name)
  return &_impl_.layer_name_;
}

// repeated float center_weight = 3;
inline int MovenetParam::_internal_center_weight_size() const {
  return _impl_.center_weight_.size();
}
inline int MovenetParam::center_weight_size() const {
  return _internal_center_weight_size();
}
inline void MovenetParam::clear_center_weight() {
  _impl_.center_weight_.Clear();
}
inline float MovenetParam::_internal_center_weight(int index) const {
  return _impl_.center_weight_.Get(index);
}
inline float MovenetParam::center_weight(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.MovenetParam.center_weight)
  return _internal_center_weight(index);
}
inline void MovenetParam::set_center_weight(int index, float value) {
  _impl_.center_weight_.Set(index, value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.MovenetParam.center_weight)
}
inline void MovenetParam::_internal_add_center_weight(float value) {
  _impl_.center_weight_.Add(value);
}
inline void MovenetParam::add_center_weight(float value) {
  _internal_add_center_weight(value);
  // @@protoc_insertion_point(field_add:vitis.ai.proto.MovenetParam.center_weight)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
MovenetParam::_internal_center_weight() const {
  return _impl_.center_weight_;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
MovenetParam::center_weight() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.MovenetParam.center_weight)
  return _internal_center_weight();
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
MovenetParam::_internal_mutable_center_weight() {
  return &_impl_.center_weight_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
MovenetParam::mutable_center_weight() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.MovenetParam.center_weight)
  return _internal_mutable_center_weight();
}

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

// RefineDetParam

// repeated .vitis.ai.proto.PriorBoxParam prior_box_param = 1;
inline int RefineDetParam::_internal_prior_box_param_size() const {
  return _impl_.prior_box_param_.size();
}
inline int RefineDetParam::prior_box_param_size() const {
  return _internal_prior_box_param_size();
}
inline void RefineDetParam::clear_prior_box_param() {
  _impl_.prior_box_param_.Clear();
}
inline ::vitis::ai::proto::PriorBoxParam* RefineDetParam::mutable_prior_box_param(int index) {
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.RefineDetParam.prior_box_param)
  return _impl_.prior_box_param_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::PriorBoxParam >*
RefineDetParam::mutable_prior_box_param() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.RefineDetParam.prior_box_param)
  return &_impl_.prior_box_param_;
}
inline const ::vitis::ai::proto::PriorBoxParam& RefineDetParam::_internal_prior_box_param(int index) const {
  return _impl_.prior_box_param_.Get(index);
}
inline const ::vitis::ai::proto::PriorBoxParam& RefineDetParam::prior_box_param(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.RefineDetParam.prior_box_param)
  return _internal_prior_box_param(index);
}
inline ::vitis::ai::proto::PriorBoxParam* RefineDetParam::_internal_add_prior_box_param() {
  return _impl_.prior_box_param_.Add();
}
inline ::vitis::ai::proto::PriorBoxParam* RefineDetParam::add_prior_box_param() {
  ::vitis::ai::proto::PriorBoxParam* _add = _internal_add_prior_box_param();
  // @@protoc_insertion_point(field_add:vitis.ai.proto.RefineDetParam.prior_box_param)
  return _add;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::PriorBoxParam >&
RefineDetParam::prior_box_param() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.RefineDetParam.prior_box_param)
  return _impl_.prior_box_param_;
}

// int32 num_classes = 2;
inline void RefineDetParam::clear_num_classes() {
  _impl_.num_classes_ = 0;
}
inline int32_t RefineDetParam::_internal_num_classes() const {
  return _impl_.num_classes_;
}
inline int32_t RefineDetParam::num_classes() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.RefineDetParam.num_classes)
  return _internal_num_classes();
}
inline void RefineDetParam::_internal_set_num_classes(int32_t value) {
  
  _impl_.num_classes_ = value;
}
inline void RefineDetParam::set_num_classes(int32_t value) {
  _internal_set_num_classes(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.RefineDetParam.num_classes)
}

// float nms_threshold = 3;
inline void RefineDetParam::clear_nms_threshold() {
  _impl_.nms_threshold_ = 0;
}
inline float RefineDetParam::_internal_nms_threshold() const {
  return _impl_.nms_threshold_;
}
inline float RefineDetParam::nms_threshold() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.RefineDetParam.nms_threshold)
  return _internal_nms_threshold();
}
inline void RefineDetParam::_internal_set_nms_threshold(float value) {
  
  _impl_.nms_threshold_ = value;
}
inline void RefineDetParam::set_nms_threshold(float value) {
  _internal_set_nms_threshold(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.RefineDetParam.nms_threshold)
}

// repeated float conf_threshold = 4;
inline int RefineDetParam::_internal_conf_threshold_size() const {
  return _impl_.conf_threshold_.size();
}
inline int RefineDetParam::conf_threshold_size() const {
  return _internal_conf_threshold_size();
}
inline void RefineDetParam::clear_conf_threshold() {
  _impl_.conf_threshold_.Clear();
}
inline float RefineDetParam::_internal_conf_threshold(int index) const {
  return _impl_.conf_threshold_.Get(index);
}
inline float RefineDetParam::conf_threshold(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.RefineDetParam.conf_threshold)
  return _internal_conf_threshold(index);
}
inline void RefineDetParam::set_conf_threshold(int index, float value) {
  _impl_.conf_threshold_.Set(index, value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.RefineDetParam.conf_threshold)
}
inline void RefineDetParam::_internal_add_conf_threshold(float value) {
  _impl_.conf_threshold_.Add(value);
}
inline void RefineDetParam::add_conf_threshold(float value) {
  _internal_add_conf_threshold(value);
  // @@protoc_insertion_point(field_add:vitis.ai.proto.RefineDetParam.conf_threshold)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
RefineDetParam::_internal_conf_threshold() const {
  return _impl_.conf_threshold_;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
RefineDetParam::conf_threshold() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.RefineDetParam.conf_threshold)
  return _internal_conf_threshold();
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
RefineDetParam::_internal_mutable_conf_threshold() {
  return &_impl_.conf_threshold_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
RefineDetParam::mutable_conf_threshold() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.RefineDetParam.conf_threshold)
  return _internal_mutable_conf_threshold();
}

// int32 keep_top_k = 5;
inline void RefineDetParam::clear_keep_top_k() {
  _impl_.keep_top_k_ = 0;
}
inline int32_t RefineDetParam::_internal_keep_top_k() const {
  return _impl_.keep_top_k_;
}
inline int32_t RefineDetParam::keep_top_k() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.RefineDetParam.keep_top_k)
  return _internal_keep_top_k();
}
inline void RefineDetParam::_internal_set_keep_top_k(int32_t value) {
  
  _impl_.keep_top_k_ = value;
}
inline void RefineDetParam::set_keep_top_k(int32_t value) {
  _internal_set_keep_top_k(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.RefineDetParam.keep_top_k)
}

// int32 top_k = 6;
inline void RefineDetParam::clear_top_k() {
  _impl_.top_k_ = 0;
}
inline int32_t RefineDetParam::_internal_top_k() const {
  return _impl_.top_k_;
}
inline int32_t RefineDetParam::top_k() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.RefineDetParam.top_k)
  return _internal_top_k();
}
inline void RefineDetParam::_internal_set_top_k(int32_t value) {
  
  _impl_.top_k_ = value;
}
inline void RefineDetParam::set_top_k(int32_t value) {
  _internal_set_top_k(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.RefineDetParam.top_k)
}

// repeated string layer_name = 7;
inline int RefineDetParam::_internal_layer_name_size() const {
  return _impl_.layer_name_.size();
}
inline int RefineDetParam::layer_name_size() const {
  return _internal_layer_name_size();
}
inline void RefineDetParam::clear_layer_name() {
  _impl_.layer_name_.Clear();
}
inline std::string* RefineDetParam::add_layer_name() {
  std::string* _s = _internal_add_layer_name();
  // @@protoc_insertion_point(field_add_mutable:vitis.ai.proto.RefineDetParam.layer_name)
  return _s;
}
inline const std::string& RefineDetParam::_internal_layer_name(int index) const {
  return _impl_.layer_name_.Get(index);
}
inline const std::string& RefineDetParam::layer_name(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.RefineDetParam.layer_name)
  return _internal_layer_name(index);
}
inline std::string* RefineDetParam::mutable_layer_name(int index) {
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.RefineDetParam.layer_name)
  return _impl_.layer_name_.Mutable(index);
}
inline void RefineDetParam::set_layer_name(int index, const std::string& value) {
  _impl_.layer_name_.Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.RefineDetParam.layer_name)
}
inline void RefineDetParam::set_layer_name(int index, std::string&& value) {
  _impl_.layer_name_.Mutable(index)->assign(std::move(value));
  // @@protoc_insertion_point(field_set:vitis.ai.proto.RefineDetParam.layer_name)
}
inline void RefineDetParam::set_layer_name(int index, const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  _impl_.layer_name_.Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set_char:vitis.ai.proto.RefineDetParam.layer_name)
}
inline void RefineDetParam::set_layer_name(int index, const char* value, size_t size) {
  _impl_.layer_name_.Mutable(index)->assign(
    reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:vitis.ai.proto.RefineDetParam.layer_name)
}
inline std::string* RefineDetParam::_internal_add_layer_name() {
  return _impl_.layer_name_.Add();
}
inline void RefineDetParam::add_layer_name(const std::string& value) {
  _impl_.layer_name_.Add()->assign(value);
  // @@protoc_insertion_point(field_add:vitis.ai.proto.RefineDetParam.layer_name)
}
inline void RefineDetParam::add_layer_name(std::string&& value) {
  _impl_.layer_name_.Add(std::move(value));
  // @@protoc_insertion_point(field_add:vitis.ai.proto.RefineDetParam.layer_name)
}
inline void RefineDetParam::add_layer_name(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  _impl_.layer_name_.Add()->assign(value);
  // @@protoc_insertion_point(field_add_char:vitis.ai.proto.RefineDetParam.layer_name)
}
inline void RefineDetParam::add_layer_name(const char* value, size_t size) {
  _impl_.layer_name_.Add()->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_add_pointer:vitis.ai.proto.RefineDetParam.layer_name)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>&
RefineDetParam::layer_name() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.RefineDetParam.layer_name)
  return _impl_.layer_name_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>*
RefineDetParam::mutable_layer_name() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.RefineDetParam.layer_name)
  return &_impl_.layer_name_;
}

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

// TFRefineDetParam

// .vitis.ai.proto.MedicalPriorBoxParam prior_box_param = 1;
inline bool TFRefineDetParam::_internal_has_prior_box_param() const {
  return this != internal_default_instance() && _impl_.prior_box_param_ != nullptr;
}
inline bool TFRefineDetParam::has_prior_box_param() const {
  return _internal_has_prior_box_param();
}
inline void TFRefineDetParam::clear_prior_box_param() {
  if (GetArenaForAllocation() == nullptr && _impl_.prior_box_param_ != nullptr) {
    delete _impl_.prior_box_param_;
  }
  _impl_.prior_box_param_ = nullptr;
}
inline const ::vitis::ai::proto::MedicalPriorBoxParam& TFRefineDetParam::_internal_prior_box_param() const {
  const ::vitis::ai::proto::MedicalPriorBoxParam* p = _impl_.prior_box_param_;
  return p != nullptr ? *p : reinterpret_cast<const ::vitis::ai::proto::MedicalPriorBoxParam&>(
      ::vitis::ai::proto::_MedicalPriorBoxParam_default_instance_);
}
inline const ::vitis::ai::proto::MedicalPriorBoxParam& TFRefineDetParam::prior_box_param() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.TFRefineDetParam.prior_box_param)
  return _internal_prior_box_param();
}
inline void TFRefineDetParam::unsafe_arena_set_allocated_prior_box_param(
    ::vitis::ai::proto::MedicalPriorBoxParam* prior_box_param) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.prior_box_param_);
  }
  _impl_.prior_box_param_ = prior_box_param;
  if (prior_box_param) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:vitis.ai.proto.TFRefineDetParam.prior_box_param)
}
inline ::vitis::ai::proto::MedicalPriorBoxParam* TFRefineDetParam::release_prior_box_param() {
  
  ::vitis::ai::proto::MedicalPriorBoxParam* temp = _impl_.prior_box_param_;
  _impl_.prior_box_param_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::vitis::ai::proto::MedicalPriorBoxParam* TFRefineDetParam::unsafe_arena_release_prior_box_param() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.TFRefineDetParam.prior_box_param)
  
  ::vitis::ai::proto::MedicalPriorBoxParam* temp = _impl_.prior_box_param_;
  _impl_.prior_box_param_ = nullptr;
  return temp;
}
inline ::vitis::ai::proto::MedicalPriorBoxParam* TFRefineDetParam::_internal_mutable_prior_box_param() {
  
  if (_impl_.prior_box_param_ == nullptr) {
    auto* p = CreateMaybeMessage<::vitis::ai::proto::MedicalPriorBoxParam>(GetArenaForAllocation());
    _impl_.prior_box_param_ = p;
  }
  return _impl_.prior_box_param_;
}
inline ::vitis::ai::proto::MedicalPriorBoxParam* TFRefineDetParam::mutable_prior_box_param() {
  ::vitis::ai::proto::MedicalPriorBoxParam* _msg = _internal_mutable_prior_box_param();
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.TFRefineDetParam.prior_box_param)
  return _msg;
}
inline void TFRefineDetParam::set_allocated_prior_box_param(::vitis::ai::proto::MedicalPriorBoxParam* prior_box_param) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete _impl_.prior_box_param_;
  }
  if (prior_box_param) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
        ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(prior_box_param);
    if (message_arena != submessage_arena) {
      prior_box_param = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, prior_box_param, submessage_arena);
    }
    
  } else {
    
  }
  _impl_.prior_box_param_ = prior_box_param;
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.TFRefineDetParam.prior_box_param)
}

// int32 num_classes = 2;
inline void TFRefineDetParam::clear_num_classes() {
  _impl_.num_classes_ = 0;
}
inline int32_t TFRefineDetParam::_internal_num_classes() const {
  return _impl_.num_classes_;
}
inline int32_t TFRefineDetParam::num_classes() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.TFRefineDetParam.num_classes)
  return _internal_num_classes();
}
inline void TFRefineDetParam::_internal_set_num_classes(int32_t value) {
  
  _impl_.num_classes_ = value;
}
inline void TFRefineDetParam::set_num_classes(int32_t value) {
  _internal_set_num_classes(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.TFRefineDetParam.num_classes)
}

// float nms_threshold = 3;
inline void TFRefineDetParam::clear_nms_threshold() {
  _impl_.nms_threshold_ = 0;
}
inline float TFRefineDetParam::_internal_nms_threshold() const {
  return _impl_.nms_threshold_;
}
inline float TFRefineDetParam::nms_threshold() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.TFRefineDetParam.nms_threshold)
  return _internal_nms_threshold();
}
inline void TFRefineDetParam::_internal_set_nms_threshold(float value) {
  
  _impl_.nms_threshold_ = value;
}
inline void TFRefineDetParam::set_nms_threshold(float value) {
  _internal_set_nms_threshold(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.TFRefineDetParam.nms_threshold)
}

// float conf_threshold = 4;
inline void TFRefineDetParam::clear_conf_threshold() {
  _impl_.conf_threshold_ = 0;
}
inline float TFRefineDetParam::_internal_conf_threshold() const {
  return _impl_.conf_threshold_;
}
inline float TFRefineDetParam::conf_threshold() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.TFRefineDetParam.conf_threshold)
  return _internal_conf_threshold();
}
inline void TFRefineDetParam::_internal_set_conf_threshold(float value) {
  
  _impl_.conf_threshold_ = value;
}
inline void TFRefineDetParam::set_conf_threshold(float value) {
  _internal_set_conf_threshold(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.TFRefineDetParam.conf_threshold)
}

// int32 keep_top_k = 5;
inline void TFRefineDetParam::clear_keep_top_k() {
  _impl_.keep_top_k_ = 0;
}
inline int32_t TFRefineDetParam::_internal_keep_top_k() const {
  return _impl_.keep_top_k_;
}
inline int32_t TFRefineDetParam::keep_top_k() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.TFRefineDetParam.keep_top_k)
  return _internal_keep_top_k();
}
inline void TFRefineDetParam::_internal_set_keep_top_k(int32_t value) {
  
  _impl_.keep_top_k_ = value;
}
inline void TFRefineDetParam::set_keep_top_k(int32_t value) {
  _internal_set_keep_top_k(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.TFRefineDetParam.keep_top_k)
}

// int32 top_k = 6;
inline void TFRefineDetParam::clear_top_k() {
  _impl_.top_k_ = 0;
}
inline int32_t TFRefineDetParam::_internal_top_k() const {
  return _impl_.top_k_;
}
inline int32_t TFRefineDetParam::top_k() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.TFRefineDetParam.top_k)
  return _internal_top_k();
}
inline void TFRefineDetParam::_internal_set_top_k(int32_t value) {
  
  _impl_.top_k_ = value;
}
inline void TFRefineDetParam::set_top_k(int32_t value) {
  _internal_set_top_k(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.TFRefineDetParam.top_k)
}

// repeated string layer_name = 7;
inline int TFRefineDetParam::_internal_layer_name_size() const {
  return _impl_.layer_name_.size();
}
inline int TFRefineDetParam::layer_name_size() const {
  return _internal_layer_name_size();
}
inline void TFRefineDetParam::clear_layer_name() {
  _impl_.layer_name_.Clear();
}
inline std::string* TFRefineDetParam::add_layer_name() {
  std::string* _s = _internal_add_layer_name();
  // @@protoc_insertion_point(field_add_mutable:vitis.ai.proto.TFRefineDetParam.layer_name)
  return _s;
}
inline const std::string& TFRefineDetParam::_internal_layer_name(int index) const {
  return _impl_.layer_name_.Get(index);
}
inline const std::string& TFRefineDetParam::layer_name(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.TFRefineDetParam.layer_name)
  return _internal_layer_name(index);
}
inline std::string* TFRefineDetParam::mutable_layer_name(int index) {
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.TFRefineDetParam.layer_name)
  return _impl_.layer_name_.Mutable(index);
}
inline void TFRefineDetParam::set_layer_name(int index, const std::string& value) {
  _impl_.layer_name_.Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.TFRefineDetParam.layer_name)
}
inline void TFRefineDetParam::set_layer_name(int index, std::string&& value) {
  _impl_.layer_name_.Mutable(index)->assign(std::move(value));
  // @@protoc_insertion_point(field_set:vitis.ai.proto.TFRefineDetParam.layer_name)
}
inline void TFRefineDetParam::set_layer_name(int index, const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  _impl_.layer_name_.Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set_char:vitis.ai.proto.TFRefineDetParam.layer_name)
}
inline void TFRefineDetParam::set_layer_name(int index, const char* value, size_t size) {
  _impl_.layer_name_.Mutable(index)->assign(
    reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:vitis.ai.proto.TFRefineDetParam.layer_name)
}
inline std::string* TFRefineDetParam::_internal_add_layer_name() {
  return _impl_.layer_name_.Add();
}
inline void TFRefineDetParam::add_layer_name(const std::string& value) {
  _impl_.layer_name_.Add()->assign(value);
  // @@protoc_insertion_point(field_add:vitis.ai.proto.TFRefineDetParam.layer_name)
}
inline void TFRefineDetParam::add_layer_name(std::string&& value) {
  _impl_.layer_name_.Add(std::move(value));
  // @@protoc_insertion_point(field_add:vitis.ai.proto.TFRefineDetParam.layer_name)
}
inline void TFRefineDetParam::add_layer_name(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  _impl_.layer_name_.Add()->assign(value);
  // @@protoc_insertion_point(field_add_char:vitis.ai.proto.TFRefineDetParam.layer_name)
}
inline void TFRefineDetParam::add_layer_name(const char* value, size_t size) {
  _impl_.layer_name_.Add()->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_add_pointer:vitis.ai.proto.TFRefineDetParam.layer_name)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>&
TFRefineDetParam::layer_name() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.TFRefineDetParam.layer_name)
  return _impl_.layer_name_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>*
TFRefineDetParam::mutable_layer_name() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.TFRefineDetParam.layer_name)
  return &_impl_.layer_name_;
}

// float scale_xy = 8;
inline void TFRefineDetParam::clear_scale_xy() {
  _impl_.scale_xy_ = 0;
}
inline float TFRefineDetParam::_internal_scale_xy() const {
  return _impl_.scale_xy_;
}
inline float TFRefineDetParam::scale_xy() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.TFRefineDetParam.scale_xy)
  return _internal_scale_xy();
}
inline void TFRefineDetParam::_internal_set_scale_xy(float value) {
  
  _impl_.scale_xy_ = value;
}
inline void TFRefineDetParam::set_scale_xy(float value) {
  _internal_set_scale_xy(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.TFRefineDetParam.scale_xy)
}

// float scale_wh = 9;
inline void TFRefineDetParam::clear_scale_wh() {
  _impl_.scale_wh_ = 0;
}
inline float TFRefineDetParam::_internal_scale_wh() const {
  return _impl_.scale_wh_;
}
inline float TFRefineDetParam::scale_wh() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.TFRefineDetParam.scale_wh)
  return _internal_scale_wh();
}
inline void TFRefineDetParam::_internal_set_scale_wh(float value) {
  
  _impl_.scale_wh_ = value;
}
inline void TFRefineDetParam::set_scale_wh(float value) {
  _internal_set_scale_wh(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.TFRefineDetParam.scale_wh)
}

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

// MedicalRefineDetParam_OutputInfo

// .vitis.ai.proto.MedicalRefineDetParam.OutputType type = 1;
inline void MedicalRefineDetParam_OutputInfo::clear_type() {
  _impl_.type_ = 0;
}
inline ::vitis::ai::proto::MedicalRefineDetParam_OutputType MedicalRefineDetParam_OutputInfo::_internal_type() const {
  return static_cast< ::vitis::ai::proto::MedicalRefineDetParam_OutputType >(_impl_.type_);
}
inline ::vitis::ai::proto::MedicalRefineDetParam_OutputType MedicalRefineDetParam_OutputInfo::type() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.MedicalRefineDetParam.OutputInfo.type)
  return _internal_type();
}
inline void MedicalRefineDetParam_OutputInfo::_internal_set_type(::vitis::ai::proto::MedicalRefineDetParam_OutputType value) {
  
  _impl_.type_ = value;
}
inline void MedicalRefineDetParam_OutputInfo::set_type(::vitis::ai::proto::MedicalRefineDetParam_OutputType value) {
  _internal_set_type(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.MedicalRefineDetParam.OutputInfo.type)
}

// int32 order = 2;
inline void MedicalRefineDetParam_OutputInfo::clear_order() {
  _impl_.order_ = 0;
}
inline int32_t MedicalRefineDetParam_OutputInfo::_internal_order() const {
  return _impl_.order_;
}
inline int32_t MedicalRefineDetParam_OutputInfo::order() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.MedicalRefineDetParam.OutputInfo.order)
  return _internal_order();
}
inline void MedicalRefineDetParam_OutputInfo::_internal_set_order(int32_t value) {
  
  _impl_.order_ = value;
}
inline void MedicalRefineDetParam_OutputInfo::set_order(int32_t value) {
  _internal_set_order(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.MedicalRefineDetParam.OutputInfo.order)
}

// string name = 3;
inline void MedicalRefineDetParam_OutputInfo::clear_name() {
  _impl_.name_.ClearToEmpty();
}
inline const std::string& MedicalRefineDetParam_OutputInfo::name() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.MedicalRefineDetParam.OutputInfo.name)
  return _internal_name();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void MedicalRefineDetParam_OutputInfo::set_name(ArgT0&& arg0, ArgT... args) {
 
 _impl_.name_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:vitis.ai.proto.MedicalRefineDetParam.OutputInfo.name)
}
inline std::string* MedicalRefineDetParam_OutputInfo::mutable_name() {
  std::string* _s = _internal_mutable_name();
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.MedicalRefineDetParam.OutputInfo.name)
  return _s;
}
inline const std::string& MedicalRefineDetParam_OutputInfo::_internal_name() const {
  return _impl_.name_.Get();
}
inline void MedicalRefineDetParam_OutputInfo::_internal_set_name(const std::string& value) {
  
  _impl_.name_.Set(value, GetArenaForAllocation());
}
inline std::string* MedicalRefineDetParam_OutputInfo::_internal_mutable_name() {
  
  return _impl_.name_.Mutable(GetArenaForAllocation());
}
inline std::string* MedicalRefineDetParam_OutputInfo::release_name() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.MedicalRefineDetParam.OutputInfo.name)
  return _impl_.name_.Release();
}
inline void MedicalRefineDetParam_OutputInfo::set_allocated_name(std::string* name) {
  if (name != nullptr) {
    
  } else {
    
  }
  _impl_.name_.SetAllocated(name, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (_impl_.name_.IsDefault()) {
    _impl_.name_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.MedicalRefineDetParam.OutputInfo.name)
}

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

// MedicalRefineDetParam

// int32 num_classes = 1;
inline void MedicalRefineDetParam::clear_num_classes() {
  _impl_.num_classes_ = 0;
}
inline int32_t MedicalRefineDetParam::_internal_num_classes() const {
  return _impl_.num_classes_;
}
inline int32_t MedicalRefineDetParam::num_classes() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.MedicalRefineDetParam.num_classes)
  return _internal_num_classes();
}
inline void MedicalRefineDetParam::_internal_set_num_classes(int32_t value) {
  
  _impl_.num_classes_ = value;
}
inline void MedicalRefineDetParam::set_num_classes(int32_t value) {
  _internal_set_num_classes(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.MedicalRefineDetParam.num_classes)
}

// float scale_xy = 2;
inline void MedicalRefineDetParam::clear_scale_xy() {
  _impl_.scale_xy_ = 0;
}
inline float MedicalRefineDetParam::_internal_scale_xy() const {
  return _impl_.scale_xy_;
}
inline float MedicalRefineDetParam::scale_xy() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.MedicalRefineDetParam.scale_xy)
  return _internal_scale_xy();
}
inline void MedicalRefineDetParam::_internal_set_scale_xy(float value) {
  
  _impl_.scale_xy_ = value;
}
inline void MedicalRefineDetParam::set_scale_xy(float value) {
  _internal_set_scale_xy(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.MedicalRefineDetParam.scale_xy)
}

// float scale_wh = 3;
inline void MedicalRefineDetParam::clear_scale_wh() {
  _impl_.scale_wh_ = 0;
}
inline float MedicalRefineDetParam::_internal_scale_wh() const {
  return _impl_.scale_wh_;
}
inline float MedicalRefineDetParam::scale_wh() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.MedicalRefineDetParam.scale_wh)
  return _internal_scale_wh();
}
inline void MedicalRefineDetParam::_internal_set_scale_wh(float value) {
  
  _impl_.scale_wh_ = value;
}
inline void MedicalRefineDetParam::set_scale_wh(float value) {
  _internal_set_scale_wh(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.MedicalRefineDetParam.scale_wh)
}

// float nms_threshold = 4;
inline void MedicalRefineDetParam::clear_nms_threshold() {
  _impl_.nms_threshold_ = 0;
}
inline float MedicalRefineDetParam::_internal_nms_threshold() const {
  return _impl_.nms_threshold_;
}
inline float MedicalRefineDetParam::nms_threshold() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.MedicalRefineDetParam.nms_threshold)
  return _internal_nms_threshold();
}
inline void MedicalRefineDetParam::_internal_set_nms_threshold(float value) {
  
  _impl_.nms_threshold_ = value;
}
inline void MedicalRefineDetParam::set_nms_threshold(float value) {
  _internal_set_nms_threshold(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.MedicalRefineDetParam.nms_threshold)
}

// float conf_threshold = 5;
inline void MedicalRefineDetParam::clear_conf_threshold() {
  _impl_.conf_threshold_ = 0;
}
inline float MedicalRefineDetParam::_internal_conf_threshold() const {
  return _impl_.conf_threshold_;
}
inline float MedicalRefineDetParam::conf_threshold() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.MedicalRefineDetParam.conf_threshold)
  return _internal_conf_threshold();
}
inline void MedicalRefineDetParam::_internal_set_conf_threshold(float value) {
  
  _impl_.conf_threshold_ = value;
}
inline void MedicalRefineDetParam::set_conf_threshold(float value) {
  _internal_set_conf_threshold(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.MedicalRefineDetParam.conf_threshold)
}

// int32 keep_top_k = 6;
inline void MedicalRefineDetParam::clear_keep_top_k() {
  _impl_.keep_top_k_ = 0;
}
inline int32_t MedicalRefineDetParam::_internal_keep_top_k() const {
  return _impl_.keep_top_k_;
}
inline int32_t MedicalRefineDetParam::keep_top_k() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.MedicalRefineDetParam.keep_top_k)
  return _internal_keep_top_k();
}
inline void MedicalRefineDetParam::_internal_set_keep_top_k(int32_t value) {
  
  _impl_.keep_top_k_ = value;
}
inline void MedicalRefineDetParam::set_keep_top_k(int32_t value) {
  _internal_set_keep_top_k(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.MedicalRefineDetParam.keep_top_k)
}

// int32 top_k = 7;
inline void MedicalRefineDetParam::clear_top_k() {
  _impl_.top_k_ = 0;
}
inline int32_t MedicalRefineDetParam::_internal_top_k() const {
  return _impl_.top_k_;
}
inline int32_t MedicalRefineDetParam::top_k() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.MedicalRefineDetParam.top_k)
  return _internal_top_k();
}
inline void MedicalRefineDetParam::_internal_set_top_k(int32_t value) {
  
  _impl_.top_k_ = value;
}
inline void MedicalRefineDetParam::set_top_k(int32_t value) {
  _internal_set_top_k(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.MedicalRefineDetParam.top_k)
}

// .vitis.ai.proto.MedicalPriorBoxParam medical_prior_box_param = 8;
inline bool MedicalRefineDetParam::_internal_has_medical_prior_box_param() const {
  return this != internal_default_instance() && _impl_.medical_prior_box_param_ != nullptr;
}
inline bool MedicalRefineDetParam::has_medical_prior_box_param() const {
  return _internal_has_medical_prior_box_param();
}
inline void MedicalRefineDetParam::clear_medical_prior_box_param() {
  if (GetArenaForAllocation() == nullptr && _impl_.medical_prior_box_param_ != nullptr) {
    delete _impl_.medical_prior_box_param_;
  }
  _impl_.medical_prior_box_param_ = nullptr;
}
inline const ::vitis::ai::proto::MedicalPriorBoxParam& MedicalRefineDetParam::_internal_medical_prior_box_param() const {
  const ::vitis::ai::proto::MedicalPriorBoxParam* p = _impl_.medical_prior_box_param_;
  return p != nullptr ? *p : reinterpret_cast<const ::vitis::ai::proto::MedicalPriorBoxParam&>(
      ::vitis::ai::proto::_MedicalPriorBoxParam_default_instance_);
}
inline const ::vitis::ai::proto::MedicalPriorBoxParam& MedicalRefineDetParam::medical_prior_box_param() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.MedicalRefineDetParam.medical_prior_box_param)
  return _internal_medical_prior_box_param();
}
inline void MedicalRefineDetParam::unsafe_arena_set_allocated_medical_prior_box_param(
    ::vitis::ai::proto::MedicalPriorBoxParam* medical_prior_box_param) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.medical_prior_box_param_);
  }
  _impl_.medical_prior_box_param_ = medical_prior_box_param;
  if (medical_prior_box_param) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:vitis.ai.proto.MedicalRefineDetParam.medical_prior_box_param)
}
inline ::vitis::ai::proto::MedicalPriorBoxParam* MedicalRefineDetParam::release_medical_prior_box_param() {
  
  ::vitis::ai::proto::MedicalPriorBoxParam* temp = _impl_.medical_prior_box_param_;
  _impl_.medical_prior_box_param_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::vitis::ai::proto::MedicalPriorBoxParam* MedicalRefineDetParam::unsafe_arena_release_medical_prior_box_param() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.MedicalRefineDetParam.medical_prior_box_param)
  
  ::vitis::ai::proto::MedicalPriorBoxParam* temp = _impl_.medical_prior_box_param_;
  _impl_.medical_prior_box_param_ = nullptr;
  return temp;
}
inline ::vitis::ai::proto::MedicalPriorBoxParam* MedicalRefineDetParam::_internal_mutable_medical_prior_box_param() {
  
  if (_impl_.medical_prior_box_param_ == nullptr) {
    auto* p = CreateMaybeMessage<::vitis::ai::proto::MedicalPriorBoxParam>(GetArenaForAllocation());
    _impl_.medical_prior_box_param_ = p;
  }
  return _impl_.medical_prior_box_param_;
}
inline ::vitis::ai::proto::MedicalPriorBoxParam* MedicalRefineDetParam::mutable_medical_prior_box_param() {
  ::vitis::ai::proto::MedicalPriorBoxParam* _msg = _internal_mutable_medical_prior_box_param();
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.MedicalRefineDetParam.medical_prior_box_param)
  return _msg;
}
inline void MedicalRefineDetParam::set_allocated_medical_prior_box_param(::vitis::ai::proto::MedicalPriorBoxParam* medical_prior_box_param) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete _impl_.medical_prior_box_param_;
  }
  if (medical_prior_box_param) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
        ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(medical_prior_box_param);
    if (message_arena != submessage_arena) {
      medical_prior_box_param = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, medical_prior_box_param, submessage_arena);
    }
    
  } else {
    
  }
  _impl_.medical_prior_box_param_ = medical_prior_box_param;
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.MedicalRefineDetParam.medical_prior_box_param)
}

// repeated .vitis.ai.proto.MedicalRefineDetParam.OutputInfo output_info = 9;
inline int MedicalRefineDetParam::_internal_output_info_size() const {
  return _impl_.output_info_.size();
}
inline int MedicalRefineDetParam::output_info_size() const {
  return _internal_output_info_size();
}
inline void MedicalRefineDetParam::clear_output_info() {
  _impl_.output_info_.Clear();
}
inline ::vitis::ai::proto::MedicalRefineDetParam_OutputInfo* MedicalRefineDetParam::mutable_output_info(int index) {
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.MedicalRefineDetParam.output_info)
  return _impl_.output_info_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::MedicalRefineDetParam_OutputInfo >*
MedicalRefineDetParam::mutable_output_info() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.MedicalRefineDetParam.output_info)
  return &_impl_.output_info_;
}
inline const ::vitis::ai::proto::MedicalRefineDetParam_OutputInfo& MedicalRefineDetParam::_internal_output_info(int index) const {
  return _impl_.output_info_.Get(index);
}
inline const ::vitis::ai::proto::MedicalRefineDetParam_OutputInfo& MedicalRefineDetParam::output_info(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.MedicalRefineDetParam.output_info)
  return _internal_output_info(index);
}
inline ::vitis::ai::proto::MedicalRefineDetParam_OutputInfo* MedicalRefineDetParam::_internal_add_output_info() {
  return _impl_.output_info_.Add();
}
inline ::vitis::ai::proto::MedicalRefineDetParam_OutputInfo* MedicalRefineDetParam::add_output_info() {
  ::vitis::ai::proto::MedicalRefineDetParam_OutputInfo* _add = _internal_add_output_info();
  // @@protoc_insertion_point(field_add:vitis.ai.proto.MedicalRefineDetParam.output_info)
  return _add;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::MedicalRefineDetParam_OutputInfo >&
MedicalRefineDetParam::output_info() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.MedicalRefineDetParam.output_info)
  return _impl_.output_info_;
}

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

// ReidParam

// repeated float bn_means = 1;
inline int ReidParam::_internal_bn_means_size() const {
  return _impl_.bn_means_.size();
}
inline int ReidParam::bn_means_size() const {
  return _internal_bn_means_size();
}
inline void ReidParam::clear_bn_means() {
  _impl_.bn_means_.Clear();
}
inline float ReidParam::_internal_bn_means(int index) const {
  return _impl_.bn_means_.Get(index);
}
inline float ReidParam::bn_means(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.ReidParam.bn_means)
  return _internal_bn_means(index);
}
inline void ReidParam::set_bn_means(int index, float value) {
  _impl_.bn_means_.Set(index, value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.ReidParam.bn_means)
}
inline void ReidParam::_internal_add_bn_means(float value) {
  _impl_.bn_means_.Add(value);
}
inline void ReidParam::add_bn_means(float value) {
  _internal_add_bn_means(value);
  // @@protoc_insertion_point(field_add:vitis.ai.proto.ReidParam.bn_means)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
ReidParam::_internal_bn_means() const {
  return _impl_.bn_means_;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
ReidParam::bn_means() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.ReidParam.bn_means)
  return _internal_bn_means();
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
ReidParam::_internal_mutable_bn_means() {
  return &_impl_.bn_means_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
ReidParam::mutable_bn_means() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.ReidParam.bn_means)
  return _internal_mutable_bn_means();
}

// repeated float bn_weights = 2;
inline int ReidParam::_internal_bn_weights_size() const {
  return _impl_.bn_weights_.size();
}
inline int ReidParam::bn_weights_size() const {
  return _internal_bn_weights_size();
}
inline void ReidParam::clear_bn_weights() {
  _impl_.bn_weights_.Clear();
}
inline float ReidParam::_internal_bn_weights(int index) const {
  return _impl_.bn_weights_.Get(index);
}
inline float ReidParam::bn_weights(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.ReidParam.bn_weights)
  return _internal_bn_weights(index);
}
inline void ReidParam::set_bn_weights(int index, float value) {
  _impl_.bn_weights_.Set(index, value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.ReidParam.bn_weights)
}
inline void ReidParam::_internal_add_bn_weights(float value) {
  _impl_.bn_weights_.Add(value);
}
inline void ReidParam::add_bn_weights(float value) {
  _internal_add_bn_weights(value);
  // @@protoc_insertion_point(field_add:vitis.ai.proto.ReidParam.bn_weights)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
ReidParam::_internal_bn_weights() const {
  return _impl_.bn_weights_;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
ReidParam::bn_weights() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.ReidParam.bn_weights)
  return _internal_bn_weights();
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
ReidParam::_internal_mutable_bn_weights() {
  return &_impl_.bn_weights_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
ReidParam::mutable_bn_weights() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.ReidParam.bn_weights)
  return _internal_mutable_bn_weights();
}

// repeated float bn_vars = 3;
inline int ReidParam::_internal_bn_vars_size() const {
  return _impl_.bn_vars_.size();
}
inline int ReidParam::bn_vars_size() const {
  return _internal_bn_vars_size();
}
inline void ReidParam::clear_bn_vars() {
  _impl_.bn_vars_.Clear();
}
inline float ReidParam::_internal_bn_vars(int index) const {
  return _impl_.bn_vars_.Get(index);
}
inline float ReidParam::bn_vars(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.ReidParam.bn_vars)
  return _internal_bn_vars(index);
}
inline void ReidParam::set_bn_vars(int index, float value) {
  _impl_.bn_vars_.Set(index, value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.ReidParam.bn_vars)
}
inline void ReidParam::_internal_add_bn_vars(float value) {
  _impl_.bn_vars_.Add(value);
}
inline void ReidParam::add_bn_vars(float value) {
  _internal_add_bn_vars(value);
  // @@protoc_insertion_point(field_add:vitis.ai.proto.ReidParam.bn_vars)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
ReidParam::_internal_bn_vars() const {
  return _impl_.bn_vars_;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
ReidParam::bn_vars() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.ReidParam.bn_vars)
  return _internal_bn_vars();
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
ReidParam::_internal_mutable_bn_vars() {
  return &_impl_.bn_vars_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
ReidParam::mutable_bn_vars() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.ReidParam.bn_vars)
  return _internal_mutable_bn_vars();
}

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

// OpenPoseParam

// repeated string layer_name = 1;
inline int OpenPoseParam::_internal_layer_name_size() const {
  return _impl_.layer_name_.size();
}
inline int OpenPoseParam::layer_name_size() const {
  return _internal_layer_name_size();
}
inline void OpenPoseParam::clear_layer_name() {
  _impl_.layer_name_.Clear();
}
inline std::string* OpenPoseParam::add_layer_name() {
  std::string* _s = _internal_add_layer_name();
  // @@protoc_insertion_point(field_add_mutable:vitis.ai.proto.OpenPoseParam.layer_name)
  return _s;
}
inline const std::string& OpenPoseParam::_internal_layer_name(int index) const {
  return _impl_.layer_name_.Get(index);
}
inline const std::string& OpenPoseParam::layer_name(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.OpenPoseParam.layer_name)
  return _internal_layer_name(index);
}
inline std::string* OpenPoseParam::mutable_layer_name(int index) {
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.OpenPoseParam.layer_name)
  return _impl_.layer_name_.Mutable(index);
}
inline void OpenPoseParam::set_layer_name(int index, const std::string& value) {
  _impl_.layer_name_.Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.OpenPoseParam.layer_name)
}
inline void OpenPoseParam::set_layer_name(int index, std::string&& value) {
  _impl_.layer_name_.Mutable(index)->assign(std::move(value));
  // @@protoc_insertion_point(field_set:vitis.ai.proto.OpenPoseParam.layer_name)
}
inline void OpenPoseParam::set_layer_name(int index, const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  _impl_.layer_name_.Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set_char:vitis.ai.proto.OpenPoseParam.layer_name)
}
inline void OpenPoseParam::set_layer_name(int index, const char* value, size_t size) {
  _impl_.layer_name_.Mutable(index)->assign(
    reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:vitis.ai.proto.OpenPoseParam.layer_name)
}
inline std::string* OpenPoseParam::_internal_add_layer_name() {
  return _impl_.layer_name_.Add();
}
inline void OpenPoseParam::add_layer_name(const std::string& value) {
  _impl_.layer_name_.Add()->assign(value);
  // @@protoc_insertion_point(field_add:vitis.ai.proto.OpenPoseParam.layer_name)
}
inline void OpenPoseParam::add_layer_name(std::string&& value) {
  _impl_.layer_name_.Add(std::move(value));
  // @@protoc_insertion_point(field_add:vitis.ai.proto.OpenPoseParam.layer_name)
}
inline void OpenPoseParam::add_layer_name(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  _impl_.layer_name_.Add()->assign(value);
  // @@protoc_insertion_point(field_add_char:vitis.ai.proto.OpenPoseParam.layer_name)
}
inline void OpenPoseParam::add_layer_name(const char* value, size_t size) {
  _impl_.layer_name_.Add()->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_add_pointer:vitis.ai.proto.OpenPoseParam.layer_name)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>&
OpenPoseParam::layer_name() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.OpenPoseParam.layer_name)
  return _impl_.layer_name_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>*
OpenPoseParam::mutable_layer_name() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.OpenPoseParam.layer_name)
  return &_impl_.layer_name_;
}

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

// ClassificationParam_AvgPoolParam

// int32 scale = 1;
inline void ClassificationParam_AvgPoolParam::clear_scale() {
  _impl_.scale_ = 0;
}
inline int32_t ClassificationParam_AvgPoolParam::_internal_scale() const {
  return _impl_.scale_;
}
inline int32_t ClassificationParam_AvgPoolParam::scale() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.ClassificationParam.AvgPoolParam.scale)
  return _internal_scale();
}
inline void ClassificationParam_AvgPoolParam::_internal_set_scale(int32_t value) {
  
  _impl_.scale_ = value;
}
inline void ClassificationParam_AvgPoolParam::set_scale(int32_t value) {
  _internal_set_scale(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.ClassificationParam.AvgPoolParam.scale)
}

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

// ClassificationParam

// int32 top_k = 1;
inline void ClassificationParam::clear_top_k() {
  _impl_.top_k_ = 0;
}
inline int32_t ClassificationParam::_internal_top_k() const {
  return _impl_.top_k_;
}
inline int32_t ClassificationParam::top_k() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.ClassificationParam.top_k)
  return _internal_top_k();
}
inline void ClassificationParam::_internal_set_top_k(int32_t value) {
  
  _impl_.top_k_ = value;
}
inline void ClassificationParam::set_top_k(int32_t value) {
  _internal_set_top_k(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.ClassificationParam.top_k)
}

// bool test_accuracy = 2;
inline void ClassificationParam::clear_test_accuracy() {
  _impl_.test_accuracy_ = false;
}
inline bool ClassificationParam::_internal_test_accuracy() const {
  return _impl_.test_accuracy_;
}
inline bool ClassificationParam::test_accuracy() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.ClassificationParam.test_accuracy)
  return _internal_test_accuracy();
}
inline void ClassificationParam::_internal_set_test_accuracy(bool value) {
  
  _impl_.test_accuracy_ = value;
}
inline void ClassificationParam::set_test_accuracy(bool value) {
  _internal_set_test_accuracy(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.ClassificationParam.test_accuracy)
}

// .vitis.ai.proto.ClassificationParam.PreprocessType preprocess_type = 3;
inline void ClassificationParam::clear_preprocess_type() {
  _impl_.preprocess_type_ = 0;
}
inline ::vitis::ai::proto::ClassificationParam_PreprocessType ClassificationParam::_internal_preprocess_type() const {
  return static_cast< ::vitis::ai::proto::ClassificationParam_PreprocessType >(_impl_.preprocess_type_);
}
inline ::vitis::ai::proto::ClassificationParam_PreprocessType ClassificationParam::preprocess_type() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.ClassificationParam.preprocess_type)
  return _internal_preprocess_type();
}
inline void ClassificationParam::_internal_set_preprocess_type(::vitis::ai::proto::ClassificationParam_PreprocessType value) {
  
  _impl_.preprocess_type_ = value;
}
inline void ClassificationParam::set_preprocess_type(::vitis::ai::proto::ClassificationParam_PreprocessType value) {
  _internal_set_preprocess_type(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.ClassificationParam.preprocess_type)
}

// string layer_name = 4;
inline void ClassificationParam::clear_layer_name() {
  _impl_.layer_name_.ClearToEmpty();
}
inline const std::string& ClassificationParam::layer_name() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.ClassificationParam.layer_name)
  return _internal_layer_name();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void ClassificationParam::set_layer_name(ArgT0&& arg0, ArgT... args) {
 
 _impl_.layer_name_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:vitis.ai.proto.ClassificationParam.layer_name)
}
inline std::string* ClassificationParam::mutable_layer_name() {
  std::string* _s = _internal_mutable_layer_name();
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.ClassificationParam.layer_name)
  return _s;
}
inline const std::string& ClassificationParam::_internal_layer_name() const {
  return _impl_.layer_name_.Get();
}
inline void ClassificationParam::_internal_set_layer_name(const std::string& value) {
  
  _impl_.layer_name_.Set(value, GetArenaForAllocation());
}
inline std::string* ClassificationParam::_internal_mutable_layer_name() {
  
  return _impl_.layer_name_.Mutable(GetArenaForAllocation());
}
inline std::string* ClassificationParam::release_layer_name() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.ClassificationParam.layer_name)
  return _impl_.layer_name_.Release();
}
inline void ClassificationParam::set_allocated_layer_name(std::string* layer_name) {
  if (layer_name != nullptr) {
    
  } else {
    
  }
  _impl_.layer_name_.SetAllocated(layer_name, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (_impl_.layer_name_.IsDefault()) {
    _impl_.layer_name_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.ClassificationParam.layer_name)
}

// string label_type = 5;
inline void ClassificationParam::clear_label_type() {
  _impl_.label_type_.ClearToEmpty();
}
inline const std::string& ClassificationParam::label_type() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.ClassificationParam.label_type)
  return _internal_label_type();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void ClassificationParam::set_label_type(ArgT0&& arg0, ArgT... args) {
 
 _impl_.label_type_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:vitis.ai.proto.ClassificationParam.label_type)
}
inline std::string* ClassificationParam::mutable_label_type() {
  std::string* _s = _internal_mutable_label_type();
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.ClassificationParam.label_type)
  return _s;
}
inline const std::string& ClassificationParam::_internal_label_type() const {
  return _impl_.label_type_.Get();
}
inline void ClassificationParam::_internal_set_label_type(const std::string& value) {
  
  _impl_.label_type_.Set(value, GetArenaForAllocation());
}
inline std::string* ClassificationParam::_internal_mutable_label_type() {
  
  return _impl_.label_type_.Mutable(GetArenaForAllocation());
}
inline std::string* ClassificationParam::release_label_type() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.ClassificationParam.label_type)
  return _impl_.label_type_.Release();
}
inline void ClassificationParam::set_allocated_label_type(std::string* label_type) {
  if (label_type != nullptr) {
    
  } else {
    
  }
  _impl_.label_type_.SetAllocated(label_type, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (_impl_.label_type_.IsDefault()) {
    _impl_.label_type_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.ClassificationParam.label_type)
}

// .vitis.ai.proto.ClassificationParam.AvgPoolParam avg_pool_param = 6;
inline bool ClassificationParam::_internal_has_avg_pool_param() const {
  return this != internal_default_instance() && _impl_.avg_pool_param_ != nullptr;
}
inline bool ClassificationParam::has_avg_pool_param() const {
  return _internal_has_avg_pool_param();
}
inline void ClassificationParam::clear_avg_pool_param() {
  if (GetArenaForAllocation() == nullptr && _impl_.avg_pool_param_ != nullptr) {
    delete _impl_.avg_pool_param_;
  }
  _impl_.avg_pool_param_ = nullptr;
}
inline const ::vitis::ai::proto::ClassificationParam_AvgPoolParam& ClassificationParam::_internal_avg_pool_param() const {
  const ::vitis::ai::proto::ClassificationParam_AvgPoolParam* p = _impl_.avg_pool_param_;
  return p != nullptr ? *p : reinterpret_cast<const ::vitis::ai::proto::ClassificationParam_AvgPoolParam&>(
      ::vitis::ai::proto::_ClassificationParam_AvgPoolParam_default_instance_);
}
inline const ::vitis::ai::proto::ClassificationParam_AvgPoolParam& ClassificationParam::avg_pool_param() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.ClassificationParam.avg_pool_param)
  return _internal_avg_pool_param();
}
inline void ClassificationParam::unsafe_arena_set_allocated_avg_pool_param(
    ::vitis::ai::proto::ClassificationParam_AvgPoolParam* avg_pool_param) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.avg_pool_param_);
  }
  _impl_.avg_pool_param_ = avg_pool_param;
  if (avg_pool_param) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:vitis.ai.proto.ClassificationParam.avg_pool_param)
}
inline ::vitis::ai::proto::ClassificationParam_AvgPoolParam* ClassificationParam::release_avg_pool_param() {
  
  ::vitis::ai::proto::ClassificationParam_AvgPoolParam* temp = _impl_.avg_pool_param_;
  _impl_.avg_pool_param_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::vitis::ai::proto::ClassificationParam_AvgPoolParam* ClassificationParam::unsafe_arena_release_avg_pool_param() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.ClassificationParam.avg_pool_param)
  
  ::vitis::ai::proto::ClassificationParam_AvgPoolParam* temp = _impl_.avg_pool_param_;
  _impl_.avg_pool_param_ = nullptr;
  return temp;
}
inline ::vitis::ai::proto::ClassificationParam_AvgPoolParam* ClassificationParam::_internal_mutable_avg_pool_param() {
  
  if (_impl_.avg_pool_param_ == nullptr) {
    auto* p = CreateMaybeMessage<::vitis::ai::proto::ClassificationParam_AvgPoolParam>(GetArenaForAllocation());
    _impl_.avg_pool_param_ = p;
  }
  return _impl_.avg_pool_param_;
}
inline ::vitis::ai::proto::ClassificationParam_AvgPoolParam* ClassificationParam::mutable_avg_pool_param() {
  ::vitis::ai::proto::ClassificationParam_AvgPoolParam* _msg = _internal_mutable_avg_pool_param();
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.ClassificationParam.avg_pool_param)
  return _msg;
}
inline void ClassificationParam::set_allocated_avg_pool_param(::vitis::ai::proto::ClassificationParam_AvgPoolParam* avg_pool_param) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete _impl_.avg_pool_param_;
  }
  if (avg_pool_param) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
        ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(avg_pool_param);
    if (message_arena != submessage_arena) {
      avg_pool_param = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, avg_pool_param, submessage_arena);
    }
    
  } else {
    
  }
  _impl_.avg_pool_param_ = avg_pool_param;
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.ClassificationParam.avg_pool_param)
}

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

// DenseBoxParam

// int32 num_of_classes = 1;
inline void DenseBoxParam::clear_num_of_classes() {
  _impl_.num_of_classes_ = 0;
}
inline int32_t DenseBoxParam::_internal_num_of_classes() const {
  return _impl_.num_of_classes_;
}
inline int32_t DenseBoxParam::num_of_classes() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.DenseBoxParam.num_of_classes)
  return _internal_num_of_classes();
}
inline void DenseBoxParam::_internal_set_num_of_classes(int32_t value) {
  
  _impl_.num_of_classes_ = value;
}
inline void DenseBoxParam::set_num_of_classes(int32_t value) {
  _internal_set_num_of_classes(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.DenseBoxParam.num_of_classes)
}

// float nms_threshold = 2;
inline void DenseBoxParam::clear_nms_threshold() {
  _impl_.nms_threshold_ = 0;
}
inline float DenseBoxParam::_internal_nms_threshold() const {
  return _impl_.nms_threshold_;
}
inline float DenseBoxParam::nms_threshold() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.DenseBoxParam.nms_threshold)
  return _internal_nms_threshold();
}
inline void DenseBoxParam::_internal_set_nms_threshold(float value) {
  
  _impl_.nms_threshold_ = value;
}
inline void DenseBoxParam::set_nms_threshold(float value) {
  _internal_set_nms_threshold(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.DenseBoxParam.nms_threshold)
}

// float det_threshold = 3;
inline void DenseBoxParam::clear_det_threshold() {
  _impl_.det_threshold_ = 0;
}
inline float DenseBoxParam::_internal_det_threshold() const {
  return _impl_.det_threshold_;
}
inline float DenseBoxParam::det_threshold() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.DenseBoxParam.det_threshold)
  return _internal_det_threshold();
}
inline void DenseBoxParam::_internal_set_det_threshold(float value) {
  
  _impl_.det_threshold_ = value;
}
inline void DenseBoxParam::set_det_threshold(float value) {
  _internal_set_det_threshold(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.DenseBoxParam.det_threshold)
}

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

// MultiTaskParam

// repeated float th_conf = 1;
inline int MultiTaskParam::_internal_th_conf_size() const {
  return _impl_.th_conf_.size();
}
inline int MultiTaskParam::th_conf_size() const {
  return _internal_th_conf_size();
}
inline void MultiTaskParam::clear_th_conf() {
  _impl_.th_conf_.Clear();
}
inline float MultiTaskParam::_internal_th_conf(int index) const {
  return _impl_.th_conf_.Get(index);
}
inline float MultiTaskParam::th_conf(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.MultiTaskParam.th_conf)
  return _internal_th_conf(index);
}
inline void MultiTaskParam::set_th_conf(int index, float value) {
  _impl_.th_conf_.Set(index, value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.MultiTaskParam.th_conf)
}
inline void MultiTaskParam::_internal_add_th_conf(float value) {
  _impl_.th_conf_.Add(value);
}
inline void MultiTaskParam::add_th_conf(float value) {
  _internal_add_th_conf(value);
  // @@protoc_insertion_point(field_add:vitis.ai.proto.MultiTaskParam.th_conf)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
MultiTaskParam::_internal_th_conf() const {
  return _impl_.th_conf_;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
MultiTaskParam::th_conf() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.MultiTaskParam.th_conf)
  return _internal_th_conf();
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
MultiTaskParam::_internal_mutable_th_conf() {
  return &_impl_.th_conf_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
MultiTaskParam::mutable_th_conf() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.MultiTaskParam.th_conf)
  return _internal_mutable_th_conf();
}

// int32 num_of_detection_classes = 2;
inline void MultiTaskParam::clear_num_of_detection_classes() {
  _impl_.num_of_detection_classes_ = 0;
}
inline int32_t MultiTaskParam::_internal_num_of_detection_classes() const {
  return _impl_.num_of_detection_classes_;
}
inline int32_t MultiTaskParam::num_of_detection_classes() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.MultiTaskParam.num_of_detection_classes)
  return _internal_num_of_detection_classes();
}
inline void MultiTaskParam::_internal_set_num_of_detection_classes(int32_t value) {
  
  _impl_.num_of_detection_classes_ = value;
}
inline void MultiTaskParam::set_num_of_detection_classes(int32_t value) {
  _internal_set_num_of_detection_classes(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.MultiTaskParam.num_of_detection_classes)
}

// int32 num_of_segmentation_classes = 3;
inline void MultiTaskParam::clear_num_of_segmentation_classes() {
  _impl_.num_of_segmentation_classes_ = 0;
}
inline int32_t MultiTaskParam::_internal_num_of_segmentation_classes() const {
  return _impl_.num_of_segmentation_classes_;
}
inline int32_t MultiTaskParam::num_of_segmentation_classes() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.MultiTaskParam.num_of_segmentation_classes)
  return _internal_num_of_segmentation_classes();
}
inline void MultiTaskParam::_internal_set_num_of_segmentation_classes(int32_t value) {
  
  _impl_.num_of_segmentation_classes_ = value;
}
inline void MultiTaskParam::set_num_of_segmentation_classes(int32_t value) {
  _internal_set_num_of_segmentation_classes(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.MultiTaskParam.num_of_segmentation_classes)
}

// int32 keep_top_k = 4;
inline void MultiTaskParam::clear_keep_top_k() {
  _impl_.keep_top_k_ = 0;
}
inline int32_t MultiTaskParam::_internal_keep_top_k() const {
  return _impl_.keep_top_k_;
}
inline int32_t MultiTaskParam::keep_top_k() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.MultiTaskParam.keep_top_k)
  return _internal_keep_top_k();
}
inline void MultiTaskParam::_internal_set_keep_top_k(int32_t value) {
  
  _impl_.keep_top_k_ = value;
}
inline void MultiTaskParam::set_keep_top_k(int32_t value) {
  _internal_set_keep_top_k(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.MultiTaskParam.keep_top_k)
}

// int32 top_k = 5;
inline void MultiTaskParam::clear_top_k() {
  _impl_.top_k_ = 0;
}
inline int32_t MultiTaskParam::_internal_top_k() const {
  return _impl_.top_k_;
}
inline int32_t MultiTaskParam::top_k() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.MultiTaskParam.top_k)
  return _internal_top_k();
}
inline void MultiTaskParam::_internal_set_top_k(int32_t value) {
  
  _impl_.top_k_ = value;
}
inline void MultiTaskParam::set_top_k(int32_t value) {
  _internal_set_top_k(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.MultiTaskParam.top_k)
}

// float nms_threshold = 6;
inline void MultiTaskParam::clear_nms_threshold() {
  _impl_.nms_threshold_ = 0;
}
inline float MultiTaskParam::_internal_nms_threshold() const {
  return _impl_.nms_threshold_;
}
inline float MultiTaskParam::nms_threshold() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.MultiTaskParam.nms_threshold)
  return _internal_nms_threshold();
}
inline void MultiTaskParam::_internal_set_nms_threshold(float value) {
  
  _impl_.nms_threshold_ = value;
}
inline void MultiTaskParam::set_nms_threshold(float value) {
  _internal_set_nms_threshold(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.MultiTaskParam.nms_threshold)
}

// repeated .vitis.ai.proto.PriorBoxParam prior_box_param = 7;
inline int MultiTaskParam::_internal_prior_box_param_size() const {
  return _impl_.prior_box_param_.size();
}
inline int MultiTaskParam::prior_box_param_size() const {
  return _internal_prior_box_param_size();
}
inline void MultiTaskParam::clear_prior_box_param() {
  _impl_.prior_box_param_.Clear();
}
inline ::vitis::ai::proto::PriorBoxParam* MultiTaskParam::mutable_prior_box_param(int index) {
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.MultiTaskParam.prior_box_param)
  return _impl_.prior_box_param_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::PriorBoxParam >*
MultiTaskParam::mutable_prior_box_param() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.MultiTaskParam.prior_box_param)
  return &_impl_.prior_box_param_;
}
inline const ::vitis::ai::proto::PriorBoxParam& MultiTaskParam::_internal_prior_box_param(int index) const {
  return _impl_.prior_box_param_.Get(index);
}
inline const ::vitis::ai::proto::PriorBoxParam& MultiTaskParam::prior_box_param(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.MultiTaskParam.prior_box_param)
  return _internal_prior_box_param(index);
}
inline ::vitis::ai::proto::PriorBoxParam* MultiTaskParam::_internal_add_prior_box_param() {
  return _impl_.prior_box_param_.Add();
}
inline ::vitis::ai::proto::PriorBoxParam* MultiTaskParam::add_prior_box_param() {
  ::vitis::ai::proto::PriorBoxParam* _add = _internal_add_prior_box_param();
  // @@protoc_insertion_point(field_add:vitis.ai.proto.MultiTaskParam.prior_box_param)
  return _add;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::PriorBoxParam >&
MultiTaskParam::prior_box_param() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.MultiTaskParam.prior_box_param)
  return _impl_.prior_box_param_;
}

// repeated string loc_name = 8;
inline int MultiTaskParam::_internal_loc_name_size() const {
  return _impl_.loc_name_.size();
}
inline int MultiTaskParam::loc_name_size() const {
  return _internal_loc_name_size();
}
inline void MultiTaskParam::clear_loc_name() {
  _impl_.loc_name_.Clear();
}
inline std::string* MultiTaskParam::add_loc_name() {
  std::string* _s = _internal_add_loc_name();
  // @@protoc_insertion_point(field_add_mutable:vitis.ai.proto.MultiTaskParam.loc_name)
  return _s;
}
inline const std::string& MultiTaskParam::_internal_loc_name(int index) const {
  return _impl_.loc_name_.Get(index);
}
inline const std::string& MultiTaskParam::loc_name(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.MultiTaskParam.loc_name)
  return _internal_loc_name(index);
}
inline std::string* MultiTaskParam::mutable_loc_name(int index) {
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.MultiTaskParam.loc_name)
  return _impl_.loc_name_.Mutable(index);
}
inline void MultiTaskParam::set_loc_name(int index, const std::string& value) {
  _impl_.loc_name_.Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.MultiTaskParam.loc_name)
}
inline void MultiTaskParam::set_loc_name(int index, std::string&& value) {
  _impl_.loc_name_.Mutable(index)->assign(std::move(value));
  // @@protoc_insertion_point(field_set:vitis.ai.proto.MultiTaskParam.loc_name)
}
inline void MultiTaskParam::set_loc_name(int index, const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  _impl_.loc_name_.Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set_char:vitis.ai.proto.MultiTaskParam.loc_name)
}
inline void MultiTaskParam::set_loc_name(int index, const char* value, size_t size) {
  _impl_.loc_name_.Mutable(index)->assign(
    reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:vitis.ai.proto.MultiTaskParam.loc_name)
}
inline std::string* MultiTaskParam::_internal_add_loc_name() {
  return _impl_.loc_name_.Add();
}
inline void MultiTaskParam::add_loc_name(const std::string& value) {
  _impl_.loc_name_.Add()->assign(value);
  // @@protoc_insertion_point(field_add:vitis.ai.proto.MultiTaskParam.loc_name)
}
inline void MultiTaskParam::add_loc_name(std::string&& value) {
  _impl_.loc_name_.Add(std::move(value));
  // @@protoc_insertion_point(field_add:vitis.ai.proto.MultiTaskParam.loc_name)
}
inline void MultiTaskParam::add_loc_name(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  _impl_.loc_name_.Add()->assign(value);
  // @@protoc_insertion_point(field_add_char:vitis.ai.proto.MultiTaskParam.loc_name)
}
inline void MultiTaskParam::add_loc_name(const char* value, size_t size) {
  _impl_.loc_name_.Add()->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_add_pointer:vitis.ai.proto.MultiTaskParam.loc_name)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>&
MultiTaskParam::loc_name() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.MultiTaskParam.loc_name)
  return _impl_.loc_name_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>*
MultiTaskParam::mutable_loc_name() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.MultiTaskParam.loc_name)
  return &_impl_.loc_name_;
}

// repeated string conf_name = 9;
inline int MultiTaskParam::_internal_conf_name_size() const {
  return _impl_.conf_name_.size();
}
inline int MultiTaskParam::conf_name_size() const {
  return _internal_conf_name_size();
}
inline void MultiTaskParam::clear_conf_name() {
  _impl_.conf_name_.Clear();
}
inline std::string* MultiTaskParam::add_conf_name() {
  std::string* _s = _internal_add_conf_name();
  // @@protoc_insertion_point(field_add_mutable:vitis.ai.proto.MultiTaskParam.conf_name)
  return _s;
}
inline const std::string& MultiTaskParam::_internal_conf_name(int index) const {
  return _impl_.conf_name_.Get(index);
}
inline const std::string& MultiTaskParam::conf_name(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.MultiTaskParam.conf_name)
  return _internal_conf_name(index);
}
inline std::string* MultiTaskParam::mutable_conf_name(int index) {
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.MultiTaskParam.conf_name)
  return _impl_.conf_name_.Mutable(index);
}
inline void MultiTaskParam::set_conf_name(int index, const std::string& value) {
  _impl_.conf_name_.Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.MultiTaskParam.conf_name)
}
inline void MultiTaskParam::set_conf_name(int index, std::string&& value) {
  _impl_.conf_name_.Mutable(index)->assign(std::move(value));
  // @@protoc_insertion_point(field_set:vitis.ai.proto.MultiTaskParam.conf_name)
}
inline void MultiTaskParam::set_conf_name(int index, const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  _impl_.conf_name_.Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set_char:vitis.ai.proto.MultiTaskParam.conf_name)
}
inline void MultiTaskParam::set_conf_name(int index, const char* value, size_t size) {
  _impl_.conf_name_.Mutable(index)->assign(
    reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:vitis.ai.proto.MultiTaskParam.conf_name)
}
inline std::string* MultiTaskParam::_internal_add_conf_name() {
  return _impl_.conf_name_.Add();
}
inline void MultiTaskParam::add_conf_name(const std::string& value) {
  _impl_.conf_name_.Add()->assign(value);
  // @@protoc_insertion_point(field_add:vitis.ai.proto.MultiTaskParam.conf_name)
}
inline void MultiTaskParam::add_conf_name(std::string&& value) {
  _impl_.conf_name_.Add(std::move(value));
  // @@protoc_insertion_point(field_add:vitis.ai.proto.MultiTaskParam.conf_name)
}
inline void MultiTaskParam::add_conf_name(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  _impl_.conf_name_.Add()->assign(value);
  // @@protoc_insertion_point(field_add_char:vitis.ai.proto.MultiTaskParam.conf_name)
}
inline void MultiTaskParam::add_conf_name(const char* value, size_t size) {
  _impl_.conf_name_.Add()->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_add_pointer:vitis.ai.proto.MultiTaskParam.conf_name)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>&
MultiTaskParam::conf_name() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.MultiTaskParam.conf_name)
  return _impl_.conf_name_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>*
MultiTaskParam::mutable_conf_name() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.MultiTaskParam.conf_name)
  return &_impl_.conf_name_;
}

// repeated string centerness_name = 10;
inline int MultiTaskParam::_internal_centerness_name_size() const {
  return _impl_.centerness_name_.size();
}
inline int MultiTaskParam::centerness_name_size() const {
  return _internal_centerness_name_size();
}
inline void MultiTaskParam::clear_centerness_name() {
  _impl_.centerness_name_.Clear();
}
inline std::string* MultiTaskParam::add_centerness_name() {
  std::string* _s = _internal_add_centerness_name();
  // @@protoc_insertion_point(field_add_mutable:vitis.ai.proto.MultiTaskParam.centerness_name)
  return _s;
}
inline const std::string& MultiTaskParam::_internal_centerness_name(int index) const {
  return _impl_.centerness_name_.Get(index);
}
inline const std::string& MultiTaskParam::centerness_name(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.MultiTaskParam.centerness_name)
  return _internal_centerness_name(index);
}
inline std::string* MultiTaskParam::mutable_centerness_name(int index) {
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.MultiTaskParam.centerness_name)
  return _impl_.centerness_name_.Mutable(index);
}
inline void MultiTaskParam::set_centerness_name(int index, const std::string& value) {
  _impl_.centerness_name_.Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.MultiTaskParam.centerness_name)
}
inline void MultiTaskParam::set_centerness_name(int index, std::string&& value) {
  _impl_.centerness_name_.Mutable(index)->assign(std::move(value));
  // @@protoc_insertion_point(field_set:vitis.ai.proto.MultiTaskParam.centerness_name)
}
inline void MultiTaskParam::set_centerness_name(int index, const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  _impl_.centerness_name_.Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set_char:vitis.ai.proto.MultiTaskParam.centerness_name)
}
inline void MultiTaskParam::set_centerness_name(int index, const char* value, size_t size) {
  _impl_.centerness_name_.Mutable(index)->assign(
    reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:vitis.ai.proto.MultiTaskParam.centerness_name)
}
inline std::string* MultiTaskParam::_internal_add_centerness_name() {
  return _impl_.centerness_name_.Add();
}
inline void MultiTaskParam::add_centerness_name(const std::string& value) {
  _impl_.centerness_name_.Add()->assign(value);
  // @@protoc_insertion_point(field_add:vitis.ai.proto.MultiTaskParam.centerness_name)
}
inline void MultiTaskParam::add_centerness_name(std::string&& value) {
  _impl_.centerness_name_.Add(std::move(value));
  // @@protoc_insertion_point(field_add:vitis.ai.proto.MultiTaskParam.centerness_name)
}
inline void MultiTaskParam::add_centerness_name(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  _impl_.centerness_name_.Add()->assign(value);
  // @@protoc_insertion_point(field_add_char:vitis.ai.proto.MultiTaskParam.centerness_name)
}
inline void MultiTaskParam::add_centerness_name(const char* value, size_t size) {
  _impl_.centerness_name_.Add()->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_add_pointer:vitis.ai.proto.MultiTaskParam.centerness_name)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>&
MultiTaskParam::centerness_name() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.MultiTaskParam.centerness_name)
  return _impl_.centerness_name_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>*
MultiTaskParam::mutable_centerness_name() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.MultiTaskParam.centerness_name)
  return &_impl_.centerness_name_;
}

// string seg_name = 11;
inline void MultiTaskParam::clear_seg_name() {
  _impl_.seg_name_.ClearToEmpty();
}
inline const std::string& MultiTaskParam::seg_name() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.MultiTaskParam.seg_name)
  return _internal_seg_name();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void MultiTaskParam::set_seg_name(ArgT0&& arg0, ArgT... args) {
 
 _impl_.seg_name_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:vitis.ai.proto.MultiTaskParam.seg_name)
}
inline std::string* MultiTaskParam::mutable_seg_name() {
  std::string* _s = _internal_mutable_seg_name();
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.MultiTaskParam.seg_name)
  return _s;
}
inline const std::string& MultiTaskParam::_internal_seg_name() const {
  return _impl_.seg_name_.Get();
}
inline void MultiTaskParam::_internal_set_seg_name(const std::string& value) {
  
  _impl_.seg_name_.Set(value, GetArenaForAllocation());
}
inline std::string* MultiTaskParam::_internal_mutable_seg_name() {
  
  return _impl_.seg_name_.Mutable(GetArenaForAllocation());
}
inline std::string* MultiTaskParam::release_seg_name() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.MultiTaskParam.seg_name)
  return _impl_.seg_name_.Release();
}
inline void MultiTaskParam::set_allocated_seg_name(std::string* seg_name) {
  if (seg_name != nullptr) {
    
  } else {
    
  }
  _impl_.seg_name_.SetAllocated(seg_name, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (_impl_.seg_name_.IsDefault()) {
    _impl_.seg_name_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.MultiTaskParam.seg_name)
}

// string drivable_name = 12;
inline void MultiTaskParam::clear_drivable_name() {
  _impl_.drivable_name_.ClearToEmpty();
}
inline const std::string& MultiTaskParam::drivable_name() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.MultiTaskParam.drivable_name)
  return _internal_drivable_name();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void MultiTaskParam::set_drivable_name(ArgT0&& arg0, ArgT... args) {
 
 _impl_.drivable_name_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:vitis.ai.proto.MultiTaskParam.drivable_name)
}
inline std::string* MultiTaskParam::mutable_drivable_name() {
  std::string* _s = _internal_mutable_drivable_name();
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.MultiTaskParam.drivable_name)
  return _s;
}
inline const std::string& MultiTaskParam::_internal_drivable_name() const {
  return _impl_.drivable_name_.Get();
}
inline void MultiTaskParam::_internal_set_drivable_name(const std::string& value) {
  
  _impl_.drivable_name_.Set(value, GetArenaForAllocation());
}
inline std::string* MultiTaskParam::_internal_mutable_drivable_name() {
  
  return _impl_.drivable_name_.Mutable(GetArenaForAllocation());
}
inline std::string* MultiTaskParam::release_drivable_name() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.MultiTaskParam.drivable_name)
  return _impl_.drivable_name_.Release();
}
inline void MultiTaskParam::set_allocated_drivable_name(std::string* drivable_name) {
  if (drivable_name != nullptr) {
    
  } else {
    
  }
  _impl_.drivable_name_.SetAllocated(drivable_name, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (_impl_.drivable_name_.IsDefault()) {
    _impl_.drivable_name_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.MultiTaskParam.drivable_name)
}

// string depth_name = 13;
inline void MultiTaskParam::clear_depth_name() {
  _impl_.depth_name_.ClearToEmpty();
}
inline const std::string& MultiTaskParam::depth_name() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.MultiTaskParam.depth_name)
  return _internal_depth_name();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void MultiTaskParam::set_depth_name(ArgT0&& arg0, ArgT... args) {
 
 _impl_.depth_name_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:vitis.ai.proto.MultiTaskParam.depth_name)
}
inline std::string* MultiTaskParam::mutable_depth_name() {
  std::string* _s = _internal_mutable_depth_name();
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.MultiTaskParam.depth_name)
  return _s;
}
inline const std::string& MultiTaskParam::_internal_depth_name() const {
  return _impl_.depth_name_.Get();
}
inline void MultiTaskParam::_internal_set_depth_name(const std::string& value) {
  
  _impl_.depth_name_.Set(value, GetArenaForAllocation());
}
inline std::string* MultiTaskParam::_internal_mutable_depth_name() {
  
  return _impl_.depth_name_.Mutable(GetArenaForAllocation());
}
inline std::string* MultiTaskParam::release_depth_name() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.MultiTaskParam.depth_name)
  return _impl_.depth_name_.Release();
}
inline void MultiTaskParam::set_allocated_depth_name(std::string* depth_name) {
  if (depth_name != nullptr) {
    
  } else {
    
  }
  _impl_.depth_name_.SetAllocated(depth_name, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (_impl_.depth_name_.IsDefault()) {
    _impl_.depth_name_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.MultiTaskParam.depth_name)
}

// string lane_name = 14;
inline void MultiTaskParam::clear_lane_name() {
  _impl_.lane_name_.ClearToEmpty();
}
inline const std::string& MultiTaskParam::lane_name() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.MultiTaskParam.lane_name)
  return _internal_lane_name();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void MultiTaskParam::set_lane_name(ArgT0&& arg0, ArgT... args) {
 
 _impl_.lane_name_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:vitis.ai.proto.MultiTaskParam.lane_name)
}
inline std::string* MultiTaskParam::mutable_lane_name() {
  std::string* _s = _internal_mutable_lane_name();
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.MultiTaskParam.lane_name)
  return _s;
}
inline const std::string& MultiTaskParam::_internal_lane_name() const {
  return _impl_.lane_name_.Get();
}
inline void MultiTaskParam::_internal_set_lane_name(const std::string& value) {
  
  _impl_.lane_name_.Set(value, GetArenaForAllocation());
}
inline std::string* MultiTaskParam::_internal_mutable_lane_name() {
  
  return _impl_.lane_name_.Mutable(GetArenaForAllocation());
}
inline std::string* MultiTaskParam::release_lane_name() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.MultiTaskParam.lane_name)
  return _impl_.lane_name_.Release();
}
inline void MultiTaskParam::set_allocated_lane_name(std::string* lane_name) {
  if (lane_name != nullptr) {
    
  } else {
    
  }
  _impl_.lane_name_.SetAllocated(lane_name, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (_impl_.lane_name_.IsDefault()) {
    _impl_.lane_name_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.MultiTaskParam.lane_name)
}

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

// RoadlineParam

// int32 ratio = 1;
inline void RoadlineParam::clear_ratio() {
  _impl_.ratio_ = 0;
}
inline int32_t RoadlineParam::_internal_ratio() const {
  return _impl_.ratio_;
}
inline int32_t RoadlineParam::ratio() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.RoadlineParam.ratio)
  return _internal_ratio();
}
inline void RoadlineParam::_internal_set_ratio(int32_t value) {
  
  _impl_.ratio_ = value;
}
inline void RoadlineParam::set_ratio(int32_t value) {
  _internal_set_ratio(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.RoadlineParam.ratio)
}

// float ipm_width = 2;
inline void RoadlineParam::clear_ipm_width() {
  _impl_.ipm_width_ = 0;
}
inline float RoadlineParam::_internal_ipm_width() const {
  return _impl_.ipm_width_;
}
inline float RoadlineParam::ipm_width() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.RoadlineParam.ipm_width)
  return _internal_ipm_width();
}
inline void RoadlineParam::_internal_set_ipm_width(float value) {
  
  _impl_.ipm_width_ = value;
}
inline void RoadlineParam::set_ipm_width(float value) {
  _internal_set_ipm_width(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.RoadlineParam.ipm_width)
}

// float ipm_height = 3;
inline void RoadlineParam::clear_ipm_height() {
  _impl_.ipm_height_ = 0;
}
inline float RoadlineParam::_internal_ipm_height() const {
  return _impl_.ipm_height_;
}
inline float RoadlineParam::ipm_height() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.RoadlineParam.ipm_height)
  return _internal_ipm_height();
}
inline void RoadlineParam::_internal_set_ipm_height(float value) {
  
  _impl_.ipm_height_ = value;
}
inline void RoadlineParam::set_ipm_height(float value) {
  _internal_set_ipm_height(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.RoadlineParam.ipm_height)
}

// float ipm_left = 4;
inline void RoadlineParam::clear_ipm_left() {
  _impl_.ipm_left_ = 0;
}
inline float RoadlineParam::_internal_ipm_left() const {
  return _impl_.ipm_left_;
}
inline float RoadlineParam::ipm_left() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.RoadlineParam.ipm_left)
  return _internal_ipm_left();
}
inline void RoadlineParam::_internal_set_ipm_left(float value) {
  
  _impl_.ipm_left_ = value;
}
inline void RoadlineParam::set_ipm_left(float value) {
  _internal_set_ipm_left(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.RoadlineParam.ipm_left)
}

// float ipm_right = 5;
inline void RoadlineParam::clear_ipm_right() {
  _impl_.ipm_right_ = 0;
}
inline float RoadlineParam::_internal_ipm_right() const {
  return _impl_.ipm_right_;
}
inline float RoadlineParam::ipm_right() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.RoadlineParam.ipm_right)
  return _internal_ipm_right();
}
inline void RoadlineParam::_internal_set_ipm_right(float value) {
  
  _impl_.ipm_right_ = value;
}
inline void RoadlineParam::set_ipm_right(float value) {
  _internal_set_ipm_right(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.RoadlineParam.ipm_right)
}

// float ipm_top = 6;
inline void RoadlineParam::clear_ipm_top() {
  _impl_.ipm_top_ = 0;
}
inline float RoadlineParam::_internal_ipm_top() const {
  return _impl_.ipm_top_;
}
inline float RoadlineParam::ipm_top() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.RoadlineParam.ipm_top)
  return _internal_ipm_top();
}
inline void RoadlineParam::_internal_set_ipm_top(float value) {
  
  _impl_.ipm_top_ = value;
}
inline void RoadlineParam::set_ipm_top(float value) {
  _internal_set_ipm_top(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.RoadlineParam.ipm_top)
}

// float ipm_bottom = 7;
inline void RoadlineParam::clear_ipm_bottom() {
  _impl_.ipm_bottom_ = 0;
}
inline float RoadlineParam::_internal_ipm_bottom() const {
  return _impl_.ipm_bottom_;
}
inline float RoadlineParam::ipm_bottom() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.RoadlineParam.ipm_bottom)
  return _internal_ipm_bottom();
}
inline void RoadlineParam::_internal_set_ipm_bottom(float value) {
  
  _impl_.ipm_bottom_ = value;
}
inline void RoadlineParam::set_ipm_bottom(float value) {
  _internal_set_ipm_bottom(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.RoadlineParam.ipm_bottom)
}

// float ipm_interpolation = 8;
inline void RoadlineParam::clear_ipm_interpolation() {
  _impl_.ipm_interpolation_ = 0;
}
inline float RoadlineParam::_internal_ipm_interpolation() const {
  return _impl_.ipm_interpolation_;
}
inline float RoadlineParam::ipm_interpolation() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.RoadlineParam.ipm_interpolation)
  return _internal_ipm_interpolation();
}
inline void RoadlineParam::_internal_set_ipm_interpolation(float value) {
  
  _impl_.ipm_interpolation_ = value;
}
inline void RoadlineParam::set_ipm_interpolation(float value) {
  _internal_set_ipm_interpolation(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.RoadlineParam.ipm_interpolation)
}

// float ipm_vp_portion = 9;
inline void RoadlineParam::clear_ipm_vp_portion() {
  _impl_.ipm_vp_portion_ = 0;
}
inline float RoadlineParam::_internal_ipm_vp_portion() const {
  return _impl_.ipm_vp_portion_;
}
inline float RoadlineParam::ipm_vp_portion() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.RoadlineParam.ipm_vp_portion)
  return _internal_ipm_vp_portion();
}
inline void RoadlineParam::_internal_set_ipm_vp_portion(float value) {
  
  _impl_.ipm_vp_portion_ = value;
}
inline void RoadlineParam::set_ipm_vp_portion(float value) {
  _internal_set_ipm_vp_portion(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.RoadlineParam.ipm_vp_portion)
}

// float focal_length_x = 10;
inline void RoadlineParam::clear_focal_length_x() {
  _impl_.focal_length_x_ = 0;
}
inline float RoadlineParam::_internal_focal_length_x() const {
  return _impl_.focal_length_x_;
}
inline float RoadlineParam::focal_length_x() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.RoadlineParam.focal_length_x)
  return _internal_focal_length_x();
}
inline void RoadlineParam::_internal_set_focal_length_x(float value) {
  
  _impl_.focal_length_x_ = value;
}
inline void RoadlineParam::set_focal_length_x(float value) {
  _internal_set_focal_length_x(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.RoadlineParam.focal_length_x)
}

// float focal_length_y = 11;
inline void RoadlineParam::clear_focal_length_y() {
  _impl_.focal_length_y_ = 0;
}
inline float RoadlineParam::_internal_focal_length_y() const {
  return _impl_.focal_length_y_;
}
inline float RoadlineParam::focal_length_y() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.RoadlineParam.focal_length_y)
  return _internal_focal_length_y();
}
inline void RoadlineParam::_internal_set_focal_length_y(float value) {
  
  _impl_.focal_length_y_ = value;
}
inline void RoadlineParam::set_focal_length_y(float value) {
  _internal_set_focal_length_y(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.RoadlineParam.focal_length_y)
}

// float optical_center_x = 12;
inline void RoadlineParam::clear_optical_center_x() {
  _impl_.optical_center_x_ = 0;
}
inline float RoadlineParam::_internal_optical_center_x() const {
  return _impl_.optical_center_x_;
}
inline float RoadlineParam::optical_center_x() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.RoadlineParam.optical_center_x)
  return _internal_optical_center_x();
}
inline void RoadlineParam::_internal_set_optical_center_x(float value) {
  
  _impl_.optical_center_x_ = value;
}
inline void RoadlineParam::set_optical_center_x(float value) {
  _internal_set_optical_center_x(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.RoadlineParam.optical_center_x)
}

// float optical_center_y = 13;
inline void RoadlineParam::clear_optical_center_y() {
  _impl_.optical_center_y_ = 0;
}
inline float RoadlineParam::_internal_optical_center_y() const {
  return _impl_.optical_center_y_;
}
inline float RoadlineParam::optical_center_y() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.RoadlineParam.optical_center_y)
  return _internal_optical_center_y();
}
inline void RoadlineParam::_internal_set_optical_center_y(float value) {
  
  _impl_.optical_center_y_ = value;
}
inline void RoadlineParam::set_optical_center_y(float value) {
  _internal_set_optical_center_y(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.RoadlineParam.optical_center_y)
}

// float camera_height = 14;
inline void RoadlineParam::clear_camera_height() {
  _impl_.camera_height_ = 0;
}
inline float RoadlineParam::_internal_camera_height() const {
  return _impl_.camera_height_;
}
inline float RoadlineParam::camera_height() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.RoadlineParam.camera_height)
  return _internal_camera_height();
}
inline void RoadlineParam::_internal_set_camera_height(float value) {
  
  _impl_.camera_height_ = value;
}
inline void RoadlineParam::set_camera_height(float value) {
  _internal_set_camera_height(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.RoadlineParam.camera_height)
}

// float pitch = 15;
inline void RoadlineParam::clear_pitch() {
  _impl_.pitch_ = 0;
}
inline float RoadlineParam::_internal_pitch() const {
  return _impl_.pitch_;
}
inline float RoadlineParam::pitch() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.RoadlineParam.pitch)
  return _internal_pitch();
}
inline void RoadlineParam::_internal_set_pitch(float value) {
  
  _impl_.pitch_ = value;
}
inline void RoadlineParam::set_pitch(float value) {
  _internal_set_pitch(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.RoadlineParam.pitch)
}

// float yaw = 16;
inline void RoadlineParam::clear_yaw() {
  _impl_.yaw_ = 0;
}
inline float RoadlineParam::_internal_yaw() const {
  return _impl_.yaw_;
}
inline float RoadlineParam::yaw() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.RoadlineParam.yaw)
  return _internal_yaw();
}
inline void RoadlineParam::_internal_set_yaw(float value) {
  
  _impl_.yaw_ = value;
}
inline void RoadlineParam::set_yaw(float value) {
  _internal_set_yaw(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.RoadlineParam.yaw)
}

// repeated string layer_name = 17;
inline int RoadlineParam::_internal_layer_name_size() const {
  return _impl_.layer_name_.size();
}
inline int RoadlineParam::layer_name_size() const {
  return _internal_layer_name_size();
}
inline void RoadlineParam::clear_layer_name() {
  _impl_.layer_name_.Clear();
}
inline std::string* RoadlineParam::add_layer_name() {
  std::string* _s = _internal_add_layer_name();
  // @@protoc_insertion_point(field_add_mutable:vitis.ai.proto.RoadlineParam.layer_name)
  return _s;
}
inline const std::string& RoadlineParam::_internal_layer_name(int index) const {
  return _impl_.layer_name_.Get(index);
}
inline const std::string& RoadlineParam::layer_name(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.RoadlineParam.layer_name)
  return _internal_layer_name(index);
}
inline std::string* RoadlineParam::mutable_layer_name(int index) {
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.RoadlineParam.layer_name)
  return _impl_.layer_name_.Mutable(index);
}
inline void RoadlineParam::set_layer_name(int index, const std::string& value) {
  _impl_.layer_name_.Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.RoadlineParam.layer_name)
}
inline void RoadlineParam::set_layer_name(int index, std::string&& value) {
  _impl_.layer_name_.Mutable(index)->assign(std::move(value));
  // @@protoc_insertion_point(field_set:vitis.ai.proto.RoadlineParam.layer_name)
}
inline void RoadlineParam::set_layer_name(int index, const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  _impl_.layer_name_.Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set_char:vitis.ai.proto.RoadlineParam.layer_name)
}
inline void RoadlineParam::set_layer_name(int index, const char* value, size_t size) {
  _impl_.layer_name_.Mutable(index)->assign(
    reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:vitis.ai.proto.RoadlineParam.layer_name)
}
inline std::string* RoadlineParam::_internal_add_layer_name() {
  return _impl_.layer_name_.Add();
}
inline void RoadlineParam::add_layer_name(const std::string& value) {
  _impl_.layer_name_.Add()->assign(value);
  // @@protoc_insertion_point(field_add:vitis.ai.proto.RoadlineParam.layer_name)
}
inline void RoadlineParam::add_layer_name(std::string&& value) {
  _impl_.layer_name_.Add(std::move(value));
  // @@protoc_insertion_point(field_add:vitis.ai.proto.RoadlineParam.layer_name)
}
inline void RoadlineParam::add_layer_name(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  _impl_.layer_name_.Add()->assign(value);
  // @@protoc_insertion_point(field_add_char:vitis.ai.proto.RoadlineParam.layer_name)
}
inline void RoadlineParam::add_layer_name(const char* value, size_t size) {
  _impl_.layer_name_.Add()->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_add_pointer:vitis.ai.proto.RoadlineParam.layer_name)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>&
RoadlineParam::layer_name() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.RoadlineParam.layer_name)
  return _impl_.layer_name_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>*
RoadlineParam::mutable_layer_name() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.RoadlineParam.layer_name)
  return &_impl_.layer_name_;
}

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

// RcanParam

// float scale = 1;
inline void RcanParam::clear_scale() {
  _impl_.scale_ = 0;
}
inline float RcanParam::_internal_scale() const {
  return _impl_.scale_;
}
inline float RcanParam::scale() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.RcanParam.scale)
  return _internal_scale();
}
inline void RcanParam::_internal_set_scale(float value) {
  
  _impl_.scale_ = value;
}
inline void RcanParam::set_scale(float value) {
  _internal_set_scale(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.RcanParam.scale)
}

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

// RoadlineDeephiParam

// int32 resize_w = 1;
inline void RoadlineDeephiParam::clear_resize_w() {
  _impl_.resize_w_ = 0;
}
inline int32_t RoadlineDeephiParam::_internal_resize_w() const {
  return _impl_.resize_w_;
}
inline int32_t RoadlineDeephiParam::resize_w() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.RoadlineDeephiParam.resize_w)
  return _internal_resize_w();
}
inline void RoadlineDeephiParam::_internal_set_resize_w(int32_t value) {
  
  _impl_.resize_w_ = value;
}
inline void RoadlineDeephiParam::set_resize_w(int32_t value) {
  _internal_set_resize_w(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.RoadlineDeephiParam.resize_w)
}

// int32 resize_h = 2;
inline void RoadlineDeephiParam::clear_resize_h() {
  _impl_.resize_h_ = 0;
}
inline int32_t RoadlineDeephiParam::_internal_resize_h() const {
  return _impl_.resize_h_;
}
inline int32_t RoadlineDeephiParam::resize_h() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.RoadlineDeephiParam.resize_h)
  return _internal_resize_h();
}
inline void RoadlineDeephiParam::_internal_set_resize_h(int32_t value) {
  
  _impl_.resize_h_ = value;
}
inline void RoadlineDeephiParam::set_resize_h(int32_t value) {
  _internal_set_resize_h(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.RoadlineDeephiParam.resize_h)
}

// int32 crop_x = 3;
inline void RoadlineDeephiParam::clear_crop_x() {
  _impl_.crop_x_ = 0;
}
inline int32_t RoadlineDeephiParam::_internal_crop_x() const {
  return _impl_.crop_x_;
}
inline int32_t RoadlineDeephiParam::crop_x() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.RoadlineDeephiParam.crop_x)
  return _internal_crop_x();
}
inline void RoadlineDeephiParam::_internal_set_crop_x(int32_t value) {
  
  _impl_.crop_x_ = value;
}
inline void RoadlineDeephiParam::set_crop_x(int32_t value) {
  _internal_set_crop_x(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.RoadlineDeephiParam.crop_x)
}

// int32 crop_y = 4;
inline void RoadlineDeephiParam::clear_crop_y() {
  _impl_.crop_y_ = 0;
}
inline int32_t RoadlineDeephiParam::_internal_crop_y() const {
  return _impl_.crop_y_;
}
inline int32_t RoadlineDeephiParam::crop_y() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.RoadlineDeephiParam.crop_y)
  return _internal_crop_y();
}
inline void RoadlineDeephiParam::_internal_set_crop_y(int32_t value) {
  
  _impl_.crop_y_ = value;
}
inline void RoadlineDeephiParam::set_crop_y(int32_t value) {
  _internal_set_crop_y(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.RoadlineDeephiParam.crop_y)
}

// int32 crop_w = 5;
inline void RoadlineDeephiParam::clear_crop_w() {
  _impl_.crop_w_ = 0;
}
inline int32_t RoadlineDeephiParam::_internal_crop_w() const {
  return _impl_.crop_w_;
}
inline int32_t RoadlineDeephiParam::crop_w() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.RoadlineDeephiParam.crop_w)
  return _internal_crop_w();
}
inline void RoadlineDeephiParam::_internal_set_crop_w(int32_t value) {
  
  _impl_.crop_w_ = value;
}
inline void RoadlineDeephiParam::set_crop_w(int32_t value) {
  _internal_set_crop_w(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.RoadlineDeephiParam.crop_w)
}

// int32 crop_h = 6;
inline void RoadlineDeephiParam::clear_crop_h() {
  _impl_.crop_h_ = 0;
}
inline int32_t RoadlineDeephiParam::_internal_crop_h() const {
  return _impl_.crop_h_;
}
inline int32_t RoadlineDeephiParam::crop_h() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.RoadlineDeephiParam.crop_h)
  return _internal_crop_h();
}
inline void RoadlineDeephiParam::_internal_set_crop_h(int32_t value) {
  
  _impl_.crop_h_ = value;
}
inline void RoadlineDeephiParam::set_crop_h(int32_t value) {
  _internal_set_crop_h(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.RoadlineDeephiParam.crop_h)
}

// int32 area_threshold = 7;
inline void RoadlineDeephiParam::clear_area_threshold() {
  _impl_.area_threshold_ = 0;
}
inline int32_t RoadlineDeephiParam::_internal_area_threshold() const {
  return _impl_.area_threshold_;
}
inline int32_t RoadlineDeephiParam::area_threshold() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.RoadlineDeephiParam.area_threshold)
  return _internal_area_threshold();
}
inline void RoadlineDeephiParam::_internal_set_area_threshold(int32_t value) {
  
  _impl_.area_threshold_ = value;
}
inline void RoadlineDeephiParam::set_area_threshold(int32_t value) {
  _internal_set_area_threshold(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.RoadlineDeephiParam.area_threshold)
}

// int32 epow = 8;
inline void RoadlineDeephiParam::clear_epow() {
  _impl_.epow_ = 0;
}
inline int32_t RoadlineDeephiParam::_internal_epow() const {
  return _impl_.epow_;
}
inline int32_t RoadlineDeephiParam::epow() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.RoadlineDeephiParam.epow)
  return _internal_epow();
}
inline void RoadlineDeephiParam::_internal_set_epow(int32_t value) {
  
  _impl_.epow_ = value;
}
inline void RoadlineDeephiParam::set_epow(int32_t value) {
  _internal_set_epow(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.RoadlineDeephiParam.epow)
}

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

// SegmentationParam

// string color1 = 1;
inline void SegmentationParam::clear_color1() {
  _impl_.color1_.ClearToEmpty();
}
inline const std::string& SegmentationParam::color1() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.SegmentationParam.color1)
  return _internal_color1();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void SegmentationParam::set_color1(ArgT0&& arg0, ArgT... args) {
 
 _impl_.color1_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:vitis.ai.proto.SegmentationParam.color1)
}
inline std::string* SegmentationParam::mutable_color1() {
  std::string* _s = _internal_mutable_color1();
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.SegmentationParam.color1)
  return _s;
}
inline const std::string& SegmentationParam::_internal_color1() const {
  return _impl_.color1_.Get();
}
inline void SegmentationParam::_internal_set_color1(const std::string& value) {
  
  _impl_.color1_.Set(value, GetArenaForAllocation());
}
inline std::string* SegmentationParam::_internal_mutable_color1() {
  
  return _impl_.color1_.Mutable(GetArenaForAllocation());
}
inline std::string* SegmentationParam::release_color1() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.SegmentationParam.color1)
  return _impl_.color1_.Release();
}
inline void SegmentationParam::set_allocated_color1(std::string* color1) {
  if (color1 != nullptr) {
    
  } else {
    
  }
  _impl_.color1_.SetAllocated(color1, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (_impl_.color1_.IsDefault()) {
    _impl_.color1_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.SegmentationParam.color1)
}

// string color2 = 2;
inline void SegmentationParam::clear_color2() {
  _impl_.color2_.ClearToEmpty();
}
inline const std::string& SegmentationParam::color2() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.SegmentationParam.color2)
  return _internal_color2();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void SegmentationParam::set_color2(ArgT0&& arg0, ArgT... args) {
 
 _impl_.color2_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:vitis.ai.proto.SegmentationParam.color2)
}
inline std::string* SegmentationParam::mutable_color2() {
  std::string* _s = _internal_mutable_color2();
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.SegmentationParam.color2)
  return _s;
}
inline const std::string& SegmentationParam::_internal_color2() const {
  return _impl_.color2_.Get();
}
inline void SegmentationParam::_internal_set_color2(const std::string& value) {
  
  _impl_.color2_.Set(value, GetArenaForAllocation());
}
inline std::string* SegmentationParam::_internal_mutable_color2() {
  
  return _impl_.color2_.Mutable(GetArenaForAllocation());
}
inline std::string* SegmentationParam::release_color2() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.SegmentationParam.color2)
  return _impl_.color2_.Release();
}
inline void SegmentationParam::set_allocated_color2(std::string* color2) {
  if (color2 != nullptr) {
    
  } else {
    
  }
  _impl_.color2_.SetAllocated(color2, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (_impl_.color2_.IsDefault()) {
    _impl_.color2_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.SegmentationParam.color2)
}

// string color3 = 3;
inline void SegmentationParam::clear_color3() {
  _impl_.color3_.ClearToEmpty();
}
inline const std::string& SegmentationParam::color3() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.SegmentationParam.color3)
  return _internal_color3();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void SegmentationParam::set_color3(ArgT0&& arg0, ArgT... args) {
 
 _impl_.color3_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:vitis.ai.proto.SegmentationParam.color3)
}
inline std::string* SegmentationParam::mutable_color3() {
  std::string* _s = _internal_mutable_color3();
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.SegmentationParam.color3)
  return _s;
}
inline const std::string& SegmentationParam::_internal_color3() const {
  return _impl_.color3_.Get();
}
inline void SegmentationParam::_internal_set_color3(const std::string& value) {
  
  _impl_.color3_.Set(value, GetArenaForAllocation());
}
inline std::string* SegmentationParam::_internal_mutable_color3() {
  
  return _impl_.color3_.Mutable(GetArenaForAllocation());
}
inline std::string* SegmentationParam::release_color3() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.SegmentationParam.color3)
  return _impl_.color3_.Release();
}
inline void SegmentationParam::set_allocated_color3(std::string* color3) {
  if (color3 != nullptr) {
    
  } else {
    
  }
  _impl_.color3_.SetAllocated(color3, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (_impl_.color3_.IsDefault()) {
    _impl_.color3_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.SegmentationParam.color3)
}

// bool specify_output_layer = 4;
inline void SegmentationParam::clear_specify_output_layer() {
  _impl_.specify_output_layer_ = false;
}
inline bool SegmentationParam::_internal_specify_output_layer() const {
  return _impl_.specify_output_layer_;
}
inline bool SegmentationParam::specify_output_layer() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.SegmentationParam.specify_output_layer)
  return _internal_specify_output_layer();
}
inline void SegmentationParam::_internal_set_specify_output_layer(bool value) {
  
  _impl_.specify_output_layer_ = value;
}
inline void SegmentationParam::set_specify_output_layer(bool value) {
  _internal_set_specify_output_layer(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.SegmentationParam.specify_output_layer)
}

// string output_tensor_name = 5;
inline void SegmentationParam::clear_output_tensor_name() {
  _impl_.output_tensor_name_.ClearToEmpty();
}
inline const std::string& SegmentationParam::output_tensor_name() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.SegmentationParam.output_tensor_name)
  return _internal_output_tensor_name();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void SegmentationParam::set_output_tensor_name(ArgT0&& arg0, ArgT... args) {
 
 _impl_.output_tensor_name_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:vitis.ai.proto.SegmentationParam.output_tensor_name)
}
inline std::string* SegmentationParam::mutable_output_tensor_name() {
  std::string* _s = _internal_mutable_output_tensor_name();
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.SegmentationParam.output_tensor_name)
  return _s;
}
inline const std::string& SegmentationParam::_internal_output_tensor_name() const {
  return _impl_.output_tensor_name_.Get();
}
inline void SegmentationParam::_internal_set_output_tensor_name(const std::string& value) {
  
  _impl_.output_tensor_name_.Set(value, GetArenaForAllocation());
}
inline std::string* SegmentationParam::_internal_mutable_output_tensor_name() {
  
  return _impl_.output_tensor_name_.Mutable(GetArenaForAllocation());
}
inline std::string* SegmentationParam::release_output_tensor_name() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.SegmentationParam.output_tensor_name)
  return _impl_.output_tensor_name_.Release();
}
inline void SegmentationParam::set_allocated_output_tensor_name(std::string* output_tensor_name) {
  if (output_tensor_name != nullptr) {
    
  } else {
    
  }
  _impl_.output_tensor_name_.SetAllocated(output_tensor_name, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (_impl_.output_tensor_name_.IsDefault()) {
    _impl_.output_tensor_name_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.SegmentationParam.output_tensor_name)
}

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

// PlatenumParam

// repeated int32 first = 1;
inline int PlatenumParam::_internal_first_size() const {
  return _impl_.first_.size();
}
inline int PlatenumParam::first_size() const {
  return _internal_first_size();
}
inline void PlatenumParam::clear_first() {
  _impl_.first_.Clear();
}
inline int32_t PlatenumParam::_internal_first(int index) const {
  return _impl_.first_.Get(index);
}
inline int32_t PlatenumParam::first(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.PlatenumParam.first)
  return _internal_first(index);
}
inline void PlatenumParam::set_first(int index, int32_t value) {
  _impl_.first_.Set(index, value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.PlatenumParam.first)
}
inline void PlatenumParam::_internal_add_first(int32_t value) {
  _impl_.first_.Add(value);
}
inline void PlatenumParam::add_first(int32_t value) {
  _internal_add_first(value);
  // @@protoc_insertion_point(field_add:vitis.ai.proto.PlatenumParam.first)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >&
PlatenumParam::_internal_first() const {
  return _impl_.first_;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >&
PlatenumParam::first() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.PlatenumParam.first)
  return _internal_first();
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >*
PlatenumParam::_internal_mutable_first() {
  return &_impl_.first_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >*
PlatenumParam::mutable_first() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.PlatenumParam.first)
  return _internal_mutable_first();
}

// repeated int32 second = 2;
inline int PlatenumParam::_internal_second_size() const {
  return _impl_.second_.size();
}
inline int PlatenumParam::second_size() const {
  return _internal_second_size();
}
inline void PlatenumParam::clear_second() {
  _impl_.second_.Clear();
}
inline int32_t PlatenumParam::_internal_second(int index) const {
  return _impl_.second_.Get(index);
}
inline int32_t PlatenumParam::second(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.PlatenumParam.second)
  return _internal_second(index);
}
inline void PlatenumParam::set_second(int index, int32_t value) {
  _impl_.second_.Set(index, value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.PlatenumParam.second)
}
inline void PlatenumParam::_internal_add_second(int32_t value) {
  _impl_.second_.Add(value);
}
inline void PlatenumParam::add_second(int32_t value) {
  _internal_add_second(value);
  // @@protoc_insertion_point(field_add:vitis.ai.proto.PlatenumParam.second)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >&
PlatenumParam::_internal_second() const {
  return _impl_.second_;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >&
PlatenumParam::second() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.PlatenumParam.second)
  return _internal_second();
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >*
PlatenumParam::_internal_mutable_second() {
  return &_impl_.second_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >*
PlatenumParam::mutable_second() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.PlatenumParam.second)
  return _internal_mutable_second();
}

// repeated string output_tensor_name = 3;
inline int PlatenumParam::_internal_output_tensor_name_size() const {
  return _impl_.output_tensor_name_.size();
}
inline int PlatenumParam::output_tensor_name_size() const {
  return _internal_output_tensor_name_size();
}
inline void PlatenumParam::clear_output_tensor_name() {
  _impl_.output_tensor_name_.Clear();
}
inline std::string* PlatenumParam::add_output_tensor_name() {
  std::string* _s = _internal_add_output_tensor_name();
  // @@protoc_insertion_point(field_add_mutable:vitis.ai.proto.PlatenumParam.output_tensor_name)
  return _s;
}
inline const std::string& PlatenumParam::_internal_output_tensor_name(int index) const {
  return _impl_.output_tensor_name_.Get(index);
}
inline const std::string& PlatenumParam::output_tensor_name(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.PlatenumParam.output_tensor_name)
  return _internal_output_tensor_name(index);
}
inline std::string* PlatenumParam::mutable_output_tensor_name(int index) {
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.PlatenumParam.output_tensor_name)
  return _impl_.output_tensor_name_.Mutable(index);
}
inline void PlatenumParam::set_output_tensor_name(int index, const std::string& value) {
  _impl_.output_tensor_name_.Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.PlatenumParam.output_tensor_name)
}
inline void PlatenumParam::set_output_tensor_name(int index, std::string&& value) {
  _impl_.output_tensor_name_.Mutable(index)->assign(std::move(value));
  // @@protoc_insertion_point(field_set:vitis.ai.proto.PlatenumParam.output_tensor_name)
}
inline void PlatenumParam::set_output_tensor_name(int index, const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  _impl_.output_tensor_name_.Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set_char:vitis.ai.proto.PlatenumParam.output_tensor_name)
}
inline void PlatenumParam::set_output_tensor_name(int index, const char* value, size_t size) {
  _impl_.output_tensor_name_.Mutable(index)->assign(
    reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:vitis.ai.proto.PlatenumParam.output_tensor_name)
}
inline std::string* PlatenumParam::_internal_add_output_tensor_name() {
  return _impl_.output_tensor_name_.Add();
}
inline void PlatenumParam::add_output_tensor_name(const std::string& value) {
  _impl_.output_tensor_name_.Add()->assign(value);
  // @@protoc_insertion_point(field_add:vitis.ai.proto.PlatenumParam.output_tensor_name)
}
inline void PlatenumParam::add_output_tensor_name(std::string&& value) {
  _impl_.output_tensor_name_.Add(std::move(value));
  // @@protoc_insertion_point(field_add:vitis.ai.proto.PlatenumParam.output_tensor_name)
}
inline void PlatenumParam::add_output_tensor_name(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  _impl_.output_tensor_name_.Add()->assign(value);
  // @@protoc_insertion_point(field_add_char:vitis.ai.proto.PlatenumParam.output_tensor_name)
}
inline void PlatenumParam::add_output_tensor_name(const char* value, size_t size) {
  _impl_.output_tensor_name_.Add()->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_add_pointer:vitis.ai.proto.PlatenumParam.output_tensor_name)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>&
PlatenumParam::output_tensor_name() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.PlatenumParam.output_tensor_name)
  return _impl_.output_tensor_name_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>*
PlatenumParam::mutable_output_tensor_name() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.PlatenumParam.output_tensor_name)
  return &_impl_.output_tensor_name_;
}

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

// SoloParam

// repeated int32 first = 1;
inline int SoloParam::_internal_first_size() const {
  return _impl_.first_.size();
}
inline int SoloParam::first_size() const {
  return _internal_first_size();
}
inline void SoloParam::clear_first() {
  _impl_.first_.Clear();
}
inline int32_t SoloParam::_internal_first(int index) const {
  return _impl_.first_.Get(index);
}
inline int32_t SoloParam::first(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.SoloParam.first)
  return _internal_first(index);
}
inline void SoloParam::set_first(int index, int32_t value) {
  _impl_.first_.Set(index, value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.SoloParam.first)
}
inline void SoloParam::_internal_add_first(int32_t value) {
  _impl_.first_.Add(value);
}
inline void SoloParam::add_first(int32_t value) {
  _internal_add_first(value);
  // @@protoc_insertion_point(field_add:vitis.ai.proto.SoloParam.first)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >&
SoloParam::_internal_first() const {
  return _impl_.first_;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >&
SoloParam::first() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.SoloParam.first)
  return _internal_first();
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >*
SoloParam::_internal_mutable_first() {
  return &_impl_.first_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >*
SoloParam::mutable_first() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.SoloParam.first)
  return _internal_mutable_first();
}

// repeated int32 second = 2;
inline int SoloParam::_internal_second_size() const {
  return _impl_.second_.size();
}
inline int SoloParam::second_size() const {
  return _internal_second_size();
}
inline void SoloParam::clear_second() {
  _impl_.second_.Clear();
}
inline int32_t SoloParam::_internal_second(int index) const {
  return _impl_.second_.Get(index);
}
inline int32_t SoloParam::second(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.SoloParam.second)
  return _internal_second(index);
}
inline void SoloParam::set_second(int index, int32_t value) {
  _impl_.second_.Set(index, value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.SoloParam.second)
}
inline void SoloParam::_internal_add_second(int32_t value) {
  _impl_.second_.Add(value);
}
inline void SoloParam::add_second(int32_t value) {
  _internal_add_second(value);
  // @@protoc_insertion_point(field_add:vitis.ai.proto.SoloParam.second)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >&
SoloParam::_internal_second() const {
  return _impl_.second_;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >&
SoloParam::second() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.SoloParam.second)
  return _internal_second();
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >*
SoloParam::_internal_mutable_second() {
  return &_impl_.second_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >*
SoloParam::mutable_second() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.SoloParam.second)
  return _internal_mutable_second();
}

// repeated string input_tensor_name = 3;
inline int SoloParam::_internal_input_tensor_name_size() const {
  return _impl_.input_tensor_name_.size();
}
inline int SoloParam::input_tensor_name_size() const {
  return _internal_input_tensor_name_size();
}
inline void SoloParam::clear_input_tensor_name() {
  _impl_.input_tensor_name_.Clear();
}
inline std::string* SoloParam::add_input_tensor_name() {
  std::string* _s = _internal_add_input_tensor_name();
  // @@protoc_insertion_point(field_add_mutable:vitis.ai.proto.SoloParam.input_tensor_name)
  return _s;
}
inline const std::string& SoloParam::_internal_input_tensor_name(int index) const {
  return _impl_.input_tensor_name_.Get(index);
}
inline const std::string& SoloParam::input_tensor_name(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.SoloParam.input_tensor_name)
  return _internal_input_tensor_name(index);
}
inline std::string* SoloParam::mutable_input_tensor_name(int index) {
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.SoloParam.input_tensor_name)
  return _impl_.input_tensor_name_.Mutable(index);
}
inline void SoloParam::set_input_tensor_name(int index, const std::string& value) {
  _impl_.input_tensor_name_.Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.SoloParam.input_tensor_name)
}
inline void SoloParam::set_input_tensor_name(int index, std::string&& value) {
  _impl_.input_tensor_name_.Mutable(index)->assign(std::move(value));
  // @@protoc_insertion_point(field_set:vitis.ai.proto.SoloParam.input_tensor_name)
}
inline void SoloParam::set_input_tensor_name(int index, const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  _impl_.input_tensor_name_.Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set_char:vitis.ai.proto.SoloParam.input_tensor_name)
}
inline void SoloParam::set_input_tensor_name(int index, const char* value, size_t size) {
  _impl_.input_tensor_name_.Mutable(index)->assign(
    reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:vitis.ai.proto.SoloParam.input_tensor_name)
}
inline std::string* SoloParam::_internal_add_input_tensor_name() {
  return _impl_.input_tensor_name_.Add();
}
inline void SoloParam::add_input_tensor_name(const std::string& value) {
  _impl_.input_tensor_name_.Add()->assign(value);
  // @@protoc_insertion_point(field_add:vitis.ai.proto.SoloParam.input_tensor_name)
}
inline void SoloParam::add_input_tensor_name(std::string&& value) {
  _impl_.input_tensor_name_.Add(std::move(value));
  // @@protoc_insertion_point(field_add:vitis.ai.proto.SoloParam.input_tensor_name)
}
inline void SoloParam::add_input_tensor_name(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  _impl_.input_tensor_name_.Add()->assign(value);
  // @@protoc_insertion_point(field_add_char:vitis.ai.proto.SoloParam.input_tensor_name)
}
inline void SoloParam::add_input_tensor_name(const char* value, size_t size) {
  _impl_.input_tensor_name_.Add()->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_add_pointer:vitis.ai.proto.SoloParam.input_tensor_name)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>&
SoloParam::input_tensor_name() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.SoloParam.input_tensor_name)
  return _impl_.input_tensor_name_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>*
SoloParam::mutable_input_tensor_name() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.SoloParam.input_tensor_name)
  return &_impl_.input_tensor_name_;
}

// repeated string output_tensor_name = 4;
inline int SoloParam::_internal_output_tensor_name_size() const {
  return _impl_.output_tensor_name_.size();
}
inline int SoloParam::output_tensor_name_size() const {
  return _internal_output_tensor_name_size();
}
inline void SoloParam::clear_output_tensor_name() {
  _impl_.output_tensor_name_.Clear();
}
inline std::string* SoloParam::add_output_tensor_name() {
  std::string* _s = _internal_add_output_tensor_name();
  // @@protoc_insertion_point(field_add_mutable:vitis.ai.proto.SoloParam.output_tensor_name)
  return _s;
}
inline const std::string& SoloParam::_internal_output_tensor_name(int index) const {
  return _impl_.output_tensor_name_.Get(index);
}
inline const std::string& SoloParam::output_tensor_name(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.SoloParam.output_tensor_name)
  return _internal_output_tensor_name(index);
}
inline std::string* SoloParam::mutable_output_tensor_name(int index) {
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.SoloParam.output_tensor_name)
  return _impl_.output_tensor_name_.Mutable(index);
}
inline void SoloParam::set_output_tensor_name(int index, const std::string& value) {
  _impl_.output_tensor_name_.Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.SoloParam.output_tensor_name)
}
inline void SoloParam::set_output_tensor_name(int index, std::string&& value) {
  _impl_.output_tensor_name_.Mutable(index)->assign(std::move(value));
  // @@protoc_insertion_point(field_set:vitis.ai.proto.SoloParam.output_tensor_name)
}
inline void SoloParam::set_output_tensor_name(int index, const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  _impl_.output_tensor_name_.Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set_char:vitis.ai.proto.SoloParam.output_tensor_name)
}
inline void SoloParam::set_output_tensor_name(int index, const char* value, size_t size) {
  _impl_.output_tensor_name_.Mutable(index)->assign(
    reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:vitis.ai.proto.SoloParam.output_tensor_name)
}
inline std::string* SoloParam::_internal_add_output_tensor_name() {
  return _impl_.output_tensor_name_.Add();
}
inline void SoloParam::add_output_tensor_name(const std::string& value) {
  _impl_.output_tensor_name_.Add()->assign(value);
  // @@protoc_insertion_point(field_add:vitis.ai.proto.SoloParam.output_tensor_name)
}
inline void SoloParam::add_output_tensor_name(std::string&& value) {
  _impl_.output_tensor_name_.Add(std::move(value));
  // @@protoc_insertion_point(field_add:vitis.ai.proto.SoloParam.output_tensor_name)
}
inline void SoloParam::add_output_tensor_name(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  _impl_.output_tensor_name_.Add()->assign(value);
  // @@protoc_insertion_point(field_add_char:vitis.ai.proto.SoloParam.output_tensor_name)
}
inline void SoloParam::add_output_tensor_name(const char* value, size_t size) {
  _impl_.output_tensor_name_.Add()->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_add_pointer:vitis.ai.proto.SoloParam.output_tensor_name)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>&
SoloParam::output_tensor_name() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.SoloParam.output_tensor_name)
  return _impl_.output_tensor_name_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>*
SoloParam::mutable_output_tensor_name() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.SoloParam.output_tensor_name)
  return &_impl_.output_tensor_name_;
}

// float score_thr = 5;
inline void SoloParam::clear_score_thr() {
  _impl_.score_thr_ = 0;
}
inline float SoloParam::_internal_score_thr() const {
  return _impl_.score_thr_;
}
inline float SoloParam::score_thr() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.SoloParam.score_thr)
  return _internal_score_thr();
}
inline void SoloParam::_internal_set_score_thr(float value) {
  
  _impl_.score_thr_ = value;
}
inline void SoloParam::set_score_thr(float value) {
  _internal_set_score_thr(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.SoloParam.score_thr)
}

// float mask_thr = 6;
inline void SoloParam::clear_mask_thr() {
  _impl_.mask_thr_ = 0;
}
inline float SoloParam::_internal_mask_thr() const {
  return _impl_.mask_thr_;
}
inline float SoloParam::mask_thr() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.SoloParam.mask_thr)
  return _internal_mask_thr();
}
inline void SoloParam::_internal_set_mask_thr(float value) {
  
  _impl_.mask_thr_ = value;
}
inline void SoloParam::set_mask_thr(float value) {
  _internal_set_mask_thr(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.SoloParam.mask_thr)
}

// uint32 nms_pre = 7;
inline void SoloParam::clear_nms_pre() {
  _impl_.nms_pre_ = 0u;
}
inline uint32_t SoloParam::_internal_nms_pre() const {
  return _impl_.nms_pre_;
}
inline uint32_t SoloParam::nms_pre() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.SoloParam.nms_pre)
  return _internal_nms_pre();
}
inline void SoloParam::_internal_set_nms_pre(uint32_t value) {
  
  _impl_.nms_pre_ = value;
}
inline void SoloParam::set_nms_pre(uint32_t value) {
  _internal_set_nms_pre(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.SoloParam.nms_pre)
}

// float update_thr = 8;
inline void SoloParam::clear_update_thr() {
  _impl_.update_thr_ = 0;
}
inline float SoloParam::_internal_update_thr() const {
  return _impl_.update_thr_;
}
inline float SoloParam::update_thr() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.SoloParam.update_thr)
  return _internal_update_thr();
}
inline void SoloParam::_internal_set_update_thr(float value) {
  
  _impl_.update_thr_ = value;
}
inline void SoloParam::set_update_thr(float value) {
  _internal_set_update_thr(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.SoloParam.update_thr)
}

// uint32 max_per_img = 9;
inline void SoloParam::clear_max_per_img() {
  _impl_.max_per_img_ = 0u;
}
inline uint32_t SoloParam::_internal_max_per_img() const {
  return _impl_.max_per_img_;
}
inline uint32_t SoloParam::max_per_img() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.SoloParam.max_per_img)
  return _internal_max_per_img();
}
inline void SoloParam::_internal_set_max_per_img(uint32_t value) {
  
  _impl_.max_per_img_ = value;
}
inline void SoloParam::set_max_per_img(uint32_t value) {
  _internal_set_max_per_img(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.SoloParam.max_per_img)
}

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

// LaneParam

// int32 roi_x = 1;
inline void LaneParam::clear_roi_x() {
  _impl_.roi_x_ = 0;
}
inline int32_t LaneParam::_internal_roi_x() const {
  return _impl_.roi_x_;
}
inline int32_t LaneParam::roi_x() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.LaneParam.roi_x)
  return _internal_roi_x();
}
inline void LaneParam::_internal_set_roi_x(int32_t value) {
  
  _impl_.roi_x_ = value;
}
inline void LaneParam::set_roi_x(int32_t value) {
  _internal_set_roi_x(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.LaneParam.roi_x)
}

// int32 roi_y = 2;
inline void LaneParam::clear_roi_y() {
  _impl_.roi_y_ = 0;
}
inline int32_t LaneParam::_internal_roi_y() const {
  return _impl_.roi_y_;
}
inline int32_t LaneParam::roi_y() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.LaneParam.roi_y)
  return _internal_roi_y();
}
inline void LaneParam::_internal_set_roi_y(int32_t value) {
  
  _impl_.roi_y_ = value;
}
inline void LaneParam::set_roi_y(int32_t value) {
  _internal_set_roi_y(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.LaneParam.roi_y)
}

// int32 expect_height = 3;
inline void LaneParam::clear_expect_height() {
  _impl_.expect_height_ = 0;
}
inline int32_t LaneParam::_internal_expect_height() const {
  return _impl_.expect_height_;
}
inline int32_t LaneParam::expect_height() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.LaneParam.expect_height)
  return _internal_expect_height();
}
inline void LaneParam::_internal_set_expect_height(int32_t value) {
  
  _impl_.expect_height_ = value;
}
inline void LaneParam::set_expect_height(int32_t value) {
  _internal_set_expect_height(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.LaneParam.expect_height)
}

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

// BlinkerParam

// repeated .vitis.ai.proto.PriorBoxParam prior_box_param = 1;
inline int BlinkerParam::_internal_prior_box_param_size() const {
  return _impl_.prior_box_param_.size();
}
inline int BlinkerParam::prior_box_param_size() const {
  return _internal_prior_box_param_size();
}
inline void BlinkerParam::clear_prior_box_param() {
  _impl_.prior_box_param_.Clear();
}
inline ::vitis::ai::proto::PriorBoxParam* BlinkerParam::mutable_prior_box_param(int index) {
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.BlinkerParam.prior_box_param)
  return _impl_.prior_box_param_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::PriorBoxParam >*
BlinkerParam::mutable_prior_box_param() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.BlinkerParam.prior_box_param)
  return &_impl_.prior_box_param_;
}
inline const ::vitis::ai::proto::PriorBoxParam& BlinkerParam::_internal_prior_box_param(int index) const {
  return _impl_.prior_box_param_.Get(index);
}
inline const ::vitis::ai::proto::PriorBoxParam& BlinkerParam::prior_box_param(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.BlinkerParam.prior_box_param)
  return _internal_prior_box_param(index);
}
inline ::vitis::ai::proto::PriorBoxParam* BlinkerParam::_internal_add_prior_box_param() {
  return _impl_.prior_box_param_.Add();
}
inline ::vitis::ai::proto::PriorBoxParam* BlinkerParam::add_prior_box_param() {
  ::vitis::ai::proto::PriorBoxParam* _add = _internal_add_prior_box_param();
  // @@protoc_insertion_point(field_add:vitis.ai.proto.BlinkerParam.prior_box_param)
  return _add;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::PriorBoxParam >&
BlinkerParam::prior_box_param() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.BlinkerParam.prior_box_param)
  return _impl_.prior_box_param_;
}

// int32 num_classes = 2;
inline void BlinkerParam::clear_num_classes() {
  _impl_.num_classes_ = 0;
}
inline int32_t BlinkerParam::_internal_num_classes() const {
  return _impl_.num_classes_;
}
inline int32_t BlinkerParam::num_classes() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.BlinkerParam.num_classes)
  return _internal_num_classes();
}
inline void BlinkerParam::_internal_set_num_classes(int32_t value) {
  
  _impl_.num_classes_ = value;
}
inline void BlinkerParam::set_num_classes(int32_t value) {
  _internal_set_num_classes(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.BlinkerParam.num_classes)
}

// float nms_threshold = 3;
inline void BlinkerParam::clear_nms_threshold() {
  _impl_.nms_threshold_ = 0;
}
inline float BlinkerParam::_internal_nms_threshold() const {
  return _impl_.nms_threshold_;
}
inline float BlinkerParam::nms_threshold() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.BlinkerParam.nms_threshold)
  return _internal_nms_threshold();
}
inline void BlinkerParam::_internal_set_nms_threshold(float value) {
  
  _impl_.nms_threshold_ = value;
}
inline void BlinkerParam::set_nms_threshold(float value) {
  _internal_set_nms_threshold(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.BlinkerParam.nms_threshold)
}

// repeated float conf_threshold = 4;
inline int BlinkerParam::_internal_conf_threshold_size() const {
  return _impl_.conf_threshold_.size();
}
inline int BlinkerParam::conf_threshold_size() const {
  return _internal_conf_threshold_size();
}
inline void BlinkerParam::clear_conf_threshold() {
  _impl_.conf_threshold_.Clear();
}
inline float BlinkerParam::_internal_conf_threshold(int index) const {
  return _impl_.conf_threshold_.Get(index);
}
inline float BlinkerParam::conf_threshold(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.BlinkerParam.conf_threshold)
  return _internal_conf_threshold(index);
}
inline void BlinkerParam::set_conf_threshold(int index, float value) {
  _impl_.conf_threshold_.Set(index, value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.BlinkerParam.conf_threshold)
}
inline void BlinkerParam::_internal_add_conf_threshold(float value) {
  _impl_.conf_threshold_.Add(value);
}
inline void BlinkerParam::add_conf_threshold(float value) {
  _internal_add_conf_threshold(value);
  // @@protoc_insertion_point(field_add:vitis.ai.proto.BlinkerParam.conf_threshold)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
BlinkerParam::_internal_conf_threshold() const {
  return _impl_.conf_threshold_;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
BlinkerParam::conf_threshold() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.BlinkerParam.conf_threshold)
  return _internal_conf_threshold();
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
BlinkerParam::_internal_mutable_conf_threshold() {
  return &_impl_.conf_threshold_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
BlinkerParam::mutable_conf_threshold() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.BlinkerParam.conf_threshold)
  return _internal_mutable_conf_threshold();
}

// int32 keep_top_k = 5;
inline void BlinkerParam::clear_keep_top_k() {
  _impl_.keep_top_k_ = 0;
}
inline int32_t BlinkerParam::_internal_keep_top_k() const {
  return _impl_.keep_top_k_;
}
inline int32_t BlinkerParam::keep_top_k() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.BlinkerParam.keep_top_k)
  return _internal_keep_top_k();
}
inline void BlinkerParam::_internal_set_keep_top_k(int32_t value) {
  
  _impl_.keep_top_k_ = value;
}
inline void BlinkerParam::set_keep_top_k(int32_t value) {
  _internal_set_keep_top_k(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.BlinkerParam.keep_top_k)
}

// int32 top_k = 6;
inline void BlinkerParam::clear_top_k() {
  _impl_.top_k_ = 0;
}
inline int32_t BlinkerParam::_internal_top_k() const {
  return _impl_.top_k_;
}
inline int32_t BlinkerParam::top_k() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.BlinkerParam.top_k)
  return _internal_top_k();
}
inline void BlinkerParam::_internal_set_top_k(int32_t value) {
  
  _impl_.top_k_ = value;
}
inline void BlinkerParam::set_top_k(int32_t value) {
  _internal_set_top_k(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.BlinkerParam.top_k)
}

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

// SegdetParam

// repeated .vitis.ai.proto.PriorBoxParam prior_box_param = 1;
inline int SegdetParam::_internal_prior_box_param_size() const {
  return _impl_.prior_box_param_.size();
}
inline int SegdetParam::prior_box_param_size() const {
  return _internal_prior_box_param_size();
}
inline void SegdetParam::clear_prior_box_param() {
  _impl_.prior_box_param_.Clear();
}
inline ::vitis::ai::proto::PriorBoxParam* SegdetParam::mutable_prior_box_param(int index) {
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.SegdetParam.prior_box_param)
  return _impl_.prior_box_param_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::PriorBoxParam >*
SegdetParam::mutable_prior_box_param() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.SegdetParam.prior_box_param)
  return &_impl_.prior_box_param_;
}
inline const ::vitis::ai::proto::PriorBoxParam& SegdetParam::_internal_prior_box_param(int index) const {
  return _impl_.prior_box_param_.Get(index);
}
inline const ::vitis::ai::proto::PriorBoxParam& SegdetParam::prior_box_param(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.SegdetParam.prior_box_param)
  return _internal_prior_box_param(index);
}
inline ::vitis::ai::proto::PriorBoxParam* SegdetParam::_internal_add_prior_box_param() {
  return _impl_.prior_box_param_.Add();
}
inline ::vitis::ai::proto::PriorBoxParam* SegdetParam::add_prior_box_param() {
  ::vitis::ai::proto::PriorBoxParam* _add = _internal_add_prior_box_param();
  // @@protoc_insertion_point(field_add:vitis.ai.proto.SegdetParam.prior_box_param)
  return _add;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::PriorBoxParam >&
SegdetParam::prior_box_param() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.SegdetParam.prior_box_param)
  return _impl_.prior_box_param_;
}

// int32 num_classes = 2;
inline void SegdetParam::clear_num_classes() {
  _impl_.num_classes_ = 0;
}
inline int32_t SegdetParam::_internal_num_classes() const {
  return _impl_.num_classes_;
}
inline int32_t SegdetParam::num_classes() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.SegdetParam.num_classes)
  return _internal_num_classes();
}
inline void SegdetParam::_internal_set_num_classes(int32_t value) {
  
  _impl_.num_classes_ = value;
}
inline void SegdetParam::set_num_classes(int32_t value) {
  _internal_set_num_classes(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.SegdetParam.num_classes)
}

// float nms_threshold = 3;
inline void SegdetParam::clear_nms_threshold() {
  _impl_.nms_threshold_ = 0;
}
inline float SegdetParam::_internal_nms_threshold() const {
  return _impl_.nms_threshold_;
}
inline float SegdetParam::nms_threshold() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.SegdetParam.nms_threshold)
  return _internal_nms_threshold();
}
inline void SegdetParam::_internal_set_nms_threshold(float value) {
  
  _impl_.nms_threshold_ = value;
}
inline void SegdetParam::set_nms_threshold(float value) {
  _internal_set_nms_threshold(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.SegdetParam.nms_threshold)
}

// repeated float conf_threshold = 4;
inline int SegdetParam::_internal_conf_threshold_size() const {
  return _impl_.conf_threshold_.size();
}
inline int SegdetParam::conf_threshold_size() const {
  return _internal_conf_threshold_size();
}
inline void SegdetParam::clear_conf_threshold() {
  _impl_.conf_threshold_.Clear();
}
inline float SegdetParam::_internal_conf_threshold(int index) const {
  return _impl_.conf_threshold_.Get(index);
}
inline float SegdetParam::conf_threshold(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.SegdetParam.conf_threshold)
  return _internal_conf_threshold(index);
}
inline void SegdetParam::set_conf_threshold(int index, float value) {
  _impl_.conf_threshold_.Set(index, value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.SegdetParam.conf_threshold)
}
inline void SegdetParam::_internal_add_conf_threshold(float value) {
  _impl_.conf_threshold_.Add(value);
}
inline void SegdetParam::add_conf_threshold(float value) {
  _internal_add_conf_threshold(value);
  // @@protoc_insertion_point(field_add:vitis.ai.proto.SegdetParam.conf_threshold)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
SegdetParam::_internal_conf_threshold() const {
  return _impl_.conf_threshold_;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
SegdetParam::conf_threshold() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.SegdetParam.conf_threshold)
  return _internal_conf_threshold();
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
SegdetParam::_internal_mutable_conf_threshold() {
  return &_impl_.conf_threshold_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
SegdetParam::mutable_conf_threshold() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.SegdetParam.conf_threshold)
  return _internal_mutable_conf_threshold();
}

// int32 keep_top_k = 5;
inline void SegdetParam::clear_keep_top_k() {
  _impl_.keep_top_k_ = 0;
}
inline int32_t SegdetParam::_internal_keep_top_k() const {
  return _impl_.keep_top_k_;
}
inline int32_t SegdetParam::keep_top_k() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.SegdetParam.keep_top_k)
  return _internal_keep_top_k();
}
inline void SegdetParam::_internal_set_keep_top_k(int32_t value) {
  
  _impl_.keep_top_k_ = value;
}
inline void SegdetParam::set_keep_top_k(int32_t value) {
  _internal_set_keep_top_k(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.SegdetParam.keep_top_k)
}

// int32 top_k = 6;
inline void SegdetParam::clear_top_k() {
  _impl_.top_k_ = 0;
}
inline int32_t SegdetParam::_internal_top_k() const {
  return _impl_.top_k_;
}
inline int32_t SegdetParam::top_k() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.SegdetParam.top_k)
  return _internal_top_k();
}
inline void SegdetParam::_internal_set_top_k(int32_t value) {
  
  _impl_.top_k_ = value;
}
inline void SegdetParam::set_top_k(int32_t value) {
  _internal_set_top_k(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.SegdetParam.top_k)
}

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

// FaceQuality5ptParam

// bool use_day_night_mode = 1;
inline void FaceQuality5ptParam::clear_use_day_night_mode() {
  _impl_.use_day_night_mode_ = false;
}
inline bool FaceQuality5ptParam::_internal_use_day_night_mode() const {
  return _impl_.use_day_night_mode_;
}
inline bool FaceQuality5ptParam::use_day_night_mode() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.FaceQuality5ptParam.use_day_night_mode)
  return _internal_use_day_night_mode();
}
inline void FaceQuality5ptParam::_internal_set_use_day_night_mode(bool value) {
  
  _impl_.use_day_night_mode_ = value;
}
inline void FaceQuality5ptParam::set_use_day_night_mode(bool value) {
  _internal_set_use_day_night_mode(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.FaceQuality5ptParam.use_day_night_mode)
}

// bool original_quality = 2;
inline void FaceQuality5ptParam::clear_original_quality() {
  _impl_.original_quality_ = false;
}
inline bool FaceQuality5ptParam::_internal_original_quality() const {
  return _impl_.original_quality_;
}
inline bool FaceQuality5ptParam::original_quality() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.FaceQuality5ptParam.original_quality)
  return _internal_original_quality();
}
inline void FaceQuality5ptParam::_internal_set_original_quality(bool value) {
  
  _impl_.original_quality_ = value;
}
inline void FaceQuality5ptParam::set_original_quality(bool value) {
  _internal_set_original_quality(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.FaceQuality5ptParam.original_quality)
}

// string quality_layer_name = 3;
inline void FaceQuality5ptParam::clear_quality_layer_name() {
  _impl_.quality_layer_name_.ClearToEmpty();
}
inline const std::string& FaceQuality5ptParam::quality_layer_name() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.FaceQuality5ptParam.quality_layer_name)
  return _internal_quality_layer_name();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void FaceQuality5ptParam::set_quality_layer_name(ArgT0&& arg0, ArgT... args) {
 
 _impl_.quality_layer_name_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:vitis.ai.proto.FaceQuality5ptParam.quality_layer_name)
}
inline std::string* FaceQuality5ptParam::mutable_quality_layer_name() {
  std::string* _s = _internal_mutable_quality_layer_name();
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.FaceQuality5ptParam.quality_layer_name)
  return _s;
}
inline const std::string& FaceQuality5ptParam::_internal_quality_layer_name() const {
  return _impl_.quality_layer_name_.Get();
}
inline void FaceQuality5ptParam::_internal_set_quality_layer_name(const std::string& value) {
  
  _impl_.quality_layer_name_.Set(value, GetArenaForAllocation());
}
inline std::string* FaceQuality5ptParam::_internal_mutable_quality_layer_name() {
  
  return _impl_.quality_layer_name_.Mutable(GetArenaForAllocation());
}
inline std::string* FaceQuality5ptParam::release_quality_layer_name() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.FaceQuality5ptParam.quality_layer_name)
  return _impl_.quality_layer_name_.Release();
}
inline void FaceQuality5ptParam::set_allocated_quality_layer_name(std::string* quality_layer_name) {
  if (quality_layer_name != nullptr) {
    
  } else {
    
  }
  _impl_.quality_layer_name_.SetAllocated(quality_layer_name, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (_impl_.quality_layer_name_.IsDefault()) {
    _impl_.quality_layer_name_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.FaceQuality5ptParam.quality_layer_name)
}

// string point_layer_name = 4;
inline void FaceQuality5ptParam::clear_point_layer_name() {
  _impl_.point_layer_name_.ClearToEmpty();
}
inline const std::string& FaceQuality5ptParam::point_layer_name() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.FaceQuality5ptParam.point_layer_name)
  return _internal_point_layer_name();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void FaceQuality5ptParam::set_point_layer_name(ArgT0&& arg0, ArgT... args) {
 
 _impl_.point_layer_name_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:vitis.ai.proto.FaceQuality5ptParam.point_layer_name)
}
inline std::string* FaceQuality5ptParam::mutable_point_layer_name() {
  std::string* _s = _internal_mutable_point_layer_name();
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.FaceQuality5ptParam.point_layer_name)
  return _s;
}
inline const std::string& FaceQuality5ptParam::_internal_point_layer_name() const {
  return _impl_.point_layer_name_.Get();
}
inline void FaceQuality5ptParam::_internal_set_point_layer_name(const std::string& value) {
  
  _impl_.point_layer_name_.Set(value, GetArenaForAllocation());
}
inline std::string* FaceQuality5ptParam::_internal_mutable_point_layer_name() {
  
  return _impl_.point_layer_name_.Mutable(GetArenaForAllocation());
}
inline std::string* FaceQuality5ptParam::release_point_layer_name() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.FaceQuality5ptParam.point_layer_name)
  return _impl_.point_layer_name_.Release();
}
inline void FaceQuality5ptParam::set_allocated_point_layer_name(std::string* point_layer_name) {
  if (point_layer_name != nullptr) {
    
  } else {
    
  }
  _impl_.point_layer_name_.SetAllocated(point_layer_name, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (_impl_.point_layer_name_.IsDefault()) {
    _impl_.point_layer_name_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.FaceQuality5ptParam.point_layer_name)
}

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

// RetinaFaceParam_OutputAnchorInfo

// .vitis.ai.proto.RetinaFaceParam.AnchorType type = 1;
inline void RetinaFaceParam_OutputAnchorInfo::clear_type() {
  _impl_.type_ = 0;
}
inline ::vitis::ai::proto::RetinaFaceParam_AnchorType RetinaFaceParam_OutputAnchorInfo::_internal_type() const {
  return static_cast< ::vitis::ai::proto::RetinaFaceParam_AnchorType >(_impl_.type_);
}
inline ::vitis::ai::proto::RetinaFaceParam_AnchorType RetinaFaceParam_OutputAnchorInfo::type() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.RetinaFaceParam.OutputAnchorInfo.type)
  return _internal_type();
}
inline void RetinaFaceParam_OutputAnchorInfo::_internal_set_type(::vitis::ai::proto::RetinaFaceParam_AnchorType value) {
  
  _impl_.type_ = value;
}
inline void RetinaFaceParam_OutputAnchorInfo::set_type(::vitis::ai::proto::RetinaFaceParam_AnchorType value) {
  _internal_set_type(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.RetinaFaceParam.OutputAnchorInfo.type)
}

// int32 index = 2;
inline void RetinaFaceParam_OutputAnchorInfo::clear_index() {
  _impl_.index_ = 0;
}
inline int32_t RetinaFaceParam_OutputAnchorInfo::_internal_index() const {
  return _impl_.index_;
}
inline int32_t RetinaFaceParam_OutputAnchorInfo::index() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.RetinaFaceParam.OutputAnchorInfo.index)
  return _internal_index();
}
inline void RetinaFaceParam_OutputAnchorInfo::_internal_set_index(int32_t value) {
  
  _impl_.index_ = value;
}
inline void RetinaFaceParam_OutputAnchorInfo::set_index(int32_t value) {
  _internal_set_index(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.RetinaFaceParam.OutputAnchorInfo.index)
}

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

// RetinaFaceParam_OutputInfo

// .vitis.ai.proto.RetinaFaceParam.OutputType type = 1;
inline void RetinaFaceParam_OutputInfo::clear_type() {
  _impl_.type_ = 0;
}
inline ::vitis::ai::proto::RetinaFaceParam_OutputType RetinaFaceParam_OutputInfo::_internal_type() const {
  return static_cast< ::vitis::ai::proto::RetinaFaceParam_OutputType >(_impl_.type_);
}
inline ::vitis::ai::proto::RetinaFaceParam_OutputType RetinaFaceParam_OutputInfo::type() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.RetinaFaceParam.OutputInfo.type)
  return _internal_type();
}
inline void RetinaFaceParam_OutputInfo::_internal_set_type(::vitis::ai::proto::RetinaFaceParam_OutputType value) {
  
  _impl_.type_ = value;
}
inline void RetinaFaceParam_OutputInfo::set_type(::vitis::ai::proto::RetinaFaceParam_OutputType value) {
  _internal_set_type(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.RetinaFaceParam.OutputInfo.type)
}

// int32 stride = 2;
inline void RetinaFaceParam_OutputInfo::clear_stride() {
  _impl_.stride_ = 0;
}
inline int32_t RetinaFaceParam_OutputInfo::_internal_stride() const {
  return _impl_.stride_;
}
inline int32_t RetinaFaceParam_OutputInfo::stride() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.RetinaFaceParam.OutputInfo.stride)
  return _internal_stride();
}
inline void RetinaFaceParam_OutputInfo::_internal_set_stride(int32_t value) {
  
  _impl_.stride_ = value;
}
inline void RetinaFaceParam_OutputInfo::set_stride(int32_t value) {
  _internal_set_stride(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.RetinaFaceParam.OutputInfo.stride)
}

// string name = 3;
inline void RetinaFaceParam_OutputInfo::clear_name() {
  _impl_.name_.ClearToEmpty();
}
inline const std::string& RetinaFaceParam_OutputInfo::name() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.RetinaFaceParam.OutputInfo.name)
  return _internal_name();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void RetinaFaceParam_OutputInfo::set_name(ArgT0&& arg0, ArgT... args) {
 
 _impl_.name_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:vitis.ai.proto.RetinaFaceParam.OutputInfo.name)
}
inline std::string* RetinaFaceParam_OutputInfo::mutable_name() {
  std::string* _s = _internal_mutable_name();
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.RetinaFaceParam.OutputInfo.name)
  return _s;
}
inline const std::string& RetinaFaceParam_OutputInfo::_internal_name() const {
  return _impl_.name_.Get();
}
inline void RetinaFaceParam_OutputInfo::_internal_set_name(const std::string& value) {
  
  _impl_.name_.Set(value, GetArenaForAllocation());
}
inline std::string* RetinaFaceParam_OutputInfo::_internal_mutable_name() {
  
  return _impl_.name_.Mutable(GetArenaForAllocation());
}
inline std::string* RetinaFaceParam_OutputInfo::release_name() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.RetinaFaceParam.OutputInfo.name)
  return _impl_.name_.Release();
}
inline void RetinaFaceParam_OutputInfo::set_allocated_name(std::string* name) {
  if (name != nullptr) {
    
  } else {
    
  }
  _impl_.name_.SetAllocated(name, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (_impl_.name_.IsDefault()) {
    _impl_.name_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.RetinaFaceParam.OutputInfo.name)
}

// .vitis.ai.proto.RetinaFaceParam.OutputAnchorInfo output_anchor_info = 4;
inline bool RetinaFaceParam_OutputInfo::_internal_has_output_anchor_info() const {
  return this != internal_default_instance() && _impl_.output_anchor_info_ != nullptr;
}
inline bool RetinaFaceParam_OutputInfo::has_output_anchor_info() const {
  return _internal_has_output_anchor_info();
}
inline void RetinaFaceParam_OutputInfo::clear_output_anchor_info() {
  if (GetArenaForAllocation() == nullptr && _impl_.output_anchor_info_ != nullptr) {
    delete _impl_.output_anchor_info_;
  }
  _impl_.output_anchor_info_ = nullptr;
}
inline const ::vitis::ai::proto::RetinaFaceParam_OutputAnchorInfo& RetinaFaceParam_OutputInfo::_internal_output_anchor_info() const {
  const ::vitis::ai::proto::RetinaFaceParam_OutputAnchorInfo* p = _impl_.output_anchor_info_;
  return p != nullptr ? *p : reinterpret_cast<const ::vitis::ai::proto::RetinaFaceParam_OutputAnchorInfo&>(
      ::vitis::ai::proto::_RetinaFaceParam_OutputAnchorInfo_default_instance_);
}
inline const ::vitis::ai::proto::RetinaFaceParam_OutputAnchorInfo& RetinaFaceParam_OutputInfo::output_anchor_info() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.RetinaFaceParam.OutputInfo.output_anchor_info)
  return _internal_output_anchor_info();
}
inline void RetinaFaceParam_OutputInfo::unsafe_arena_set_allocated_output_anchor_info(
    ::vitis::ai::proto::RetinaFaceParam_OutputAnchorInfo* output_anchor_info) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.output_anchor_info_);
  }
  _impl_.output_anchor_info_ = output_anchor_info;
  if (output_anchor_info) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:vitis.ai.proto.RetinaFaceParam.OutputInfo.output_anchor_info)
}
inline ::vitis::ai::proto::RetinaFaceParam_OutputAnchorInfo* RetinaFaceParam_OutputInfo::release_output_anchor_info() {
  
  ::vitis::ai::proto::RetinaFaceParam_OutputAnchorInfo* temp = _impl_.output_anchor_info_;
  _impl_.output_anchor_info_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::vitis::ai::proto::RetinaFaceParam_OutputAnchorInfo* RetinaFaceParam_OutputInfo::unsafe_arena_release_output_anchor_info() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.RetinaFaceParam.OutputInfo.output_anchor_info)
  
  ::vitis::ai::proto::RetinaFaceParam_OutputAnchorInfo* temp = _impl_.output_anchor_info_;
  _impl_.output_anchor_info_ = nullptr;
  return temp;
}
inline ::vitis::ai::proto::RetinaFaceParam_OutputAnchorInfo* RetinaFaceParam_OutputInfo::_internal_mutable_output_anchor_info() {
  
  if (_impl_.output_anchor_info_ == nullptr) {
    auto* p = CreateMaybeMessage<::vitis::ai::proto::RetinaFaceParam_OutputAnchorInfo>(GetArenaForAllocation());
    _impl_.output_anchor_info_ = p;
  }
  return _impl_.output_anchor_info_;
}
inline ::vitis::ai::proto::RetinaFaceParam_OutputAnchorInfo* RetinaFaceParam_OutputInfo::mutable_output_anchor_info() {
  ::vitis::ai::proto::RetinaFaceParam_OutputAnchorInfo* _msg = _internal_mutable_output_anchor_info();
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.RetinaFaceParam.OutputInfo.output_anchor_info)
  return _msg;
}
inline void RetinaFaceParam_OutputInfo::set_allocated_output_anchor_info(::vitis::ai::proto::RetinaFaceParam_OutputAnchorInfo* output_anchor_info) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete _impl_.output_anchor_info_;
  }
  if (output_anchor_info) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
        ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(output_anchor_info);
    if (message_arena != submessage_arena) {
      output_anchor_info = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, output_anchor_info, submessage_arena);
    }
    
  } else {
    
  }
  _impl_.output_anchor_info_ = output_anchor_info;
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.RetinaFaceParam.OutputInfo.output_anchor_info)
}

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

// RetinaFaceParam_AnchorParam

// int32 stride = 1;
inline void RetinaFaceParam_AnchorParam::clear_stride() {
  _impl_.stride_ = 0;
}
inline int32_t RetinaFaceParam_AnchorParam::_internal_stride() const {
  return _impl_.stride_;
}
inline int32_t RetinaFaceParam_AnchorParam::stride() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.RetinaFaceParam.AnchorParam.stride)
  return _internal_stride();
}
inline void RetinaFaceParam_AnchorParam::_internal_set_stride(int32_t value) {
  
  _impl_.stride_ = value;
}
inline void RetinaFaceParam_AnchorParam::set_stride(int32_t value) {
  _internal_set_stride(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.RetinaFaceParam.AnchorParam.stride)
}

// int32 base_size = 2;
inline void RetinaFaceParam_AnchorParam::clear_base_size() {
  _impl_.base_size_ = 0;
}
inline int32_t RetinaFaceParam_AnchorParam::_internal_base_size() const {
  return _impl_.base_size_;
}
inline int32_t RetinaFaceParam_AnchorParam::base_size() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.RetinaFaceParam.AnchorParam.base_size)
  return _internal_base_size();
}
inline void RetinaFaceParam_AnchorParam::_internal_set_base_size(int32_t value) {
  
  _impl_.base_size_ = value;
}
inline void RetinaFaceParam_AnchorParam::set_base_size(int32_t value) {
  _internal_set_base_size(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.RetinaFaceParam.AnchorParam.base_size)
}

// repeated float ratios = 3;
inline int RetinaFaceParam_AnchorParam::_internal_ratios_size() const {
  return _impl_.ratios_.size();
}
inline int RetinaFaceParam_AnchorParam::ratios_size() const {
  return _internal_ratios_size();
}
inline void RetinaFaceParam_AnchorParam::clear_ratios() {
  _impl_.ratios_.Clear();
}
inline float RetinaFaceParam_AnchorParam::_internal_ratios(int index) const {
  return _impl_.ratios_.Get(index);
}
inline float RetinaFaceParam_AnchorParam::ratios(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.RetinaFaceParam.AnchorParam.ratios)
  return _internal_ratios(index);
}
inline void RetinaFaceParam_AnchorParam::set_ratios(int index, float value) {
  _impl_.ratios_.Set(index, value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.RetinaFaceParam.AnchorParam.ratios)
}
inline void RetinaFaceParam_AnchorParam::_internal_add_ratios(float value) {
  _impl_.ratios_.Add(value);
}
inline void RetinaFaceParam_AnchorParam::add_ratios(float value) {
  _internal_add_ratios(value);
  // @@protoc_insertion_point(field_add:vitis.ai.proto.RetinaFaceParam.AnchorParam.ratios)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
RetinaFaceParam_AnchorParam::_internal_ratios() const {
  return _impl_.ratios_;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
RetinaFaceParam_AnchorParam::ratios() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.RetinaFaceParam.AnchorParam.ratios)
  return _internal_ratios();
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
RetinaFaceParam_AnchorParam::_internal_mutable_ratios() {
  return &_impl_.ratios_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
RetinaFaceParam_AnchorParam::mutable_ratios() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.RetinaFaceParam.AnchorParam.ratios)
  return _internal_mutable_ratios();
}

// repeated int32 scales = 4;
inline int RetinaFaceParam_AnchorParam::_internal_scales_size() const {
  return _impl_.scales_.size();
}
inline int RetinaFaceParam_AnchorParam::scales_size() const {
  return _internal_scales_size();
}
inline void RetinaFaceParam_AnchorParam::clear_scales() {
  _impl_.scales_.Clear();
}
inline int32_t RetinaFaceParam_AnchorParam::_internal_scales(int index) const {
  return _impl_.scales_.Get(index);
}
inline int32_t RetinaFaceParam_AnchorParam::scales(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.RetinaFaceParam.AnchorParam.scales)
  return _internal_scales(index);
}
inline void RetinaFaceParam_AnchorParam::set_scales(int index, int32_t value) {
  _impl_.scales_.Set(index, value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.RetinaFaceParam.AnchorParam.scales)
}
inline void RetinaFaceParam_AnchorParam::_internal_add_scales(int32_t value) {
  _impl_.scales_.Add(value);
}
inline void RetinaFaceParam_AnchorParam::add_scales(int32_t value) {
  _internal_add_scales(value);
  // @@protoc_insertion_point(field_add:vitis.ai.proto.RetinaFaceParam.AnchorParam.scales)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >&
RetinaFaceParam_AnchorParam::_internal_scales() const {
  return _impl_.scales_;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >&
RetinaFaceParam_AnchorParam::scales() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.RetinaFaceParam.AnchorParam.scales)
  return _internal_scales();
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >*
RetinaFaceParam_AnchorParam::_internal_mutable_scales() {
  return &_impl_.scales_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >*
RetinaFaceParam_AnchorParam::mutable_scales() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.RetinaFaceParam.AnchorParam.scales)
  return _internal_mutable_scales();
}

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

// RetinaFaceParam

// repeated .vitis.ai.proto.RetinaFaceParam.OutputInfo output_info = 1;
inline int RetinaFaceParam::_internal_output_info_size() const {
  return _impl_.output_info_.size();
}
inline int RetinaFaceParam::output_info_size() const {
  return _internal_output_info_size();
}
inline void RetinaFaceParam::clear_output_info() {
  _impl_.output_info_.Clear();
}
inline ::vitis::ai::proto::RetinaFaceParam_OutputInfo* RetinaFaceParam::mutable_output_info(int index) {
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.RetinaFaceParam.output_info)
  return _impl_.output_info_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::RetinaFaceParam_OutputInfo >*
RetinaFaceParam::mutable_output_info() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.RetinaFaceParam.output_info)
  return &_impl_.output_info_;
}
inline const ::vitis::ai::proto::RetinaFaceParam_OutputInfo& RetinaFaceParam::_internal_output_info(int index) const {
  return _impl_.output_info_.Get(index);
}
inline const ::vitis::ai::proto::RetinaFaceParam_OutputInfo& RetinaFaceParam::output_info(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.RetinaFaceParam.output_info)
  return _internal_output_info(index);
}
inline ::vitis::ai::proto::RetinaFaceParam_OutputInfo* RetinaFaceParam::_internal_add_output_info() {
  return _impl_.output_info_.Add();
}
inline ::vitis::ai::proto::RetinaFaceParam_OutputInfo* RetinaFaceParam::add_output_info() {
  ::vitis::ai::proto::RetinaFaceParam_OutputInfo* _add = _internal_add_output_info();
  // @@protoc_insertion_point(field_add:vitis.ai.proto.RetinaFaceParam.output_info)
  return _add;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::RetinaFaceParam_OutputInfo >&
RetinaFaceParam::output_info() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.RetinaFaceParam.output_info)
  return _impl_.output_info_;
}

// float nms_threshold = 2;
inline void RetinaFaceParam::clear_nms_threshold() {
  _impl_.nms_threshold_ = 0;
}
inline float RetinaFaceParam::_internal_nms_threshold() const {
  return _impl_.nms_threshold_;
}
inline float RetinaFaceParam::nms_threshold() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.RetinaFaceParam.nms_threshold)
  return _internal_nms_threshold();
}
inline void RetinaFaceParam::_internal_set_nms_threshold(float value) {
  
  _impl_.nms_threshold_ = value;
}
inline void RetinaFaceParam::set_nms_threshold(float value) {
  _internal_set_nms_threshold(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.RetinaFaceParam.nms_threshold)
}

// float det_threshold = 3;
inline void RetinaFaceParam::clear_det_threshold() {
  _impl_.det_threshold_ = 0;
}
inline float RetinaFaceParam::_internal_det_threshold() const {
  return _impl_.det_threshold_;
}
inline float RetinaFaceParam::det_threshold() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.RetinaFaceParam.det_threshold)
  return _internal_det_threshold();
}
inline void RetinaFaceParam::_internal_set_det_threshold(float value) {
  
  _impl_.det_threshold_ = value;
}
inline void RetinaFaceParam::set_det_threshold(float value) {
  _internal_set_det_threshold(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.RetinaFaceParam.det_threshold)
}

// repeated .vitis.ai.proto.RetinaFaceParam.AnchorParam anchor_param = 4;
inline int RetinaFaceParam::_internal_anchor_param_size() const {
  return _impl_.anchor_param_.size();
}
inline int RetinaFaceParam::anchor_param_size() const {
  return _internal_anchor_param_size();
}
inline void RetinaFaceParam::clear_anchor_param() {
  _impl_.anchor_param_.Clear();
}
inline ::vitis::ai::proto::RetinaFaceParam_AnchorParam* RetinaFaceParam::mutable_anchor_param(int index) {
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.RetinaFaceParam.anchor_param)
  return _impl_.anchor_param_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::RetinaFaceParam_AnchorParam >*
RetinaFaceParam::mutable_anchor_param() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.RetinaFaceParam.anchor_param)
  return &_impl_.anchor_param_;
}
inline const ::vitis::ai::proto::RetinaFaceParam_AnchorParam& RetinaFaceParam::_internal_anchor_param(int index) const {
  return _impl_.anchor_param_.Get(index);
}
inline const ::vitis::ai::proto::RetinaFaceParam_AnchorParam& RetinaFaceParam::anchor_param(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.RetinaFaceParam.anchor_param)
  return _internal_anchor_param(index);
}
inline ::vitis::ai::proto::RetinaFaceParam_AnchorParam* RetinaFaceParam::_internal_add_anchor_param() {
  return _impl_.anchor_param_.Add();
}
inline ::vitis::ai::proto::RetinaFaceParam_AnchorParam* RetinaFaceParam::add_anchor_param() {
  ::vitis::ai::proto::RetinaFaceParam_AnchorParam* _add = _internal_add_anchor_param();
  // @@protoc_insertion_point(field_add:vitis.ai.proto.RetinaFaceParam.anchor_param)
  return _add;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::RetinaFaceParam_AnchorParam >&
RetinaFaceParam::anchor_param() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.RetinaFaceParam.anchor_param)
  return _impl_.anchor_param_;
}

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

// DpuKernelParam

// string name = 1;
inline void DpuKernelParam::clear_name() {
  _impl_.name_.ClearToEmpty();
}
inline const std::string& DpuKernelParam::name() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.DpuKernelParam.name)
  return _internal_name();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void DpuKernelParam::set_name(ArgT0&& arg0, ArgT... args) {
 
 _impl_.name_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:vitis.ai.proto.DpuKernelParam.name)
}
inline std::string* DpuKernelParam::mutable_name() {
  std::string* _s = _internal_mutable_name();
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.DpuKernelParam.name)
  return _s;
}
inline const std::string& DpuKernelParam::_internal_name() const {
  return _impl_.name_.Get();
}
inline void DpuKernelParam::_internal_set_name(const std::string& value) {
  
  _impl_.name_.Set(value, GetArenaForAllocation());
}
inline std::string* DpuKernelParam::_internal_mutable_name() {
  
  return _impl_.name_.Mutable(GetArenaForAllocation());
}
inline std::string* DpuKernelParam::release_name() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.DpuKernelParam.name)
  return _impl_.name_.Release();
}
inline void DpuKernelParam::set_allocated_name(std::string* name) {
  if (name != nullptr) {
    
  } else {
    
  }
  _impl_.name_.SetAllocated(name, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (_impl_.name_.IsDefault()) {
    _impl_.name_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.DpuKernelParam.name)
}

// repeated float mean = 2;
inline int DpuKernelParam::_internal_mean_size() const {
  return _impl_.mean_.size();
}
inline int DpuKernelParam::mean_size() const {
  return _internal_mean_size();
}
inline void DpuKernelParam::clear_mean() {
  _impl_.mean_.Clear();
}
inline float DpuKernelParam::_internal_mean(int index) const {
  return _impl_.mean_.Get(index);
}
inline float DpuKernelParam::mean(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.DpuKernelParam.mean)
  return _internal_mean(index);
}
inline void DpuKernelParam::set_mean(int index, float value) {
  _impl_.mean_.Set(index, value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.DpuKernelParam.mean)
}
inline void DpuKernelParam::_internal_add_mean(float value) {
  _impl_.mean_.Add(value);
}
inline void DpuKernelParam::add_mean(float value) {
  _internal_add_mean(value);
  // @@protoc_insertion_point(field_add:vitis.ai.proto.DpuKernelParam.mean)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
DpuKernelParam::_internal_mean() const {
  return _impl_.mean_;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
DpuKernelParam::mean() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.DpuKernelParam.mean)
  return _internal_mean();
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
DpuKernelParam::_internal_mutable_mean() {
  return &_impl_.mean_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
DpuKernelParam::mutable_mean() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.DpuKernelParam.mean)
  return _internal_mutable_mean();
}

// repeated float scale = 3;
inline int DpuKernelParam::_internal_scale_size() const {
  return _impl_.scale_.size();
}
inline int DpuKernelParam::scale_size() const {
  return _internal_scale_size();
}
inline void DpuKernelParam::clear_scale() {
  _impl_.scale_.Clear();
}
inline float DpuKernelParam::_internal_scale(int index) const {
  return _impl_.scale_.Get(index);
}
inline float DpuKernelParam::scale(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.DpuKernelParam.scale)
  return _internal_scale(index);
}
inline void DpuKernelParam::set_scale(int index, float value) {
  _impl_.scale_.Set(index, value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.DpuKernelParam.scale)
}
inline void DpuKernelParam::_internal_add_scale(float value) {
  _impl_.scale_.Add(value);
}
inline void DpuKernelParam::add_scale(float value) {
  _internal_add_scale(value);
  // @@protoc_insertion_point(field_add:vitis.ai.proto.DpuKernelParam.scale)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
DpuKernelParam::_internal_scale() const {
  return _impl_.scale_;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
DpuKernelParam::scale() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.DpuKernelParam.scale)
  return _internal_scale();
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
DpuKernelParam::_internal_mutable_scale() {
  return &_impl_.scale_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
DpuKernelParam::mutable_scale() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.DpuKernelParam.scale)
  return _internal_mutable_scale();
}

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

// TfssdParam_OutputInfo

// .vitis.ai.proto.TfssdParam.OutputType type = 1;
inline void TfssdParam_OutputInfo::clear_type() {
  _impl_.type_ = 0;
}
inline ::vitis::ai::proto::TfssdParam_OutputType TfssdParam_OutputInfo::_internal_type() const {
  return static_cast< ::vitis::ai::proto::TfssdParam_OutputType >(_impl_.type_);
}
inline ::vitis::ai::proto::TfssdParam_OutputType TfssdParam_OutputInfo::type() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.TfssdParam.OutputInfo.type)
  return _internal_type();
}
inline void TfssdParam_OutputInfo::_internal_set_type(::vitis::ai::proto::TfssdParam_OutputType value) {
  
  _impl_.type_ = value;
}
inline void TfssdParam_OutputInfo::set_type(::vitis::ai::proto::TfssdParam_OutputType value) {
  _internal_set_type(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.TfssdParam.OutputInfo.type)
}

// int32 order = 2;
inline void TfssdParam_OutputInfo::clear_order() {
  _impl_.order_ = 0;
}
inline int32_t TfssdParam_OutputInfo::_internal_order() const {
  return _impl_.order_;
}
inline int32_t TfssdParam_OutputInfo::order() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.TfssdParam.OutputInfo.order)
  return _internal_order();
}
inline void TfssdParam_OutputInfo::_internal_set_order(int32_t value) {
  
  _impl_.order_ = value;
}
inline void TfssdParam_OutputInfo::set_order(int32_t value) {
  _internal_set_order(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.TfssdParam.OutputInfo.order)
}

// string name = 3;
inline void TfssdParam_OutputInfo::clear_name() {
  _impl_.name_.ClearToEmpty();
}
inline const std::string& TfssdParam_OutputInfo::name() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.TfssdParam.OutputInfo.name)
  return _internal_name();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void TfssdParam_OutputInfo::set_name(ArgT0&& arg0, ArgT... args) {
 
 _impl_.name_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:vitis.ai.proto.TfssdParam.OutputInfo.name)
}
inline std::string* TfssdParam_OutputInfo::mutable_name() {
  std::string* _s = _internal_mutable_name();
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.TfssdParam.OutputInfo.name)
  return _s;
}
inline const std::string& TfssdParam_OutputInfo::_internal_name() const {
  return _impl_.name_.Get();
}
inline void TfssdParam_OutputInfo::_internal_set_name(const std::string& value) {
  
  _impl_.name_.Set(value, GetArenaForAllocation());
}
inline std::string* TfssdParam_OutputInfo::_internal_mutable_name() {
  
  return _impl_.name_.Mutable(GetArenaForAllocation());
}
inline std::string* TfssdParam_OutputInfo::release_name() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.TfssdParam.OutputInfo.name)
  return _impl_.name_.Release();
}
inline void TfssdParam_OutputInfo::set_allocated_name(std::string* name) {
  if (name != nullptr) {
    
  } else {
    
  }
  _impl_.name_.SetAllocated(name, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (_impl_.name_.IsDefault()) {
    _impl_.name_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.TfssdParam.OutputInfo.name)
}

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

// TfssdParam

// repeated .vitis.ai.proto.TfssdParam.OutputInfo output_info = 1;
inline int TfssdParam::_internal_output_info_size() const {
  return _impl_.output_info_.size();
}
inline int TfssdParam::output_info_size() const {
  return _internal_output_info_size();
}
inline void TfssdParam::clear_output_info() {
  _impl_.output_info_.Clear();
}
inline ::vitis::ai::proto::TfssdParam_OutputInfo* TfssdParam::mutable_output_info(int index) {
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.TfssdParam.output_info)
  return _impl_.output_info_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::TfssdParam_OutputInfo >*
TfssdParam::mutable_output_info() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.TfssdParam.output_info)
  return &_impl_.output_info_;
}
inline const ::vitis::ai::proto::TfssdParam_OutputInfo& TfssdParam::_internal_output_info(int index) const {
  return _impl_.output_info_.Get(index);
}
inline const ::vitis::ai::proto::TfssdParam_OutputInfo& TfssdParam::output_info(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.TfssdParam.output_info)
  return _internal_output_info(index);
}
inline ::vitis::ai::proto::TfssdParam_OutputInfo* TfssdParam::_internal_add_output_info() {
  return _impl_.output_info_.Add();
}
inline ::vitis::ai::proto::TfssdParam_OutputInfo* TfssdParam::add_output_info() {
  ::vitis::ai::proto::TfssdParam_OutputInfo* _add = _internal_add_output_info();
  // @@protoc_insertion_point(field_add:vitis.ai.proto.TfssdParam.output_info)
  return _add;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::TfssdParam_OutputInfo >&
TfssdParam::output_info() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.TfssdParam.output_info)
  return _impl_.output_info_;
}

// repeated int32 feature_map_list = 2;
inline int TfssdParam::_internal_feature_map_list_size() const {
  return _impl_.feature_map_list_.size();
}
inline int TfssdParam::feature_map_list_size() const {
  return _internal_feature_map_list_size();
}
inline void TfssdParam::clear_feature_map_list() {
  _impl_.feature_map_list_.Clear();
}
inline int32_t TfssdParam::_internal_feature_map_list(int index) const {
  return _impl_.feature_map_list_.Get(index);
}
inline int32_t TfssdParam::feature_map_list(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.TfssdParam.feature_map_list)
  return _internal_feature_map_list(index);
}
inline void TfssdParam::set_feature_map_list(int index, int32_t value) {
  _impl_.feature_map_list_.Set(index, value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.TfssdParam.feature_map_list)
}
inline void TfssdParam::_internal_add_feature_map_list(int32_t value) {
  _impl_.feature_map_list_.Add(value);
}
inline void TfssdParam::add_feature_map_list(int32_t value) {
  _internal_add_feature_map_list(value);
  // @@protoc_insertion_point(field_add:vitis.ai.proto.TfssdParam.feature_map_list)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >&
TfssdParam::_internal_feature_map_list() const {
  return _impl_.feature_map_list_;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >&
TfssdParam::feature_map_list() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.TfssdParam.feature_map_list)
  return _internal_feature_map_list();
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >*
TfssdParam::_internal_mutable_feature_map_list() {
  return &_impl_.feature_map_list_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >*
TfssdParam::mutable_feature_map_list() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.TfssdParam.feature_map_list)
  return _internal_mutable_feature_map_list();
}

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

// PointPillarsNusParam_AnchorInfo_Ranges

// repeated float single_range = 1;
inline int PointPillarsNusParam_AnchorInfo_Ranges::_internal_single_range_size() const {
  return _impl_.single_range_.size();
}
inline int PointPillarsNusParam_AnchorInfo_Ranges::single_range_size() const {
  return _internal_single_range_size();
}
inline void PointPillarsNusParam_AnchorInfo_Ranges::clear_single_range() {
  _impl_.single_range_.Clear();
}
inline float PointPillarsNusParam_AnchorInfo_Ranges::_internal_single_range(int index) const {
  return _impl_.single_range_.Get(index);
}
inline float PointPillarsNusParam_AnchorInfo_Ranges::single_range(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.PointPillarsNusParam.AnchorInfo.Ranges.single_range)
  return _internal_single_range(index);
}
inline void PointPillarsNusParam_AnchorInfo_Ranges::set_single_range(int index, float value) {
  _impl_.single_range_.Set(index, value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.PointPillarsNusParam.AnchorInfo.Ranges.single_range)
}
inline void PointPillarsNusParam_AnchorInfo_Ranges::_internal_add_single_range(float value) {
  _impl_.single_range_.Add(value);
}
inline void PointPillarsNusParam_AnchorInfo_Ranges::add_single_range(float value) {
  _internal_add_single_range(value);
  // @@protoc_insertion_point(field_add:vitis.ai.proto.PointPillarsNusParam.AnchorInfo.Ranges.single_range)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
PointPillarsNusParam_AnchorInfo_Ranges::_internal_single_range() const {
  return _impl_.single_range_;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
PointPillarsNusParam_AnchorInfo_Ranges::single_range() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.PointPillarsNusParam.AnchorInfo.Ranges.single_range)
  return _internal_single_range();
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
PointPillarsNusParam_AnchorInfo_Ranges::_internal_mutable_single_range() {
  return &_impl_.single_range_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
PointPillarsNusParam_AnchorInfo_Ranges::mutable_single_range() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.PointPillarsNusParam.AnchorInfo.Ranges.single_range)
  return _internal_mutable_single_range();
}

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

// PointPillarsNusParam_AnchorInfo_Sizes

// repeated float single_size = 1;
inline int PointPillarsNusParam_AnchorInfo_Sizes::_internal_single_size_size() const {
  return _impl_.single_size_.size();
}
inline int PointPillarsNusParam_AnchorInfo_Sizes::single_size_size() const {
  return _internal_single_size_size();
}
inline void PointPillarsNusParam_AnchorInfo_Sizes::clear_single_size() {
  _impl_.single_size_.Clear();
}
inline float PointPillarsNusParam_AnchorInfo_Sizes::_internal_single_size(int index) const {
  return _impl_.single_size_.Get(index);
}
inline float PointPillarsNusParam_AnchorInfo_Sizes::single_size(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.PointPillarsNusParam.AnchorInfo.Sizes.single_size)
  return _internal_single_size(index);
}
inline void PointPillarsNusParam_AnchorInfo_Sizes::set_single_size(int index, float value) {
  _impl_.single_size_.Set(index, value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.PointPillarsNusParam.AnchorInfo.Sizes.single_size)
}
inline void PointPillarsNusParam_AnchorInfo_Sizes::_internal_add_single_size(float value) {
  _impl_.single_size_.Add(value);
}
inline void PointPillarsNusParam_AnchorInfo_Sizes::add_single_size(float value) {
  _internal_add_single_size(value);
  // @@protoc_insertion_point(field_add:vitis.ai.proto.PointPillarsNusParam.AnchorInfo.Sizes.single_size)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
PointPillarsNusParam_AnchorInfo_Sizes::_internal_single_size() const {
  return _impl_.single_size_;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
PointPillarsNusParam_AnchorInfo_Sizes::single_size() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.PointPillarsNusParam.AnchorInfo.Sizes.single_size)
  return _internal_single_size();
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
PointPillarsNusParam_AnchorInfo_Sizes::_internal_mutable_single_size() {
  return &_impl_.single_size_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
PointPillarsNusParam_AnchorInfo_Sizes::mutable_single_size() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.PointPillarsNusParam.AnchorInfo.Sizes.single_size)
  return _internal_mutable_single_size();
}

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

// PointPillarsNusParam_AnchorInfo

// repeated .vitis.ai.proto.PointPillarsNusParam.AnchorInfo.Ranges ranges = 1;
inline int PointPillarsNusParam_AnchorInfo::_internal_ranges_size() const {
  return _impl_.ranges_.size();
}
inline int PointPillarsNusParam_AnchorInfo::ranges_size() const {
  return _internal_ranges_size();
}
inline void PointPillarsNusParam_AnchorInfo::clear_ranges() {
  _impl_.ranges_.Clear();
}
inline ::vitis::ai::proto::PointPillarsNusParam_AnchorInfo_Ranges* PointPillarsNusParam_AnchorInfo::mutable_ranges(int index) {
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.PointPillarsNusParam.AnchorInfo.ranges)
  return _impl_.ranges_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::PointPillarsNusParam_AnchorInfo_Ranges >*
PointPillarsNusParam_AnchorInfo::mutable_ranges() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.PointPillarsNusParam.AnchorInfo.ranges)
  return &_impl_.ranges_;
}
inline const ::vitis::ai::proto::PointPillarsNusParam_AnchorInfo_Ranges& PointPillarsNusParam_AnchorInfo::_internal_ranges(int index) const {
  return _impl_.ranges_.Get(index);
}
inline const ::vitis::ai::proto::PointPillarsNusParam_AnchorInfo_Ranges& PointPillarsNusParam_AnchorInfo::ranges(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.PointPillarsNusParam.AnchorInfo.ranges)
  return _internal_ranges(index);
}
inline ::vitis::ai::proto::PointPillarsNusParam_AnchorInfo_Ranges* PointPillarsNusParam_AnchorInfo::_internal_add_ranges() {
  return _impl_.ranges_.Add();
}
inline ::vitis::ai::proto::PointPillarsNusParam_AnchorInfo_Ranges* PointPillarsNusParam_AnchorInfo::add_ranges() {
  ::vitis::ai::proto::PointPillarsNusParam_AnchorInfo_Ranges* _add = _internal_add_ranges();
  // @@protoc_insertion_point(field_add:vitis.ai.proto.PointPillarsNusParam.AnchorInfo.ranges)
  return _add;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::PointPillarsNusParam_AnchorInfo_Ranges >&
PointPillarsNusParam_AnchorInfo::ranges() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.PointPillarsNusParam.AnchorInfo.ranges)
  return _impl_.ranges_;
}

// repeated .vitis.ai.proto.PointPillarsNusParam.AnchorInfo.Sizes sizes = 2;
inline int PointPillarsNusParam_AnchorInfo::_internal_sizes_size() const {
  return _impl_.sizes_.size();
}
inline int PointPillarsNusParam_AnchorInfo::sizes_size() const {
  return _internal_sizes_size();
}
inline void PointPillarsNusParam_AnchorInfo::clear_sizes() {
  _impl_.sizes_.Clear();
}
inline ::vitis::ai::proto::PointPillarsNusParam_AnchorInfo_Sizes* PointPillarsNusParam_AnchorInfo::mutable_sizes(int index) {
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.PointPillarsNusParam.AnchorInfo.sizes)
  return _impl_.sizes_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::PointPillarsNusParam_AnchorInfo_Sizes >*
PointPillarsNusParam_AnchorInfo::mutable_sizes() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.PointPillarsNusParam.AnchorInfo.sizes)
  return &_impl_.sizes_;
}
inline const ::vitis::ai::proto::PointPillarsNusParam_AnchorInfo_Sizes& PointPillarsNusParam_AnchorInfo::_internal_sizes(int index) const {
  return _impl_.sizes_.Get(index);
}
inline const ::vitis::ai::proto::PointPillarsNusParam_AnchorInfo_Sizes& PointPillarsNusParam_AnchorInfo::sizes(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.PointPillarsNusParam.AnchorInfo.sizes)
  return _internal_sizes(index);
}
inline ::vitis::ai::proto::PointPillarsNusParam_AnchorInfo_Sizes* PointPillarsNusParam_AnchorInfo::_internal_add_sizes() {
  return _impl_.sizes_.Add();
}
inline ::vitis::ai::proto::PointPillarsNusParam_AnchorInfo_Sizes* PointPillarsNusParam_AnchorInfo::add_sizes() {
  ::vitis::ai::proto::PointPillarsNusParam_AnchorInfo_Sizes* _add = _internal_add_sizes();
  // @@protoc_insertion_point(field_add:vitis.ai.proto.PointPillarsNusParam.AnchorInfo.sizes)
  return _add;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::PointPillarsNusParam_AnchorInfo_Sizes >&
PointPillarsNusParam_AnchorInfo::sizes() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.PointPillarsNusParam.AnchorInfo.sizes)
  return _impl_.sizes_;
}

// repeated float rotations = 3;
inline int PointPillarsNusParam_AnchorInfo::_internal_rotations_size() const {
  return _impl_.rotations_.size();
}
inline int PointPillarsNusParam_AnchorInfo::rotations_size() const {
  return _internal_rotations_size();
}
inline void PointPillarsNusParam_AnchorInfo::clear_rotations() {
  _impl_.rotations_.Clear();
}
inline float PointPillarsNusParam_AnchorInfo::_internal_rotations(int index) const {
  return _impl_.rotations_.Get(index);
}
inline float PointPillarsNusParam_AnchorInfo::rotations(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.PointPillarsNusParam.AnchorInfo.rotations)
  return _internal_rotations(index);
}
inline void PointPillarsNusParam_AnchorInfo::set_rotations(int index, float value) {
  _impl_.rotations_.Set(index, value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.PointPillarsNusParam.AnchorInfo.rotations)
}
inline void PointPillarsNusParam_AnchorInfo::_internal_add_rotations(float value) {
  _impl_.rotations_.Add(value);
}
inline void PointPillarsNusParam_AnchorInfo::add_rotations(float value) {
  _internal_add_rotations(value);
  // @@protoc_insertion_point(field_add:vitis.ai.proto.PointPillarsNusParam.AnchorInfo.rotations)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
PointPillarsNusParam_AnchorInfo::_internal_rotations() const {
  return _impl_.rotations_;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
PointPillarsNusParam_AnchorInfo::rotations() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.PointPillarsNusParam.AnchorInfo.rotations)
  return _internal_rotations();
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
PointPillarsNusParam_AnchorInfo::_internal_mutable_rotations() {
  return &_impl_.rotations_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
PointPillarsNusParam_AnchorInfo::mutable_rotations() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.PointPillarsNusParam.AnchorInfo.rotations)
  return _internal_mutable_rotations();
}

// repeated float custom_value = 4;
inline int PointPillarsNusParam_AnchorInfo::_internal_custom_value_size() const {
  return _impl_.custom_value_.size();
}
inline int PointPillarsNusParam_AnchorInfo::custom_value_size() const {
  return _internal_custom_value_size();
}
inline void PointPillarsNusParam_AnchorInfo::clear_custom_value() {
  _impl_.custom_value_.Clear();
}
inline float PointPillarsNusParam_AnchorInfo::_internal_custom_value(int index) const {
  return _impl_.custom_value_.Get(index);
}
inline float PointPillarsNusParam_AnchorInfo::custom_value(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.PointPillarsNusParam.AnchorInfo.custom_value)
  return _internal_custom_value(index);
}
inline void PointPillarsNusParam_AnchorInfo::set_custom_value(int index, float value) {
  _impl_.custom_value_.Set(index, value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.PointPillarsNusParam.AnchorInfo.custom_value)
}
inline void PointPillarsNusParam_AnchorInfo::_internal_add_custom_value(float value) {
  _impl_.custom_value_.Add(value);
}
inline void PointPillarsNusParam_AnchorInfo::add_custom_value(float value) {
  _internal_add_custom_value(value);
  // @@protoc_insertion_point(field_add:vitis.ai.proto.PointPillarsNusParam.AnchorInfo.custom_value)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
PointPillarsNusParam_AnchorInfo::_internal_custom_value() const {
  return _impl_.custom_value_;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
PointPillarsNusParam_AnchorInfo::custom_value() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.PointPillarsNusParam.AnchorInfo.custom_value)
  return _internal_custom_value();
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
PointPillarsNusParam_AnchorInfo::_internal_mutable_custom_value() {
  return &_impl_.custom_value_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
PointPillarsNusParam_AnchorInfo::mutable_custom_value() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.PointPillarsNusParam.AnchorInfo.custom_value)
  return _internal_mutable_custom_value();
}

// bool align_corner = 5;
inline void PointPillarsNusParam_AnchorInfo::clear_align_corner() {
  _impl_.align_corner_ = false;
}
inline bool PointPillarsNusParam_AnchorInfo::_internal_align_corner() const {
  return _impl_.align_corner_;
}
inline bool PointPillarsNusParam_AnchorInfo::align_corner() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.PointPillarsNusParam.AnchorInfo.align_corner)
  return _internal_align_corner();
}
inline void PointPillarsNusParam_AnchorInfo::_internal_set_align_corner(bool value) {
  
  _impl_.align_corner_ = value;
}
inline void PointPillarsNusParam_AnchorInfo::set_align_corner(bool value) {
  _internal_set_align_corner(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.PointPillarsNusParam.AnchorInfo.align_corner)
}

// float scale = 6;
inline void PointPillarsNusParam_AnchorInfo::clear_scale() {
  _impl_.scale_ = 0;
}
inline float PointPillarsNusParam_AnchorInfo::_internal_scale() const {
  return _impl_.scale_;
}
inline float PointPillarsNusParam_AnchorInfo::scale() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.PointPillarsNusParam.AnchorInfo.scale)
  return _internal_scale();
}
inline void PointPillarsNusParam_AnchorInfo::_internal_set_scale(float value) {
  
  _impl_.scale_ = value;
}
inline void PointPillarsNusParam_AnchorInfo::set_scale(float value) {
  _internal_set_scale(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.PointPillarsNusParam.AnchorInfo.scale)
}

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

// PointPillarsNusParam

// repeated float point_cloud_range = 1;
inline int PointPillarsNusParam::_internal_point_cloud_range_size() const {
  return _impl_.point_cloud_range_.size();
}
inline int PointPillarsNusParam::point_cloud_range_size() const {
  return _internal_point_cloud_range_size();
}
inline void PointPillarsNusParam::clear_point_cloud_range() {
  _impl_.point_cloud_range_.Clear();
}
inline float PointPillarsNusParam::_internal_point_cloud_range(int index) const {
  return _impl_.point_cloud_range_.Get(index);
}
inline float PointPillarsNusParam::point_cloud_range(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.PointPillarsNusParam.point_cloud_range)
  return _internal_point_cloud_range(index);
}
inline void PointPillarsNusParam::set_point_cloud_range(int index, float value) {
  _impl_.point_cloud_range_.Set(index, value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.PointPillarsNusParam.point_cloud_range)
}
inline void PointPillarsNusParam::_internal_add_point_cloud_range(float value) {
  _impl_.point_cloud_range_.Add(value);
}
inline void PointPillarsNusParam::add_point_cloud_range(float value) {
  _internal_add_point_cloud_range(value);
  // @@protoc_insertion_point(field_add:vitis.ai.proto.PointPillarsNusParam.point_cloud_range)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
PointPillarsNusParam::_internal_point_cloud_range() const {
  return _impl_.point_cloud_range_;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
PointPillarsNusParam::point_cloud_range() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.PointPillarsNusParam.point_cloud_range)
  return _internal_point_cloud_range();
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
PointPillarsNusParam::_internal_mutable_point_cloud_range() {
  return &_impl_.point_cloud_range_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
PointPillarsNusParam::mutable_point_cloud_range() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.PointPillarsNusParam.point_cloud_range)
  return _internal_mutable_point_cloud_range();
}

// int32 in_channels = 2;
inline void PointPillarsNusParam::clear_in_channels() {
  _impl_.in_channels_ = 0;
}
inline int32_t PointPillarsNusParam::_internal_in_channels() const {
  return _impl_.in_channels_;
}
inline int32_t PointPillarsNusParam::in_channels() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.PointPillarsNusParam.in_channels)
  return _internal_in_channels();
}
inline void PointPillarsNusParam::_internal_set_in_channels(int32_t value) {
  
  _impl_.in_channels_ = value;
}
inline void PointPillarsNusParam::set_in_channels(int32_t value) {
  _internal_set_in_channels(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.PointPillarsNusParam.in_channels)
}

// int32 max_points_num = 3;
inline void PointPillarsNusParam::clear_max_points_num() {
  _impl_.max_points_num_ = 0;
}
inline int32_t PointPillarsNusParam::_internal_max_points_num() const {
  return _impl_.max_points_num_;
}
inline int32_t PointPillarsNusParam::max_points_num() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.PointPillarsNusParam.max_points_num)
  return _internal_max_points_num();
}
inline void PointPillarsNusParam::_internal_set_max_points_num(int32_t value) {
  
  _impl_.max_points_num_ = value;
}
inline void PointPillarsNusParam::set_max_points_num(int32_t value) {
  _internal_set_max_points_num(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.PointPillarsNusParam.max_points_num)
}

// int32 max_voxels_num = 4;
inline void PointPillarsNusParam::clear_max_voxels_num() {
  _impl_.max_voxels_num_ = 0;
}
inline int32_t PointPillarsNusParam::_internal_max_voxels_num() const {
  return _impl_.max_voxels_num_;
}
inline int32_t PointPillarsNusParam::max_voxels_num() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.PointPillarsNusParam.max_voxels_num)
  return _internal_max_voxels_num();
}
inline void PointPillarsNusParam::_internal_set_max_voxels_num(int32_t value) {
  
  _impl_.max_voxels_num_ = value;
}
inline void PointPillarsNusParam::set_max_voxels_num(int32_t value) {
  _internal_set_max_voxels_num(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.PointPillarsNusParam.max_voxels_num)
}

// repeated int32 featmap_size = 5;
inline int PointPillarsNusParam::_internal_featmap_size_size() const {
  return _impl_.featmap_size_.size();
}
inline int PointPillarsNusParam::featmap_size_size() const {
  return _internal_featmap_size_size();
}
inline void PointPillarsNusParam::clear_featmap_size() {
  _impl_.featmap_size_.Clear();
}
inline int32_t PointPillarsNusParam::_internal_featmap_size(int index) const {
  return _impl_.featmap_size_.Get(index);
}
inline int32_t PointPillarsNusParam::featmap_size(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.PointPillarsNusParam.featmap_size)
  return _internal_featmap_size(index);
}
inline void PointPillarsNusParam::set_featmap_size(int index, int32_t value) {
  _impl_.featmap_size_.Set(index, value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.PointPillarsNusParam.featmap_size)
}
inline void PointPillarsNusParam::_internal_add_featmap_size(int32_t value) {
  _impl_.featmap_size_.Add(value);
}
inline void PointPillarsNusParam::add_featmap_size(int32_t value) {
  _internal_add_featmap_size(value);
  // @@protoc_insertion_point(field_add:vitis.ai.proto.PointPillarsNusParam.featmap_size)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >&
PointPillarsNusParam::_internal_featmap_size() const {
  return _impl_.featmap_size_;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >&
PointPillarsNusParam::featmap_size() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.PointPillarsNusParam.featmap_size)
  return _internal_featmap_size();
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >*
PointPillarsNusParam::_internal_mutable_featmap_size() {
  return &_impl_.featmap_size_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >*
PointPillarsNusParam::mutable_featmap_size() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.PointPillarsNusParam.featmap_size)
  return _internal_mutable_featmap_size();
}

// .vitis.ai.proto.PointPillarsNusParam.AnchorInfo anchor_info = 6;
inline bool PointPillarsNusParam::_internal_has_anchor_info() const {
  return this != internal_default_instance() && _impl_.anchor_info_ != nullptr;
}
inline bool PointPillarsNusParam::has_anchor_info() const {
  return _internal_has_anchor_info();
}
inline void PointPillarsNusParam::clear_anchor_info() {
  if (GetArenaForAllocation() == nullptr && _impl_.anchor_info_ != nullptr) {
    delete _impl_.anchor_info_;
  }
  _impl_.anchor_info_ = nullptr;
}
inline const ::vitis::ai::proto::PointPillarsNusParam_AnchorInfo& PointPillarsNusParam::_internal_anchor_info() const {
  const ::vitis::ai::proto::PointPillarsNusParam_AnchorInfo* p = _impl_.anchor_info_;
  return p != nullptr ? *p : reinterpret_cast<const ::vitis::ai::proto::PointPillarsNusParam_AnchorInfo&>(
      ::vitis::ai::proto::_PointPillarsNusParam_AnchorInfo_default_instance_);
}
inline const ::vitis::ai::proto::PointPillarsNusParam_AnchorInfo& PointPillarsNusParam::anchor_info() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.PointPillarsNusParam.anchor_info)
  return _internal_anchor_info();
}
inline void PointPillarsNusParam::unsafe_arena_set_allocated_anchor_info(
    ::vitis::ai::proto::PointPillarsNusParam_AnchorInfo* anchor_info) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.anchor_info_);
  }
  _impl_.anchor_info_ = anchor_info;
  if (anchor_info) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:vitis.ai.proto.PointPillarsNusParam.anchor_info)
}
inline ::vitis::ai::proto::PointPillarsNusParam_AnchorInfo* PointPillarsNusParam::release_anchor_info() {
  
  ::vitis::ai::proto::PointPillarsNusParam_AnchorInfo* temp = _impl_.anchor_info_;
  _impl_.anchor_info_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::vitis::ai::proto::PointPillarsNusParam_AnchorInfo* PointPillarsNusParam::unsafe_arena_release_anchor_info() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.PointPillarsNusParam.anchor_info)
  
  ::vitis::ai::proto::PointPillarsNusParam_AnchorInfo* temp = _impl_.anchor_info_;
  _impl_.anchor_info_ = nullptr;
  return temp;
}
inline ::vitis::ai::proto::PointPillarsNusParam_AnchorInfo* PointPillarsNusParam::_internal_mutable_anchor_info() {
  
  if (_impl_.anchor_info_ == nullptr) {
    auto* p = CreateMaybeMessage<::vitis::ai::proto::PointPillarsNusParam_AnchorInfo>(GetArenaForAllocation());
    _impl_.anchor_info_ = p;
  }
  return _impl_.anchor_info_;
}
inline ::vitis::ai::proto::PointPillarsNusParam_AnchorInfo* PointPillarsNusParam::mutable_anchor_info() {
  ::vitis::ai::proto::PointPillarsNusParam_AnchorInfo* _msg = _internal_mutable_anchor_info();
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.PointPillarsNusParam.anchor_info)
  return _msg;
}
inline void PointPillarsNusParam::set_allocated_anchor_info(::vitis::ai::proto::PointPillarsNusParam_AnchorInfo* anchor_info) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete _impl_.anchor_info_;
  }
  if (anchor_info) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
        ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(anchor_info);
    if (message_arena != submessage_arena) {
      anchor_info = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, anchor_info, submessage_arena);
    }
    
  } else {
    
  }
  _impl_.anchor_info_ = anchor_info;
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.PointPillarsNusParam.anchor_info)
}

// int32 num_classes = 7;
inline void PointPillarsNusParam::clear_num_classes() {
  _impl_.num_classes_ = 0;
}
inline int32_t PointPillarsNusParam::_internal_num_classes() const {
  return _impl_.num_classes_;
}
inline int32_t PointPillarsNusParam::num_classes() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.PointPillarsNusParam.num_classes)
  return _internal_num_classes();
}
inline void PointPillarsNusParam::_internal_set_num_classes(int32_t value) {
  
  _impl_.num_classes_ = value;
}
inline void PointPillarsNusParam::set_num_classes(int32_t value) {
  _internal_set_num_classes(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.PointPillarsNusParam.num_classes)
}

// float nms_pre = 8;
inline void PointPillarsNusParam::clear_nms_pre() {
  _impl_.nms_pre_ = 0;
}
inline float PointPillarsNusParam::_internal_nms_pre() const {
  return _impl_.nms_pre_;
}
inline float PointPillarsNusParam::nms_pre() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.PointPillarsNusParam.nms_pre)
  return _internal_nms_pre();
}
inline void PointPillarsNusParam::_internal_set_nms_pre(float value) {
  
  _impl_.nms_pre_ = value;
}
inline void PointPillarsNusParam::set_nms_pre(float value) {
  _internal_set_nms_pre(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.PointPillarsNusParam.nms_pre)
}

// float nms_thresh = 9;
inline void PointPillarsNusParam::clear_nms_thresh() {
  _impl_.nms_thresh_ = 0;
}
inline float PointPillarsNusParam::_internal_nms_thresh() const {
  return _impl_.nms_thresh_;
}
inline float PointPillarsNusParam::nms_thresh() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.PointPillarsNusParam.nms_thresh)
  return _internal_nms_thresh();
}
inline void PointPillarsNusParam::_internal_set_nms_thresh(float value) {
  
  _impl_.nms_thresh_ = value;
}
inline void PointPillarsNusParam::set_nms_thresh(float value) {
  _internal_set_nms_thresh(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.PointPillarsNusParam.nms_thresh)
}

// float max_num = 10;
inline void PointPillarsNusParam::clear_max_num() {
  _impl_.max_num_ = 0;
}
inline float PointPillarsNusParam::_internal_max_num() const {
  return _impl_.max_num_;
}
inline float PointPillarsNusParam::max_num() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.PointPillarsNusParam.max_num)
  return _internal_max_num();
}
inline void PointPillarsNusParam::_internal_set_max_num(float value) {
  
  _impl_.max_num_ = value;
}
inline void PointPillarsNusParam::set_max_num(float value) {
  _internal_set_max_num(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.PointPillarsNusParam.max_num)
}

// float score_thresh = 11;
inline void PointPillarsNusParam::clear_score_thresh() {
  _impl_.score_thresh_ = 0;
}
inline float PointPillarsNusParam::_internal_score_thresh() const {
  return _impl_.score_thresh_;
}
inline float PointPillarsNusParam::score_thresh() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.PointPillarsNusParam.score_thresh)
  return _internal_score_thresh();
}
inline void PointPillarsNusParam::_internal_set_score_thresh(float value) {
  
  _impl_.score_thresh_ = value;
}
inline void PointPillarsNusParam::set_score_thresh(float value) {
  _internal_set_score_thresh(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.PointPillarsNusParam.score_thresh)
}

// string score_layer_name = 12;
inline void PointPillarsNusParam::clear_score_layer_name() {
  _impl_.score_layer_name_.ClearToEmpty();
}
inline const std::string& PointPillarsNusParam::score_layer_name() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.PointPillarsNusParam.score_layer_name)
  return _internal_score_layer_name();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void PointPillarsNusParam::set_score_layer_name(ArgT0&& arg0, ArgT... args) {
 
 _impl_.score_layer_name_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:vitis.ai.proto.PointPillarsNusParam.score_layer_name)
}
inline std::string* PointPillarsNusParam::mutable_score_layer_name() {
  std::string* _s = _internal_mutable_score_layer_name();
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.PointPillarsNusParam.score_layer_name)
  return _s;
}
inline const std::string& PointPillarsNusParam::_internal_score_layer_name() const {
  return _impl_.score_layer_name_.Get();
}
inline void PointPillarsNusParam::_internal_set_score_layer_name(const std::string& value) {
  
  _impl_.score_layer_name_.Set(value, GetArenaForAllocation());
}
inline std::string* PointPillarsNusParam::_internal_mutable_score_layer_name() {
  
  return _impl_.score_layer_name_.Mutable(GetArenaForAllocation());
}
inline std::string* PointPillarsNusParam::release_score_layer_name() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.PointPillarsNusParam.score_layer_name)
  return _impl_.score_layer_name_.Release();
}
inline void PointPillarsNusParam::set_allocated_score_layer_name(std::string* score_layer_name) {
  if (score_layer_name != nullptr) {
    
  } else {
    
  }
  _impl_.score_layer_name_.SetAllocated(score_layer_name, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (_impl_.score_layer_name_.IsDefault()) {
    _impl_.score_layer_name_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.PointPillarsNusParam.score_layer_name)
}

// string bbox_layer_name = 13;
inline void PointPillarsNusParam::clear_bbox_layer_name() {
  _impl_.bbox_layer_name_.ClearToEmpty();
}
inline const std::string& PointPillarsNusParam::bbox_layer_name() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.PointPillarsNusParam.bbox_layer_name)
  return _internal_bbox_layer_name();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void PointPillarsNusParam::set_bbox_layer_name(ArgT0&& arg0, ArgT... args) {
 
 _impl_.bbox_layer_name_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:vitis.ai.proto.PointPillarsNusParam.bbox_layer_name)
}
inline std::string* PointPillarsNusParam::mutable_bbox_layer_name() {
  std::string* _s = _internal_mutable_bbox_layer_name();
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.PointPillarsNusParam.bbox_layer_name)
  return _s;
}
inline const std::string& PointPillarsNusParam::_internal_bbox_layer_name() const {
  return _impl_.bbox_layer_name_.Get();
}
inline void PointPillarsNusParam::_internal_set_bbox_layer_name(const std::string& value) {
  
  _impl_.bbox_layer_name_.Set(value, GetArenaForAllocation());
}
inline std::string* PointPillarsNusParam::_internal_mutable_bbox_layer_name() {
  
  return _impl_.bbox_layer_name_.Mutable(GetArenaForAllocation());
}
inline std::string* PointPillarsNusParam::release_bbox_layer_name() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.PointPillarsNusParam.bbox_layer_name)
  return _impl_.bbox_layer_name_.Release();
}
inline void PointPillarsNusParam::set_allocated_bbox_layer_name(std::string* bbox_layer_name) {
  if (bbox_layer_name != nullptr) {
    
  } else {
    
  }
  _impl_.bbox_layer_name_.SetAllocated(bbox_layer_name, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (_impl_.bbox_layer_name_.IsDefault()) {
    _impl_.bbox_layer_name_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.PointPillarsNusParam.bbox_layer_name)
}

// string dir_layer_name = 14;
inline void PointPillarsNusParam::clear_dir_layer_name() {
  _impl_.dir_layer_name_.ClearToEmpty();
}
inline const std::string& PointPillarsNusParam::dir_layer_name() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.PointPillarsNusParam.dir_layer_name)
  return _internal_dir_layer_name();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void PointPillarsNusParam::set_dir_layer_name(ArgT0&& arg0, ArgT... args) {
 
 _impl_.dir_layer_name_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:vitis.ai.proto.PointPillarsNusParam.dir_layer_name)
}
inline std::string* PointPillarsNusParam::mutable_dir_layer_name() {
  std::string* _s = _internal_mutable_dir_layer_name();
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.PointPillarsNusParam.dir_layer_name)
  return _s;
}
inline const std::string& PointPillarsNusParam::_internal_dir_layer_name() const {
  return _impl_.dir_layer_name_.Get();
}
inline void PointPillarsNusParam::_internal_set_dir_layer_name(const std::string& value) {
  
  _impl_.dir_layer_name_.Set(value, GetArenaForAllocation());
}
inline std::string* PointPillarsNusParam::_internal_mutable_dir_layer_name() {
  
  return _impl_.dir_layer_name_.Mutable(GetArenaForAllocation());
}
inline std::string* PointPillarsNusParam::release_dir_layer_name() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.PointPillarsNusParam.dir_layer_name)
  return _impl_.dir_layer_name_.Release();
}
inline void PointPillarsNusParam::set_allocated_dir_layer_name(std::string* dir_layer_name) {
  if (dir_layer_name != nullptr) {
    
  } else {
    
  }
  _impl_.dir_layer_name_.SetAllocated(dir_layer_name, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (_impl_.dir_layer_name_.IsDefault()) {
    _impl_.dir_layer_name_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.PointPillarsNusParam.dir_layer_name)
}

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

// Segmentation3DParam

// bool enable_knn = 1;
inline void Segmentation3DParam::clear_enable_knn() {
  _impl_.enable_knn_ = false;
}
inline bool Segmentation3DParam::_internal_enable_knn() const {
  return _impl_.enable_knn_;
}
inline bool Segmentation3DParam::enable_knn() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.Segmentation3DParam.enable_knn)
  return _internal_enable_knn();
}
inline void Segmentation3DParam::_internal_set_enable_knn(bool value) {
  
  _impl_.enable_knn_ = value;
}
inline void Segmentation3DParam::set_enable_knn(bool value) {
  _internal_set_enable_knn(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.Segmentation3DParam.enable_knn)
}

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

// YoloV5Param

// .vitis.ai.proto.YoloV3Param yolo_param = 1;
inline bool YoloV5Param::_internal_has_yolo_param() const {
  return this != internal_default_instance() && _impl_.yolo_param_ != nullptr;
}
inline bool YoloV5Param::has_yolo_param() const {
  return _internal_has_yolo_param();
}
inline void YoloV5Param::clear_yolo_param() {
  if (GetArenaForAllocation() == nullptr && _impl_.yolo_param_ != nullptr) {
    delete _impl_.yolo_param_;
  }
  _impl_.yolo_param_ = nullptr;
}
inline const ::vitis::ai::proto::YoloV3Param& YoloV5Param::_internal_yolo_param() const {
  const ::vitis::ai::proto::YoloV3Param* p = _impl_.yolo_param_;
  return p != nullptr ? *p : reinterpret_cast<const ::vitis::ai::proto::YoloV3Param&>(
      ::vitis::ai::proto::_YoloV3Param_default_instance_);
}
inline const ::vitis::ai::proto::YoloV3Param& YoloV5Param::yolo_param() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.YoloV5Param.yolo_param)
  return _internal_yolo_param();
}
inline void YoloV5Param::unsafe_arena_set_allocated_yolo_param(
    ::vitis::ai::proto::YoloV3Param* yolo_param) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.yolo_param_);
  }
  _impl_.yolo_param_ = yolo_param;
  if (yolo_param) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:vitis.ai.proto.YoloV5Param.yolo_param)
}
inline ::vitis::ai::proto::YoloV3Param* YoloV5Param::release_yolo_param() {
  
  ::vitis::ai::proto::YoloV3Param* temp = _impl_.yolo_param_;
  _impl_.yolo_param_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::vitis::ai::proto::YoloV3Param* YoloV5Param::unsafe_arena_release_yolo_param() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.YoloV5Param.yolo_param)
  
  ::vitis::ai::proto::YoloV3Param* temp = _impl_.yolo_param_;
  _impl_.yolo_param_ = nullptr;
  return temp;
}
inline ::vitis::ai::proto::YoloV3Param* YoloV5Param::_internal_mutable_yolo_param() {
  
  if (_impl_.yolo_param_ == nullptr) {
    auto* p = CreateMaybeMessage<::vitis::ai::proto::YoloV3Param>(GetArenaForAllocation());
    _impl_.yolo_param_ = p;
  }
  return _impl_.yolo_param_;
}
inline ::vitis::ai::proto::YoloV3Param* YoloV5Param::mutable_yolo_param() {
  ::vitis::ai::proto::YoloV3Param* _msg = _internal_mutable_yolo_param();
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.YoloV5Param.yolo_param)
  return _msg;
}
inline void YoloV5Param::set_allocated_yolo_param(::vitis::ai::proto::YoloV3Param* yolo_param) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete _impl_.yolo_param_;
  }
  if (yolo_param) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
        ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(yolo_param);
    if (message_arena != submessage_arena) {
      yolo_param = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, yolo_param, submessage_arena);
    }
    
  } else {
    
  }
  _impl_.yolo_param_ = yolo_param;
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.YoloV5Param.yolo_param)
}

// repeated float stride = 2;
inline int YoloV5Param::_internal_stride_size() const {
  return _impl_.stride_.size();
}
inline int YoloV5Param::stride_size() const {
  return _internal_stride_size();
}
inline void YoloV5Param::clear_stride() {
  _impl_.stride_.Clear();
}
inline float YoloV5Param::_internal_stride(int index) const {
  return _impl_.stride_.Get(index);
}
inline float YoloV5Param::stride(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.YoloV5Param.stride)
  return _internal_stride(index);
}
inline void YoloV5Param::set_stride(int index, float value) {
  _impl_.stride_.Set(index, value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.YoloV5Param.stride)
}
inline void YoloV5Param::_internal_add_stride(float value) {
  _impl_.stride_.Add(value);
}
inline void YoloV5Param::add_stride(float value) {
  _internal_add_stride(value);
  // @@protoc_insertion_point(field_add:vitis.ai.proto.YoloV5Param.stride)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
YoloV5Param::_internal_stride() const {
  return _impl_.stride_;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
YoloV5Param::stride() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.YoloV5Param.stride)
  return _internal_stride();
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
YoloV5Param::_internal_mutable_stride() {
  return &_impl_.stride_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
YoloV5Param::mutable_stride() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.YoloV5Param.stride)
  return _internal_mutable_stride();
}

// float max_boxes_num = 3;
inline void YoloV5Param::clear_max_boxes_num() {
  _impl_.max_boxes_num_ = 0;
}
inline float YoloV5Param::_internal_max_boxes_num() const {
  return _impl_.max_boxes_num_;
}
inline float YoloV5Param::max_boxes_num() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.YoloV5Param.max_boxes_num)
  return _internal_max_boxes_num();
}
inline void YoloV5Param::_internal_set_max_boxes_num(float value) {
  
  _impl_.max_boxes_num_ = value;
}
inline void YoloV5Param::set_max_boxes_num(float value) {
  _internal_set_max_boxes_num(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.YoloV5Param.max_boxes_num)
}

// float max_nms_num = 4;
inline void YoloV5Param::clear_max_nms_num() {
  _impl_.max_nms_num_ = 0;
}
inline float YoloV5Param::_internal_max_nms_num() const {
  return _impl_.max_nms_num_;
}
inline float YoloV5Param::max_nms_num() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.YoloV5Param.max_nms_num)
  return _internal_max_nms_num();
}
inline void YoloV5Param::_internal_set_max_nms_num(float value) {
  
  _impl_.max_nms_num_ = value;
}
inline void YoloV5Param::set_max_nms_num(float value) {
  _internal_set_max_nms_num(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.YoloV5Param.max_nms_num)
}

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

// YoloV6Param

// int32 num_classes = 1;
inline void YoloV6Param::clear_num_classes() {
  _impl_.num_classes_ = 0;
}
inline int32_t YoloV6Param::_internal_num_classes() const {
  return _impl_.num_classes_;
}
inline int32_t YoloV6Param::num_classes() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.YoloV6Param.num_classes)
  return _internal_num_classes();
}
inline void YoloV6Param::_internal_set_num_classes(int32_t value) {
  
  _impl_.num_classes_ = value;
}
inline void YoloV6Param::set_num_classes(int32_t value) {
  _internal_set_num_classes(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.YoloV6Param.num_classes)
}

// int32 anchorCnt = 2;
inline void YoloV6Param::clear_anchorcnt() {
  _impl_.anchorcnt_ = 0;
}
inline int32_t YoloV6Param::_internal_anchorcnt() const {
  return _impl_.anchorcnt_;
}
inline int32_t YoloV6Param::anchorcnt() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.YoloV6Param.anchorCnt)
  return _internal_anchorcnt();
}
inline void YoloV6Param::_internal_set_anchorcnt(int32_t value) {
  
  _impl_.anchorcnt_ = value;
}
inline void YoloV6Param::set_anchorcnt(int32_t value) {
  _internal_set_anchorcnt(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.YoloV6Param.anchorCnt)
}

// float conf_threshold = 3;
inline void YoloV6Param::clear_conf_threshold() {
  _impl_.conf_threshold_ = 0;
}
inline float YoloV6Param::_internal_conf_threshold() const {
  return _impl_.conf_threshold_;
}
inline float YoloV6Param::conf_threshold() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.YoloV6Param.conf_threshold)
  return _internal_conf_threshold();
}
inline void YoloV6Param::_internal_set_conf_threshold(float value) {
  
  _impl_.conf_threshold_ = value;
}
inline void YoloV6Param::set_conf_threshold(float value) {
  _internal_set_conf_threshold(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.YoloV6Param.conf_threshold)
}

// float nms_threshold = 4;
inline void YoloV6Param::clear_nms_threshold() {
  _impl_.nms_threshold_ = 0;
}
inline float YoloV6Param::_internal_nms_threshold() const {
  return _impl_.nms_threshold_;
}
inline float YoloV6Param::nms_threshold() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.YoloV6Param.nms_threshold)
  return _internal_nms_threshold();
}
inline void YoloV6Param::_internal_set_nms_threshold(float value) {
  
  _impl_.nms_threshold_ = value;
}
inline void YoloV6Param::set_nms_threshold(float value) {
  _internal_set_nms_threshold(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.YoloV6Param.nms_threshold)
}

// repeated float biases = 5;
inline int YoloV6Param::_internal_biases_size() const {
  return _impl_.biases_.size();
}
inline int YoloV6Param::biases_size() const {
  return _internal_biases_size();
}
inline void YoloV6Param::clear_biases() {
  _impl_.biases_.Clear();
}
inline float YoloV6Param::_internal_biases(int index) const {
  return _impl_.biases_.Get(index);
}
inline float YoloV6Param::biases(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.YoloV6Param.biases)
  return _internal_biases(index);
}
inline void YoloV6Param::set_biases(int index, float value) {
  _impl_.biases_.Set(index, value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.YoloV6Param.biases)
}
inline void YoloV6Param::_internal_add_biases(float value) {
  _impl_.biases_.Add(value);
}
inline void YoloV6Param::add_biases(float value) {
  _internal_add_biases(value);
  // @@protoc_insertion_point(field_add:vitis.ai.proto.YoloV6Param.biases)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
YoloV6Param::_internal_biases() const {
  return _impl_.biases_;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
YoloV6Param::biases() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.YoloV6Param.biases)
  return _internal_biases();
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
YoloV6Param::_internal_mutable_biases() {
  return &_impl_.biases_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
YoloV6Param::mutable_biases() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.YoloV6Param.biases)
  return _internal_mutable_biases();
}

// bool test_mAP = 6;
inline void YoloV6Param::clear_test_map() {
  _impl_.test_map_ = false;
}
inline bool YoloV6Param::_internal_test_map() const {
  return _impl_.test_map_;
}
inline bool YoloV6Param::test_map() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.YoloV6Param.test_mAP)
  return _internal_test_map();
}
inline void YoloV6Param::_internal_set_test_map(bool value) {
  
  _impl_.test_map_ = value;
}
inline void YoloV6Param::set_test_map(bool value) {
  _internal_set_test_map(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.YoloV6Param.test_mAP)
}

// repeated string bbox_layer_name = 7;
inline int YoloV6Param::_internal_bbox_layer_name_size() const {
  return _impl_.bbox_layer_name_.size();
}
inline int YoloV6Param::bbox_layer_name_size() const {
  return _internal_bbox_layer_name_size();
}
inline void YoloV6Param::clear_bbox_layer_name() {
  _impl_.bbox_layer_name_.Clear();
}
inline std::string* YoloV6Param::add_bbox_layer_name() {
  std::string* _s = _internal_add_bbox_layer_name();
  // @@protoc_insertion_point(field_add_mutable:vitis.ai.proto.YoloV6Param.bbox_layer_name)
  return _s;
}
inline const std::string& YoloV6Param::_internal_bbox_layer_name(int index) const {
  return _impl_.bbox_layer_name_.Get(index);
}
inline const std::string& YoloV6Param::bbox_layer_name(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.YoloV6Param.bbox_layer_name)
  return _internal_bbox_layer_name(index);
}
inline std::string* YoloV6Param::mutable_bbox_layer_name(int index) {
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.YoloV6Param.bbox_layer_name)
  return _impl_.bbox_layer_name_.Mutable(index);
}
inline void YoloV6Param::set_bbox_layer_name(int index, const std::string& value) {
  _impl_.bbox_layer_name_.Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.YoloV6Param.bbox_layer_name)
}
inline void YoloV6Param::set_bbox_layer_name(int index, std::string&& value) {
  _impl_.bbox_layer_name_.Mutable(index)->assign(std::move(value));
  // @@protoc_insertion_point(field_set:vitis.ai.proto.YoloV6Param.bbox_layer_name)
}
inline void YoloV6Param::set_bbox_layer_name(int index, const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  _impl_.bbox_layer_name_.Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set_char:vitis.ai.proto.YoloV6Param.bbox_layer_name)
}
inline void YoloV6Param::set_bbox_layer_name(int index, const char* value, size_t size) {
  _impl_.bbox_layer_name_.Mutable(index)->assign(
    reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:vitis.ai.proto.YoloV6Param.bbox_layer_name)
}
inline std::string* YoloV6Param::_internal_add_bbox_layer_name() {
  return _impl_.bbox_layer_name_.Add();
}
inline void YoloV6Param::add_bbox_layer_name(const std::string& value) {
  _impl_.bbox_layer_name_.Add()->assign(value);
  // @@protoc_insertion_point(field_add:vitis.ai.proto.YoloV6Param.bbox_layer_name)
}
inline void YoloV6Param::add_bbox_layer_name(std::string&& value) {
  _impl_.bbox_layer_name_.Add(std::move(value));
  // @@protoc_insertion_point(field_add:vitis.ai.proto.YoloV6Param.bbox_layer_name)
}
inline void YoloV6Param::add_bbox_layer_name(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  _impl_.bbox_layer_name_.Add()->assign(value);
  // @@protoc_insertion_point(field_add_char:vitis.ai.proto.YoloV6Param.bbox_layer_name)
}
inline void YoloV6Param::add_bbox_layer_name(const char* value, size_t size) {
  _impl_.bbox_layer_name_.Add()->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_add_pointer:vitis.ai.proto.YoloV6Param.bbox_layer_name)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>&
YoloV6Param::bbox_layer_name() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.YoloV6Param.bbox_layer_name)
  return _impl_.bbox_layer_name_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>*
YoloV6Param::mutable_bbox_layer_name() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.YoloV6Param.bbox_layer_name)
  return &_impl_.bbox_layer_name_;
}

// repeated string cls_layer_name = 8;
inline int YoloV6Param::_internal_cls_layer_name_size() const {
  return _impl_.cls_layer_name_.size();
}
inline int YoloV6Param::cls_layer_name_size() const {
  return _internal_cls_layer_name_size();
}
inline void YoloV6Param::clear_cls_layer_name() {
  _impl_.cls_layer_name_.Clear();
}
inline std::string* YoloV6Param::add_cls_layer_name() {
  std::string* _s = _internal_add_cls_layer_name();
  // @@protoc_insertion_point(field_add_mutable:vitis.ai.proto.YoloV6Param.cls_layer_name)
  return _s;
}
inline const std::string& YoloV6Param::_internal_cls_layer_name(int index) const {
  return _impl_.cls_layer_name_.Get(index);
}
inline const std::string& YoloV6Param::cls_layer_name(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.YoloV6Param.cls_layer_name)
  return _internal_cls_layer_name(index);
}
inline std::string* YoloV6Param::mutable_cls_layer_name(int index) {
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.YoloV6Param.cls_layer_name)
  return _impl_.cls_layer_name_.Mutable(index);
}
inline void YoloV6Param::set_cls_layer_name(int index, const std::string& value) {
  _impl_.cls_layer_name_.Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.YoloV6Param.cls_layer_name)
}
inline void YoloV6Param::set_cls_layer_name(int index, std::string&& value) {
  _impl_.cls_layer_name_.Mutable(index)->assign(std::move(value));
  // @@protoc_insertion_point(field_set:vitis.ai.proto.YoloV6Param.cls_layer_name)
}
inline void YoloV6Param::set_cls_layer_name(int index, const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  _impl_.cls_layer_name_.Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set_char:vitis.ai.proto.YoloV6Param.cls_layer_name)
}
inline void YoloV6Param::set_cls_layer_name(int index, const char* value, size_t size) {
  _impl_.cls_layer_name_.Mutable(index)->assign(
    reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:vitis.ai.proto.YoloV6Param.cls_layer_name)
}
inline std::string* YoloV6Param::_internal_add_cls_layer_name() {
  return _impl_.cls_layer_name_.Add();
}
inline void YoloV6Param::add_cls_layer_name(const std::string& value) {
  _impl_.cls_layer_name_.Add()->assign(value);
  // @@protoc_insertion_point(field_add:vitis.ai.proto.YoloV6Param.cls_layer_name)
}
inline void YoloV6Param::add_cls_layer_name(std::string&& value) {
  _impl_.cls_layer_name_.Add(std::move(value));
  // @@protoc_insertion_point(field_add:vitis.ai.proto.YoloV6Param.cls_layer_name)
}
inline void YoloV6Param::add_cls_layer_name(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  _impl_.cls_layer_name_.Add()->assign(value);
  // @@protoc_insertion_point(field_add_char:vitis.ai.proto.YoloV6Param.cls_layer_name)
}
inline void YoloV6Param::add_cls_layer_name(const char* value, size_t size) {
  _impl_.cls_layer_name_.Add()->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_add_pointer:vitis.ai.proto.YoloV6Param.cls_layer_name)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>&
YoloV6Param::cls_layer_name() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.YoloV6Param.cls_layer_name)
  return _impl_.cls_layer_name_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>*
YoloV6Param::mutable_cls_layer_name() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.YoloV6Param.cls_layer_name)
  return &_impl_.cls_layer_name_;
}

// repeated float stride = 9;
inline int YoloV6Param::_internal_stride_size() const {
  return _impl_.stride_.size();
}
inline int YoloV6Param::stride_size() const {
  return _internal_stride_size();
}
inline void YoloV6Param::clear_stride() {
  _impl_.stride_.Clear();
}
inline float YoloV6Param::_internal_stride(int index) const {
  return _impl_.stride_.Get(index);
}
inline float YoloV6Param::stride(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.YoloV6Param.stride)
  return _internal_stride(index);
}
inline void YoloV6Param::set_stride(int index, float value) {
  _impl_.stride_.Set(index, value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.YoloV6Param.stride)
}
inline void YoloV6Param::_internal_add_stride(float value) {
  _impl_.stride_.Add(value);
}
inline void YoloV6Param::add_stride(float value) {
  _internal_add_stride(value);
  // @@protoc_insertion_point(field_add:vitis.ai.proto.YoloV6Param.stride)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
YoloV6Param::_internal_stride() const {
  return _impl_.stride_;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
YoloV6Param::stride() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.YoloV6Param.stride)
  return _internal_stride();
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
YoloV6Param::_internal_mutable_stride() {
  return &_impl_.stride_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
YoloV6Param::mutable_stride() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.YoloV6Param.stride)
  return _internal_mutable_stride();
}

// float max_boxes_num = 10;
inline void YoloV6Param::clear_max_boxes_num() {
  _impl_.max_boxes_num_ = 0;
}
inline float YoloV6Param::_internal_max_boxes_num() const {
  return _impl_.max_boxes_num_;
}
inline float YoloV6Param::max_boxes_num() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.YoloV6Param.max_boxes_num)
  return _internal_max_boxes_num();
}
inline void YoloV6Param::_internal_set_max_boxes_num(float value) {
  
  _impl_.max_boxes_num_ = value;
}
inline void YoloV6Param::set_max_boxes_num(float value) {
  _internal_set_max_boxes_num(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.YoloV6Param.max_boxes_num)
}

// float max_nms_num = 11;
inline void YoloV6Param::clear_max_nms_num() {
  _impl_.max_nms_num_ = 0;
}
inline float YoloV6Param::_internal_max_nms_num() const {
  return _impl_.max_nms_num_;
}
inline float YoloV6Param::max_nms_num() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.YoloV6Param.max_nms_num)
  return _internal_max_nms_num();
}
inline void YoloV6Param::_internal_set_max_nms_num(float value) {
  
  _impl_.max_nms_num_ = value;
}
inline void YoloV6Param::set_max_nms_num(float value) {
  _internal_set_max_nms_num(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.YoloV6Param.max_nms_num)
}

// bool without_dfl = 12;
inline void YoloV6Param::clear_without_dfl() {
  _impl_.without_dfl_ = false;
}
inline bool YoloV6Param::_internal_without_dfl() const {
  return _impl_.without_dfl_;
}
inline bool YoloV6Param::without_dfl() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.YoloV6Param.without_dfl)
  return _internal_without_dfl();
}
inline void YoloV6Param::_internal_set_without_dfl(bool value) {
  
  _impl_.without_dfl_ = value;
}
inline void YoloV6Param::set_without_dfl(bool value) {
  _internal_set_without_dfl(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.YoloV6Param.without_dfl)
}

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

// YoloV7Param

// float conf_thresh = 1;
inline void YoloV7Param::clear_conf_thresh() {
  _impl_.conf_thresh_ = 0;
}
inline float YoloV7Param::_internal_conf_thresh() const {
  return _impl_.conf_thresh_;
}
inline float YoloV7Param::conf_thresh() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.YoloV7Param.conf_thresh)
  return _internal_conf_thresh();
}
inline void YoloV7Param::_internal_set_conf_thresh(float value) {
  
  _impl_.conf_thresh_ = value;
}
inline void YoloV7Param::set_conf_thresh(float value) {
  _internal_set_conf_thresh(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.YoloV7Param.conf_thresh)
}

// float nms_threshold = 2;
inline void YoloV7Param::clear_nms_threshold() {
  _impl_.nms_threshold_ = 0;
}
inline float YoloV7Param::_internal_nms_threshold() const {
  return _impl_.nms_threshold_;
}
inline float YoloV7Param::nms_threshold() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.YoloV7Param.nms_threshold)
  return _internal_nms_threshold();
}
inline void YoloV7Param::_internal_set_nms_threshold(float value) {
  
  _impl_.nms_threshold_ = value;
}
inline void YoloV7Param::set_nms_threshold(float value) {
  _internal_set_nms_threshold(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.YoloV7Param.nms_threshold)
}

// int32 num_classes = 3;
inline void YoloV7Param::clear_num_classes() {
  _impl_.num_classes_ = 0;
}
inline int32_t YoloV7Param::_internal_num_classes() const {
  return _impl_.num_classes_;
}
inline int32_t YoloV7Param::num_classes() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.YoloV7Param.num_classes)
  return _internal_num_classes();
}
inline void YoloV7Param::_internal_set_num_classes(int32_t value) {
  
  _impl_.num_classes_ = value;
}
inline void YoloV7Param::set_num_classes(int32_t value) {
  _internal_set_num_classes(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.YoloV7Param.num_classes)
}

// repeated string detect_layer_name = 4;
inline int YoloV7Param::_internal_detect_layer_name_size() const {
  return _impl_.detect_layer_name_.size();
}
inline int YoloV7Param::detect_layer_name_size() const {
  return _internal_detect_layer_name_size();
}
inline void YoloV7Param::clear_detect_layer_name() {
  _impl_.detect_layer_name_.Clear();
}
inline std::string* YoloV7Param::add_detect_layer_name() {
  std::string* _s = _internal_add_detect_layer_name();
  // @@protoc_insertion_point(field_add_mutable:vitis.ai.proto.YoloV7Param.detect_layer_name)
  return _s;
}
inline const std::string& YoloV7Param::_internal_detect_layer_name(int index) const {
  return _impl_.detect_layer_name_.Get(index);
}
inline const std::string& YoloV7Param::detect_layer_name(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.YoloV7Param.detect_layer_name)
  return _internal_detect_layer_name(index);
}
inline std::string* YoloV7Param::mutable_detect_layer_name(int index) {
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.YoloV7Param.detect_layer_name)
  return _impl_.detect_layer_name_.Mutable(index);
}
inline void YoloV7Param::set_detect_layer_name(int index, const std::string& value) {
  _impl_.detect_layer_name_.Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.YoloV7Param.detect_layer_name)
}
inline void YoloV7Param::set_detect_layer_name(int index, std::string&& value) {
  _impl_.detect_layer_name_.Mutable(index)->assign(std::move(value));
  // @@protoc_insertion_point(field_set:vitis.ai.proto.YoloV7Param.detect_layer_name)
}
inline void YoloV7Param::set_detect_layer_name(int index, const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  _impl_.detect_layer_name_.Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set_char:vitis.ai.proto.YoloV7Param.detect_layer_name)
}
inline void YoloV7Param::set_detect_layer_name(int index, const char* value, size_t size) {
  _impl_.detect_layer_name_.Mutable(index)->assign(
    reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:vitis.ai.proto.YoloV7Param.detect_layer_name)
}
inline std::string* YoloV7Param::_internal_add_detect_layer_name() {
  return _impl_.detect_layer_name_.Add();
}
inline void YoloV7Param::add_detect_layer_name(const std::string& value) {
  _impl_.detect_layer_name_.Add()->assign(value);
  // @@protoc_insertion_point(field_add:vitis.ai.proto.YoloV7Param.detect_layer_name)
}
inline void YoloV7Param::add_detect_layer_name(std::string&& value) {
  _impl_.detect_layer_name_.Add(std::move(value));
  // @@protoc_insertion_point(field_add:vitis.ai.proto.YoloV7Param.detect_layer_name)
}
inline void YoloV7Param::add_detect_layer_name(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  _impl_.detect_layer_name_.Add()->assign(value);
  // @@protoc_insertion_point(field_add_char:vitis.ai.proto.YoloV7Param.detect_layer_name)
}
inline void YoloV7Param::add_detect_layer_name(const char* value, size_t size) {
  _impl_.detect_layer_name_.Add()->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_add_pointer:vitis.ai.proto.YoloV7Param.detect_layer_name)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>&
YoloV7Param::detect_layer_name() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.YoloV7Param.detect_layer_name)
  return _impl_.detect_layer_name_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>*
YoloV7Param::mutable_detect_layer_name() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.YoloV7Param.detect_layer_name)
  return &_impl_.detect_layer_name_;
}

// repeated float biases = 5;
inline int YoloV7Param::_internal_biases_size() const {
  return _impl_.biases_.size();
}
inline int YoloV7Param::biases_size() const {
  return _internal_biases_size();
}
inline void YoloV7Param::clear_biases() {
  _impl_.biases_.Clear();
}
inline float YoloV7Param::_internal_biases(int index) const {
  return _impl_.biases_.Get(index);
}
inline float YoloV7Param::biases(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.YoloV7Param.biases)
  return _internal_biases(index);
}
inline void YoloV7Param::set_biases(int index, float value) {
  _impl_.biases_.Set(index, value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.YoloV7Param.biases)
}
inline void YoloV7Param::_internal_add_biases(float value) {
  _impl_.biases_.Add(value);
}
inline void YoloV7Param::add_biases(float value) {
  _internal_add_biases(value);
  // @@protoc_insertion_point(field_add:vitis.ai.proto.YoloV7Param.biases)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
YoloV7Param::_internal_biases() const {
  return _impl_.biases_;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
YoloV7Param::biases() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.YoloV7Param.biases)
  return _internal_biases();
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
YoloV7Param::_internal_mutable_biases() {
  return &_impl_.biases_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
YoloV7Param::mutable_biases() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.YoloV7Param.biases)
  return _internal_mutable_biases();
}

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

// YoloV8Param

// float conf_thresh = 1;
inline void YoloV8Param::clear_conf_thresh() {
  _impl_.conf_thresh_ = 0;
}
inline float YoloV8Param::_internal_conf_thresh() const {
  return _impl_.conf_thresh_;
}
inline float YoloV8Param::conf_thresh() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.YoloV8Param.conf_thresh)
  return _internal_conf_thresh();
}
inline void YoloV8Param::_internal_set_conf_thresh(float value) {
  
  _impl_.conf_thresh_ = value;
}
inline void YoloV8Param::set_conf_thresh(float value) {
  _internal_set_conf_thresh(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.YoloV8Param.conf_thresh)
}

// float max_boxes_num = 2;
inline void YoloV8Param::clear_max_boxes_num() {
  _impl_.max_boxes_num_ = 0;
}
inline float YoloV8Param::_internal_max_boxes_num() const {
  return _impl_.max_boxes_num_;
}
inline float YoloV8Param::max_boxes_num() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.YoloV8Param.max_boxes_num)
  return _internal_max_boxes_num();
}
inline void YoloV8Param::_internal_set_max_boxes_num(float value) {
  
  _impl_.max_boxes_num_ = value;
}
inline void YoloV8Param::set_max_boxes_num(float value) {
  _internal_set_max_boxes_num(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.YoloV8Param.max_boxes_num)
}

// float nms_threshold = 3;
inline void YoloV8Param::clear_nms_threshold() {
  _impl_.nms_threshold_ = 0;
}
inline float YoloV8Param::_internal_nms_threshold() const {
  return _impl_.nms_threshold_;
}
inline float YoloV8Param::nms_threshold() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.YoloV8Param.nms_threshold)
  return _internal_nms_threshold();
}
inline void YoloV8Param::_internal_set_nms_threshold(float value) {
  
  _impl_.nms_threshold_ = value;
}
inline void YoloV8Param::set_nms_threshold(float value) {
  _internal_set_nms_threshold(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.YoloV8Param.nms_threshold)
}

// float max_nms_num = 4;
inline void YoloV8Param::clear_max_nms_num() {
  _impl_.max_nms_num_ = 0;
}
inline float YoloV8Param::_internal_max_nms_num() const {
  return _impl_.max_nms_num_;
}
inline float YoloV8Param::max_nms_num() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.YoloV8Param.max_nms_num)
  return _internal_max_nms_num();
}
inline void YoloV8Param::_internal_set_max_nms_num(float value) {
  
  _impl_.max_nms_num_ = value;
}
inline void YoloV8Param::set_max_nms_num(float value) {
  _internal_set_max_nms_num(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.YoloV8Param.max_nms_num)
}

// int32 num_classes = 5;
inline void YoloV8Param::clear_num_classes() {
  _impl_.num_classes_ = 0;
}
inline int32_t YoloV8Param::_internal_num_classes() const {
  return _impl_.num_classes_;
}
inline int32_t YoloV8Param::num_classes() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.YoloV8Param.num_classes)
  return _internal_num_classes();
}
inline void YoloV8Param::_internal_set_num_classes(int32_t value) {
  
  _impl_.num_classes_ = value;
}
inline void YoloV8Param::set_num_classes(int32_t value) {
  _internal_set_num_classes(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.YoloV8Param.num_classes)
}

// repeated string detect_layer_name = 6;
inline int YoloV8Param::_internal_detect_layer_name_size() const {
  return _impl_.detect_layer_name_.size();
}
inline int YoloV8Param::detect_layer_name_size() const {
  return _internal_detect_layer_name_size();
}
inline void YoloV8Param::clear_detect_layer_name() {
  _impl_.detect_layer_name_.Clear();
}
inline std::string* YoloV8Param::add_detect_layer_name() {
  std::string* _s = _internal_add_detect_layer_name();
  // @@protoc_insertion_point(field_add_mutable:vitis.ai.proto.YoloV8Param.detect_layer_name)
  return _s;
}
inline const std::string& YoloV8Param::_internal_detect_layer_name(int index) const {
  return _impl_.detect_layer_name_.Get(index);
}
inline const std::string& YoloV8Param::detect_layer_name(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.YoloV8Param.detect_layer_name)
  return _internal_detect_layer_name(index);
}
inline std::string* YoloV8Param::mutable_detect_layer_name(int index) {
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.YoloV8Param.detect_layer_name)
  return _impl_.detect_layer_name_.Mutable(index);
}
inline void YoloV8Param::set_detect_layer_name(int index, const std::string& value) {
  _impl_.detect_layer_name_.Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.YoloV8Param.detect_layer_name)
}
inline void YoloV8Param::set_detect_layer_name(int index, std::string&& value) {
  _impl_.detect_layer_name_.Mutable(index)->assign(std::move(value));
  // @@protoc_insertion_point(field_set:vitis.ai.proto.YoloV8Param.detect_layer_name)
}
inline void YoloV8Param::set_detect_layer_name(int index, const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  _impl_.detect_layer_name_.Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set_char:vitis.ai.proto.YoloV8Param.detect_layer_name)
}
inline void YoloV8Param::set_detect_layer_name(int index, const char* value, size_t size) {
  _impl_.detect_layer_name_.Mutable(index)->assign(
    reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:vitis.ai.proto.YoloV8Param.detect_layer_name)
}
inline std::string* YoloV8Param::_internal_add_detect_layer_name() {
  return _impl_.detect_layer_name_.Add();
}
inline void YoloV8Param::add_detect_layer_name(const std::string& value) {
  _impl_.detect_layer_name_.Add()->assign(value);
  // @@protoc_insertion_point(field_add:vitis.ai.proto.YoloV8Param.detect_layer_name)
}
inline void YoloV8Param::add_detect_layer_name(std::string&& value) {
  _impl_.detect_layer_name_.Add(std::move(value));
  // @@protoc_insertion_point(field_add:vitis.ai.proto.YoloV8Param.detect_layer_name)
}
inline void YoloV8Param::add_detect_layer_name(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  _impl_.detect_layer_name_.Add()->assign(value);
  // @@protoc_insertion_point(field_add_char:vitis.ai.proto.YoloV8Param.detect_layer_name)
}
inline void YoloV8Param::add_detect_layer_name(const char* value, size_t size) {
  _impl_.detect_layer_name_.Add()->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_add_pointer:vitis.ai.proto.YoloV8Param.detect_layer_name)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>&
YoloV8Param::detect_layer_name() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.YoloV8Param.detect_layer_name)
  return _impl_.detect_layer_name_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>*
YoloV8Param::mutable_detect_layer_name() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.YoloV8Param.detect_layer_name)
  return &_impl_.detect_layer_name_;
}

// repeated float stride = 7;
inline int YoloV8Param::_internal_stride_size() const {
  return _impl_.stride_.size();
}
inline int YoloV8Param::stride_size() const {
  return _internal_stride_size();
}
inline void YoloV8Param::clear_stride() {
  _impl_.stride_.Clear();
}
inline float YoloV8Param::_internal_stride(int index) const {
  return _impl_.stride_.Get(index);
}
inline float YoloV8Param::stride(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.YoloV8Param.stride)
  return _internal_stride(index);
}
inline void YoloV8Param::set_stride(int index, float value) {
  _impl_.stride_.Set(index, value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.YoloV8Param.stride)
}
inline void YoloV8Param::_internal_add_stride(float value) {
  _impl_.stride_.Add(value);
}
inline void YoloV8Param::add_stride(float value) {
  _internal_add_stride(value);
  // @@protoc_insertion_point(field_add:vitis.ai.proto.YoloV8Param.stride)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
YoloV8Param::_internal_stride() const {
  return _impl_.stride_;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
YoloV8Param::stride() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.YoloV8Param.stride)
  return _internal_stride();
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
YoloV8Param::_internal_mutable_stride() {
  return &_impl_.stride_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
YoloV8Param::mutable_stride() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.YoloV8Param.stride)
  return _internal_mutable_stride();
}

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

// FcosParam

// float pre_nms_thresh = 1;
inline void FcosParam::clear_pre_nms_thresh() {
  _impl_.pre_nms_thresh_ = 0;
}
inline float FcosParam::_internal_pre_nms_thresh() const {
  return _impl_.pre_nms_thresh_;
}
inline float FcosParam::pre_nms_thresh() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.FcosParam.pre_nms_thresh)
  return _internal_pre_nms_thresh();
}
inline void FcosParam::_internal_set_pre_nms_thresh(float value) {
  
  _impl_.pre_nms_thresh_ = value;
}
inline void FcosParam::set_pre_nms_thresh(float value) {
  _internal_set_pre_nms_thresh(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.FcosParam.pre_nms_thresh)
}

// int32 pre_nms_top_n = 2;
inline void FcosParam::clear_pre_nms_top_n() {
  _impl_.pre_nms_top_n_ = 0;
}
inline int32_t FcosParam::_internal_pre_nms_top_n() const {
  return _impl_.pre_nms_top_n_;
}
inline int32_t FcosParam::pre_nms_top_n() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.FcosParam.pre_nms_top_n)
  return _internal_pre_nms_top_n();
}
inline void FcosParam::_internal_set_pre_nms_top_n(int32_t value) {
  
  _impl_.pre_nms_top_n_ = value;
}
inline void FcosParam::set_pre_nms_top_n(int32_t value) {
  _internal_set_pre_nms_top_n(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.FcosParam.pre_nms_top_n)
}

// float nms_threshold = 3;
inline void FcosParam::clear_nms_threshold() {
  _impl_.nms_threshold_ = 0;
}
inline float FcosParam::_internal_nms_threshold() const {
  return _impl_.nms_threshold_;
}
inline float FcosParam::nms_threshold() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.FcosParam.nms_threshold)
  return _internal_nms_threshold();
}
inline void FcosParam::_internal_set_nms_threshold(float value) {
  
  _impl_.nms_threshold_ = value;
}
inline void FcosParam::set_nms_threshold(float value) {
  _internal_set_nms_threshold(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.FcosParam.nms_threshold)
}

// float fpn_post_nms_top_n = 4;
inline void FcosParam::clear_fpn_post_nms_top_n() {
  _impl_.fpn_post_nms_top_n_ = 0;
}
inline float FcosParam::_internal_fpn_post_nms_top_n() const {
  return _impl_.fpn_post_nms_top_n_;
}
inline float FcosParam::fpn_post_nms_top_n() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.FcosParam.fpn_post_nms_top_n)
  return _internal_fpn_post_nms_top_n();
}
inline void FcosParam::_internal_set_fpn_post_nms_top_n(float value) {
  
  _impl_.fpn_post_nms_top_n_ = value;
}
inline void FcosParam::set_fpn_post_nms_top_n(float value) {
  _internal_set_fpn_post_nms_top_n(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.FcosParam.fpn_post_nms_top_n)
}

// int32 num_classes = 5;
inline void FcosParam::clear_num_classes() {
  _impl_.num_classes_ = 0;
}
inline int32_t FcosParam::_internal_num_classes() const {
  return _impl_.num_classes_;
}
inline int32_t FcosParam::num_classes() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.FcosParam.num_classes)
  return _internal_num_classes();
}
inline void FcosParam::_internal_set_num_classes(int32_t value) {
  
  _impl_.num_classes_ = value;
}
inline void FcosParam::set_num_classes(int32_t value) {
  _internal_set_num_classes(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.FcosParam.num_classes)
}

// repeated string center_layer_name = 6;
inline int FcosParam::_internal_center_layer_name_size() const {
  return _impl_.center_layer_name_.size();
}
inline int FcosParam::center_layer_name_size() const {
  return _internal_center_layer_name_size();
}
inline void FcosParam::clear_center_layer_name() {
  _impl_.center_layer_name_.Clear();
}
inline std::string* FcosParam::add_center_layer_name() {
  std::string* _s = _internal_add_center_layer_name();
  // @@protoc_insertion_point(field_add_mutable:vitis.ai.proto.FcosParam.center_layer_name)
  return _s;
}
inline const std::string& FcosParam::_internal_center_layer_name(int index) const {
  return _impl_.center_layer_name_.Get(index);
}
inline const std::string& FcosParam::center_layer_name(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.FcosParam.center_layer_name)
  return _internal_center_layer_name(index);
}
inline std::string* FcosParam::mutable_center_layer_name(int index) {
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.FcosParam.center_layer_name)
  return _impl_.center_layer_name_.Mutable(index);
}
inline void FcosParam::set_center_layer_name(int index, const std::string& value) {
  _impl_.center_layer_name_.Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.FcosParam.center_layer_name)
}
inline void FcosParam::set_center_layer_name(int index, std::string&& value) {
  _impl_.center_layer_name_.Mutable(index)->assign(std::move(value));
  // @@protoc_insertion_point(field_set:vitis.ai.proto.FcosParam.center_layer_name)
}
inline void FcosParam::set_center_layer_name(int index, const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  _impl_.center_layer_name_.Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set_char:vitis.ai.proto.FcosParam.center_layer_name)
}
inline void FcosParam::set_center_layer_name(int index, const char* value, size_t size) {
  _impl_.center_layer_name_.Mutable(index)->assign(
    reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:vitis.ai.proto.FcosParam.center_layer_name)
}
inline std::string* FcosParam::_internal_add_center_layer_name() {
  return _impl_.center_layer_name_.Add();
}
inline void FcosParam::add_center_layer_name(const std::string& value) {
  _impl_.center_layer_name_.Add()->assign(value);
  // @@protoc_insertion_point(field_add:vitis.ai.proto.FcosParam.center_layer_name)
}
inline void FcosParam::add_center_layer_name(std::string&& value) {
  _impl_.center_layer_name_.Add(std::move(value));
  // @@protoc_insertion_point(field_add:vitis.ai.proto.FcosParam.center_layer_name)
}
inline void FcosParam::add_center_layer_name(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  _impl_.center_layer_name_.Add()->assign(value);
  // @@protoc_insertion_point(field_add_char:vitis.ai.proto.FcosParam.center_layer_name)
}
inline void FcosParam::add_center_layer_name(const char* value, size_t size) {
  _impl_.center_layer_name_.Add()->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_add_pointer:vitis.ai.proto.FcosParam.center_layer_name)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>&
FcosParam::center_layer_name() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.FcosParam.center_layer_name)
  return _impl_.center_layer_name_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>*
FcosParam::mutable_center_layer_name() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.FcosParam.center_layer_name)
  return &_impl_.center_layer_name_;
}

// repeated string cls_layer_name = 7;
inline int FcosParam::_internal_cls_layer_name_size() const {
  return _impl_.cls_layer_name_.size();
}
inline int FcosParam::cls_layer_name_size() const {
  return _internal_cls_layer_name_size();
}
inline void FcosParam::clear_cls_layer_name() {
  _impl_.cls_layer_name_.Clear();
}
inline std::string* FcosParam::add_cls_layer_name() {
  std::string* _s = _internal_add_cls_layer_name();
  // @@protoc_insertion_point(field_add_mutable:vitis.ai.proto.FcosParam.cls_layer_name)
  return _s;
}
inline const std::string& FcosParam::_internal_cls_layer_name(int index) const {
  return _impl_.cls_layer_name_.Get(index);
}
inline const std::string& FcosParam::cls_layer_name(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.FcosParam.cls_layer_name)
  return _internal_cls_layer_name(index);
}
inline std::string* FcosParam::mutable_cls_layer_name(int index) {
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.FcosParam.cls_layer_name)
  return _impl_.cls_layer_name_.Mutable(index);
}
inline void FcosParam::set_cls_layer_name(int index, const std::string& value) {
  _impl_.cls_layer_name_.Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.FcosParam.cls_layer_name)
}
inline void FcosParam::set_cls_layer_name(int index, std::string&& value) {
  _impl_.cls_layer_name_.Mutable(index)->assign(std::move(value));
  // @@protoc_insertion_point(field_set:vitis.ai.proto.FcosParam.cls_layer_name)
}
inline void FcosParam::set_cls_layer_name(int index, const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  _impl_.cls_layer_name_.Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set_char:vitis.ai.proto.FcosParam.cls_layer_name)
}
inline void FcosParam::set_cls_layer_name(int index, const char* value, size_t size) {
  _impl_.cls_layer_name_.Mutable(index)->assign(
    reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:vitis.ai.proto.FcosParam.cls_layer_name)
}
inline std::string* FcosParam::_internal_add_cls_layer_name() {
  return _impl_.cls_layer_name_.Add();
}
inline void FcosParam::add_cls_layer_name(const std::string& value) {
  _impl_.cls_layer_name_.Add()->assign(value);
  // @@protoc_insertion_point(field_add:vitis.ai.proto.FcosParam.cls_layer_name)
}
inline void FcosParam::add_cls_layer_name(std::string&& value) {
  _impl_.cls_layer_name_.Add(std::move(value));
  // @@protoc_insertion_point(field_add:vitis.ai.proto.FcosParam.cls_layer_name)
}
inline void FcosParam::add_cls_layer_name(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  _impl_.cls_layer_name_.Add()->assign(value);
  // @@protoc_insertion_point(field_add_char:vitis.ai.proto.FcosParam.cls_layer_name)
}
inline void FcosParam::add_cls_layer_name(const char* value, size_t size) {
  _impl_.cls_layer_name_.Add()->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_add_pointer:vitis.ai.proto.FcosParam.cls_layer_name)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>&
FcosParam::cls_layer_name() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.FcosParam.cls_layer_name)
  return _impl_.cls_layer_name_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>*
FcosParam::mutable_cls_layer_name() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.FcosParam.cls_layer_name)
  return &_impl_.cls_layer_name_;
}

// repeated string offset_layer_name = 8;
inline int FcosParam::_internal_offset_layer_name_size() const {
  return _impl_.offset_layer_name_.size();
}
inline int FcosParam::offset_layer_name_size() const {
  return _internal_offset_layer_name_size();
}
inline void FcosParam::clear_offset_layer_name() {
  _impl_.offset_layer_name_.Clear();
}
inline std::string* FcosParam::add_offset_layer_name() {
  std::string* _s = _internal_add_offset_layer_name();
  // @@protoc_insertion_point(field_add_mutable:vitis.ai.proto.FcosParam.offset_layer_name)
  return _s;
}
inline const std::string& FcosParam::_internal_offset_layer_name(int index) const {
  return _impl_.offset_layer_name_.Get(index);
}
inline const std::string& FcosParam::offset_layer_name(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.FcosParam.offset_layer_name)
  return _internal_offset_layer_name(index);
}
inline std::string* FcosParam::mutable_offset_layer_name(int index) {
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.FcosParam.offset_layer_name)
  return _impl_.offset_layer_name_.Mutable(index);
}
inline void FcosParam::set_offset_layer_name(int index, const std::string& value) {
  _impl_.offset_layer_name_.Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.FcosParam.offset_layer_name)
}
inline void FcosParam::set_offset_layer_name(int index, std::string&& value) {
  _impl_.offset_layer_name_.Mutable(index)->assign(std::move(value));
  // @@protoc_insertion_point(field_set:vitis.ai.proto.FcosParam.offset_layer_name)
}
inline void FcosParam::set_offset_layer_name(int index, const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  _impl_.offset_layer_name_.Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set_char:vitis.ai.proto.FcosParam.offset_layer_name)
}
inline void FcosParam::set_offset_layer_name(int index, const char* value, size_t size) {
  _impl_.offset_layer_name_.Mutable(index)->assign(
    reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:vitis.ai.proto.FcosParam.offset_layer_name)
}
inline std::string* FcosParam::_internal_add_offset_layer_name() {
  return _impl_.offset_layer_name_.Add();
}
inline void FcosParam::add_offset_layer_name(const std::string& value) {
  _impl_.offset_layer_name_.Add()->assign(value);
  // @@protoc_insertion_point(field_add:vitis.ai.proto.FcosParam.offset_layer_name)
}
inline void FcosParam::add_offset_layer_name(std::string&& value) {
  _impl_.offset_layer_name_.Add(std::move(value));
  // @@protoc_insertion_point(field_add:vitis.ai.proto.FcosParam.offset_layer_name)
}
inline void FcosParam::add_offset_layer_name(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  _impl_.offset_layer_name_.Add()->assign(value);
  // @@protoc_insertion_point(field_add_char:vitis.ai.proto.FcosParam.offset_layer_name)
}
inline void FcosParam::add_offset_layer_name(const char* value, size_t size) {
  _impl_.offset_layer_name_.Add()->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_add_pointer:vitis.ai.proto.FcosParam.offset_layer_name)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>&
FcosParam::offset_layer_name() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.FcosParam.offset_layer_name)
  return _impl_.offset_layer_name_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>*
FcosParam::mutable_offset_layer_name() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.FcosParam.offset_layer_name)
  return &_impl_.offset_layer_name_;
}

// repeated float stride = 9;
inline int FcosParam::_internal_stride_size() const {
  return _impl_.stride_.size();
}
inline int FcosParam::stride_size() const {
  return _internal_stride_size();
}
inline void FcosParam::clear_stride() {
  _impl_.stride_.Clear();
}
inline float FcosParam::_internal_stride(int index) const {
  return _impl_.stride_.Get(index);
}
inline float FcosParam::stride(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.FcosParam.stride)
  return _internal_stride(index);
}
inline void FcosParam::set_stride(int index, float value) {
  _impl_.stride_.Set(index, value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.FcosParam.stride)
}
inline void FcosParam::_internal_add_stride(float value) {
  _impl_.stride_.Add(value);
}
inline void FcosParam::add_stride(float value) {
  _internal_add_stride(value);
  // @@protoc_insertion_point(field_add:vitis.ai.proto.FcosParam.stride)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
FcosParam::_internal_stride() const {
  return _impl_.stride_;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
FcosParam::stride() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.FcosParam.stride)
  return _internal_stride();
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
FcosParam::_internal_mutable_stride() {
  return &_impl_.stride_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
FcosParam::mutable_stride() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.FcosParam.stride)
  return _internal_mutable_stride();
}

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

// BTSParam

// float mul_factor = 1;
inline void BTSParam::clear_mul_factor() {
  _impl_.mul_factor_ = 0;
}
inline float BTSParam::_internal_mul_factor() const {
  return _impl_.mul_factor_;
}
inline float BTSParam::mul_factor() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.BTSParam.mul_factor)
  return _internal_mul_factor();
}
inline void BTSParam::_internal_set_mul_factor(float value) {
  
  _impl_.mul_factor_ = value;
}
inline void BTSParam::set_mul_factor(float value) {
  _internal_set_mul_factor(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.BTSParam.mul_factor)
}

// float depth_scaled_factor = 2;
inline void BTSParam::clear_depth_scaled_factor() {
  _impl_.depth_scaled_factor_ = 0;
}
inline float BTSParam::_internal_depth_scaled_factor() const {
  return _impl_.depth_scaled_factor_;
}
inline float BTSParam::depth_scaled_factor() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.BTSParam.depth_scaled_factor)
  return _internal_depth_scaled_factor();
}
inline void BTSParam::_internal_set_depth_scaled_factor(float value) {
  
  _impl_.depth_scaled_factor_ = value;
}
inline void BTSParam::set_depth_scaled_factor(float value) {
  _internal_set_depth_scaled_factor(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.BTSParam.depth_scaled_factor)
}

// float hard_sigmoid_output_scale = 3;
inline void BTSParam::clear_hard_sigmoid_output_scale() {
  _impl_.hard_sigmoid_output_scale_ = 0;
}
inline float BTSParam::_internal_hard_sigmoid_output_scale() const {
  return _impl_.hard_sigmoid_output_scale_;
}
inline float BTSParam::hard_sigmoid_output_scale() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.BTSParam.hard_sigmoid_output_scale)
  return _internal_hard_sigmoid_output_scale();
}
inline void BTSParam::_internal_set_hard_sigmoid_output_scale(float value) {
  
  _impl_.hard_sigmoid_output_scale_ = value;
}
inline void BTSParam::set_hard_sigmoid_output_scale(float value) {
  _internal_set_hard_sigmoid_output_scale(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.BTSParam.hard_sigmoid_output_scale)
}

// float multiple_output_scale = 4;
inline void BTSParam::clear_multiple_output_scale() {
  _impl_.multiple_output_scale_ = 0;
}
inline float BTSParam::_internal_multiple_output_scale() const {
  return _impl_.multiple_output_scale_;
}
inline float BTSParam::multiple_output_scale() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.BTSParam.multiple_output_scale)
  return _internal_multiple_output_scale();
}
inline void BTSParam::_internal_set_multiple_output_scale(float value) {
  
  _impl_.multiple_output_scale_ = value;
}
inline void BTSParam::set_multiple_output_scale(float value) {
  _internal_set_multiple_output_scale(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.BTSParam.multiple_output_scale)
}

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

// PointPillarsBaseParam

// repeated float point_cloud_range = 1;
inline int PointPillarsBaseParam::_internal_point_cloud_range_size() const {
  return _impl_.point_cloud_range_.size();
}
inline int PointPillarsBaseParam::point_cloud_range_size() const {
  return _internal_point_cloud_range_size();
}
inline void PointPillarsBaseParam::clear_point_cloud_range() {
  _impl_.point_cloud_range_.Clear();
}
inline float PointPillarsBaseParam::_internal_point_cloud_range(int index) const {
  return _impl_.point_cloud_range_.Get(index);
}
inline float PointPillarsBaseParam::point_cloud_range(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.PointPillarsBaseParam.point_cloud_range)
  return _internal_point_cloud_range(index);
}
inline void PointPillarsBaseParam::set_point_cloud_range(int index, float value) {
  _impl_.point_cloud_range_.Set(index, value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.PointPillarsBaseParam.point_cloud_range)
}
inline void PointPillarsBaseParam::_internal_add_point_cloud_range(float value) {
  _impl_.point_cloud_range_.Add(value);
}
inline void PointPillarsBaseParam::add_point_cloud_range(float value) {
  _internal_add_point_cloud_range(value);
  // @@protoc_insertion_point(field_add:vitis.ai.proto.PointPillarsBaseParam.point_cloud_range)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
PointPillarsBaseParam::_internal_point_cloud_range() const {
  return _impl_.point_cloud_range_;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
PointPillarsBaseParam::point_cloud_range() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.PointPillarsBaseParam.point_cloud_range)
  return _internal_point_cloud_range();
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
PointPillarsBaseParam::_internal_mutable_point_cloud_range() {
  return &_impl_.point_cloud_range_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
PointPillarsBaseParam::mutable_point_cloud_range() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.PointPillarsBaseParam.point_cloud_range)
  return _internal_mutable_point_cloud_range();
}

// repeated float voxel_size = 2;
inline int PointPillarsBaseParam::_internal_voxel_size_size() const {
  return _impl_.voxel_size_.size();
}
inline int PointPillarsBaseParam::voxel_size_size() const {
  return _internal_voxel_size_size();
}
inline void PointPillarsBaseParam::clear_voxel_size() {
  _impl_.voxel_size_.Clear();
}
inline float PointPillarsBaseParam::_internal_voxel_size(int index) const {
  return _impl_.voxel_size_.Get(index);
}
inline float PointPillarsBaseParam::voxel_size(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.PointPillarsBaseParam.voxel_size)
  return _internal_voxel_size(index);
}
inline void PointPillarsBaseParam::set_voxel_size(int index, float value) {
  _impl_.voxel_size_.Set(index, value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.PointPillarsBaseParam.voxel_size)
}
inline void PointPillarsBaseParam::_internal_add_voxel_size(float value) {
  _impl_.voxel_size_.Add(value);
}
inline void PointPillarsBaseParam::add_voxel_size(float value) {
  _internal_add_voxel_size(value);
  // @@protoc_insertion_point(field_add:vitis.ai.proto.PointPillarsBaseParam.voxel_size)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
PointPillarsBaseParam::_internal_voxel_size() const {
  return _impl_.voxel_size_;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
PointPillarsBaseParam::voxel_size() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.PointPillarsBaseParam.voxel_size)
  return _internal_voxel_size();
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
PointPillarsBaseParam::_internal_mutable_voxel_size() {
  return &_impl_.voxel_size_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
PointPillarsBaseParam::mutable_voxel_size() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.PointPillarsBaseParam.voxel_size)
  return _internal_mutable_voxel_size();
}

// int32 points_dim = 3;
inline void PointPillarsBaseParam::clear_points_dim() {
  _impl_.points_dim_ = 0;
}
inline int32_t PointPillarsBaseParam::_internal_points_dim() const {
  return _impl_.points_dim_;
}
inline int32_t PointPillarsBaseParam::points_dim() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.PointPillarsBaseParam.points_dim)
  return _internal_points_dim();
}
inline void PointPillarsBaseParam::_internal_set_points_dim(int32_t value) {
  
  _impl_.points_dim_ = value;
}
inline void PointPillarsBaseParam::set_points_dim(int32_t value) {
  _internal_set_points_dim(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.PointPillarsBaseParam.points_dim)
}

// int32 max_points_num = 4;
inline void PointPillarsBaseParam::clear_max_points_num() {
  _impl_.max_points_num_ = 0;
}
inline int32_t PointPillarsBaseParam::_internal_max_points_num() const {
  return _impl_.max_points_num_;
}
inline int32_t PointPillarsBaseParam::max_points_num() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.PointPillarsBaseParam.max_points_num)
  return _internal_max_points_num();
}
inline void PointPillarsBaseParam::_internal_set_max_points_num(int32_t value) {
  
  _impl_.max_points_num_ = value;
}
inline void PointPillarsBaseParam::set_max_points_num(int32_t value) {
  _internal_set_max_points_num(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.PointPillarsBaseParam.max_points_num)
}

// int32 max_voxels_num = 5;
inline void PointPillarsBaseParam::clear_max_voxels_num() {
  _impl_.max_voxels_num_ = 0;
}
inline int32_t PointPillarsBaseParam::_internal_max_voxels_num() const {
  return _impl_.max_voxels_num_;
}
inline int32_t PointPillarsBaseParam::max_voxels_num() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.PointPillarsBaseParam.max_voxels_num)
  return _internal_max_voxels_num();
}
inline void PointPillarsBaseParam::_internal_set_max_voxels_num(int32_t value) {
  
  _impl_.max_voxels_num_ = value;
}
inline void PointPillarsBaseParam::set_max_voxels_num(int32_t value) {
  _internal_set_max_voxels_num(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.PointPillarsBaseParam.max_voxels_num)
}

// int32 in_channels = 6;
inline void PointPillarsBaseParam::clear_in_channels() {
  _impl_.in_channels_ = 0;
}
inline int32_t PointPillarsBaseParam::_internal_in_channels() const {
  return _impl_.in_channels_;
}
inline int32_t PointPillarsBaseParam::in_channels() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.PointPillarsBaseParam.in_channels)
  return _internal_in_channels();
}
inline void PointPillarsBaseParam::_internal_set_in_channels(int32_t value) {
  
  _impl_.in_channels_ = value;
}
inline void PointPillarsBaseParam::set_in_channels(int32_t value) {
  _internal_set_in_channels(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.PointPillarsBaseParam.in_channels)
}

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

// PointPillarsKittiParam

// .vitis.ai.proto.PointPillarsBaseParam base = 1;
inline bool PointPillarsKittiParam::_internal_has_base() const {
  return this != internal_default_instance() && _impl_.base_ != nullptr;
}
inline bool PointPillarsKittiParam::has_base() const {
  return _internal_has_base();
}
inline void PointPillarsKittiParam::clear_base() {
  if (GetArenaForAllocation() == nullptr && _impl_.base_ != nullptr) {
    delete _impl_.base_;
  }
  _impl_.base_ = nullptr;
}
inline const ::vitis::ai::proto::PointPillarsBaseParam& PointPillarsKittiParam::_internal_base() const {
  const ::vitis::ai::proto::PointPillarsBaseParam* p = _impl_.base_;
  return p != nullptr ? *p : reinterpret_cast<const ::vitis::ai::proto::PointPillarsBaseParam&>(
      ::vitis::ai::proto::_PointPillarsBaseParam_default_instance_);
}
inline const ::vitis::ai::proto::PointPillarsBaseParam& PointPillarsKittiParam::base() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.PointPillarsKittiParam.base)
  return _internal_base();
}
inline void PointPillarsKittiParam::unsafe_arena_set_allocated_base(
    ::vitis::ai::proto::PointPillarsBaseParam* base) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.base_);
  }
  _impl_.base_ = base;
  if (base) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:vitis.ai.proto.PointPillarsKittiParam.base)
}
inline ::vitis::ai::proto::PointPillarsBaseParam* PointPillarsKittiParam::release_base() {
  
  ::vitis::ai::proto::PointPillarsBaseParam* temp = _impl_.base_;
  _impl_.base_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::vitis::ai::proto::PointPillarsBaseParam* PointPillarsKittiParam::unsafe_arena_release_base() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.PointPillarsKittiParam.base)
  
  ::vitis::ai::proto::PointPillarsBaseParam* temp = _impl_.base_;
  _impl_.base_ = nullptr;
  return temp;
}
inline ::vitis::ai::proto::PointPillarsBaseParam* PointPillarsKittiParam::_internal_mutable_base() {
  
  if (_impl_.base_ == nullptr) {
    auto* p = CreateMaybeMessage<::vitis::ai::proto::PointPillarsBaseParam>(GetArenaForAllocation());
    _impl_.base_ = p;
  }
  return _impl_.base_;
}
inline ::vitis::ai::proto::PointPillarsBaseParam* PointPillarsKittiParam::mutable_base() {
  ::vitis::ai::proto::PointPillarsBaseParam* _msg = _internal_mutable_base();
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.PointPillarsKittiParam.base)
  return _msg;
}
inline void PointPillarsKittiParam::set_allocated_base(::vitis::ai::proto::PointPillarsBaseParam* base) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete _impl_.base_;
  }
  if (base) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
        ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(base);
    if (message_arena != submessage_arena) {
      base = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, base, submessage_arena);
    }
    
  } else {
    
  }
  _impl_.base_ = base;
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.PointPillarsKittiParam.base)
}

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

// X_Autonomous3DParam_CenterPointOutputLayer

// string reg_layer_name = 1;
inline void X_Autonomous3DParam_CenterPointOutputLayer::clear_reg_layer_name() {
  _impl_.reg_layer_name_.ClearToEmpty();
}
inline const std::string& X_Autonomous3DParam_CenterPointOutputLayer::reg_layer_name() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.X_Autonomous3DParam.CenterPointOutputLayer.reg_layer_name)
  return _internal_reg_layer_name();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void X_Autonomous3DParam_CenterPointOutputLayer::set_reg_layer_name(ArgT0&& arg0, ArgT... args) {
 
 _impl_.reg_layer_name_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:vitis.ai.proto.X_Autonomous3DParam.CenterPointOutputLayer.reg_layer_name)
}
inline std::string* X_Autonomous3DParam_CenterPointOutputLayer::mutable_reg_layer_name() {
  std::string* _s = _internal_mutable_reg_layer_name();
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.X_Autonomous3DParam.CenterPointOutputLayer.reg_layer_name)
  return _s;
}
inline const std::string& X_Autonomous3DParam_CenterPointOutputLayer::_internal_reg_layer_name() const {
  return _impl_.reg_layer_name_.Get();
}
inline void X_Autonomous3DParam_CenterPointOutputLayer::_internal_set_reg_layer_name(const std::string& value) {
  
  _impl_.reg_layer_name_.Set(value, GetArenaForAllocation());
}
inline std::string* X_Autonomous3DParam_CenterPointOutputLayer::_internal_mutable_reg_layer_name() {
  
  return _impl_.reg_layer_name_.Mutable(GetArenaForAllocation());
}
inline std::string* X_Autonomous3DParam_CenterPointOutputLayer::release_reg_layer_name() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.X_Autonomous3DParam.CenterPointOutputLayer.reg_layer_name)
  return _impl_.reg_layer_name_.Release();
}
inline void X_Autonomous3DParam_CenterPointOutputLayer::set_allocated_reg_layer_name(std::string* reg_layer_name) {
  if (reg_layer_name != nullptr) {
    
  } else {
    
  }
  _impl_.reg_layer_name_.SetAllocated(reg_layer_name, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (_impl_.reg_layer_name_.IsDefault()) {
    _impl_.reg_layer_name_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.X_Autonomous3DParam.CenterPointOutputLayer.reg_layer_name)
}

// string height_layer_name = 2;
inline void X_Autonomous3DParam_CenterPointOutputLayer::clear_height_layer_name() {
  _impl_.height_layer_name_.ClearToEmpty();
}
inline const std::string& X_Autonomous3DParam_CenterPointOutputLayer::height_layer_name() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.X_Autonomous3DParam.CenterPointOutputLayer.height_layer_name)
  return _internal_height_layer_name();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void X_Autonomous3DParam_CenterPointOutputLayer::set_height_layer_name(ArgT0&& arg0, ArgT... args) {
 
 _impl_.height_layer_name_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:vitis.ai.proto.X_Autonomous3DParam.CenterPointOutputLayer.height_layer_name)
}
inline std::string* X_Autonomous3DParam_CenterPointOutputLayer::mutable_height_layer_name() {
  std::string* _s = _internal_mutable_height_layer_name();
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.X_Autonomous3DParam.CenterPointOutputLayer.height_layer_name)
  return _s;
}
inline const std::string& X_Autonomous3DParam_CenterPointOutputLayer::_internal_height_layer_name() const {
  return _impl_.height_layer_name_.Get();
}
inline void X_Autonomous3DParam_CenterPointOutputLayer::_internal_set_height_layer_name(const std::string& value) {
  
  _impl_.height_layer_name_.Set(value, GetArenaForAllocation());
}
inline std::string* X_Autonomous3DParam_CenterPointOutputLayer::_internal_mutable_height_layer_name() {
  
  return _impl_.height_layer_name_.Mutable(GetArenaForAllocation());
}
inline std::string* X_Autonomous3DParam_CenterPointOutputLayer::release_height_layer_name() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.X_Autonomous3DParam.CenterPointOutputLayer.height_layer_name)
  return _impl_.height_layer_name_.Release();
}
inline void X_Autonomous3DParam_CenterPointOutputLayer::set_allocated_height_layer_name(std::string* height_layer_name) {
  if (height_layer_name != nullptr) {
    
  } else {
    
  }
  _impl_.height_layer_name_.SetAllocated(height_layer_name, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (_impl_.height_layer_name_.IsDefault()) {
    _impl_.height_layer_name_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.X_Autonomous3DParam.CenterPointOutputLayer.height_layer_name)
}

// string dim_layer_name = 3;
inline void X_Autonomous3DParam_CenterPointOutputLayer::clear_dim_layer_name() {
  _impl_.dim_layer_name_.ClearToEmpty();
}
inline const std::string& X_Autonomous3DParam_CenterPointOutputLayer::dim_layer_name() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.X_Autonomous3DParam.CenterPointOutputLayer.dim_layer_name)
  return _internal_dim_layer_name();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void X_Autonomous3DParam_CenterPointOutputLayer::set_dim_layer_name(ArgT0&& arg0, ArgT... args) {
 
 _impl_.dim_layer_name_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:vitis.ai.proto.X_Autonomous3DParam.CenterPointOutputLayer.dim_layer_name)
}
inline std::string* X_Autonomous3DParam_CenterPointOutputLayer::mutable_dim_layer_name() {
  std::string* _s = _internal_mutable_dim_layer_name();
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.X_Autonomous3DParam.CenterPointOutputLayer.dim_layer_name)
  return _s;
}
inline const std::string& X_Autonomous3DParam_CenterPointOutputLayer::_internal_dim_layer_name() const {
  return _impl_.dim_layer_name_.Get();
}
inline void X_Autonomous3DParam_CenterPointOutputLayer::_internal_set_dim_layer_name(const std::string& value) {
  
  _impl_.dim_layer_name_.Set(value, GetArenaForAllocation());
}
inline std::string* X_Autonomous3DParam_CenterPointOutputLayer::_internal_mutable_dim_layer_name() {
  
  return _impl_.dim_layer_name_.Mutable(GetArenaForAllocation());
}
inline std::string* X_Autonomous3DParam_CenterPointOutputLayer::release_dim_layer_name() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.X_Autonomous3DParam.CenterPointOutputLayer.dim_layer_name)
  return _impl_.dim_layer_name_.Release();
}
inline void X_Autonomous3DParam_CenterPointOutputLayer::set_allocated_dim_layer_name(std::string* dim_layer_name) {
  if (dim_layer_name != nullptr) {
    
  } else {
    
  }
  _impl_.dim_layer_name_.SetAllocated(dim_layer_name, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (_impl_.dim_layer_name_.IsDefault()) {
    _impl_.dim_layer_name_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.X_Autonomous3DParam.CenterPointOutputLayer.dim_layer_name)
}

// string rot_layer_name = 4;
inline void X_Autonomous3DParam_CenterPointOutputLayer::clear_rot_layer_name() {
  _impl_.rot_layer_name_.ClearToEmpty();
}
inline const std::string& X_Autonomous3DParam_CenterPointOutputLayer::rot_layer_name() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.X_Autonomous3DParam.CenterPointOutputLayer.rot_layer_name)
  return _internal_rot_layer_name();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void X_Autonomous3DParam_CenterPointOutputLayer::set_rot_layer_name(ArgT0&& arg0, ArgT... args) {
 
 _impl_.rot_layer_name_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:vitis.ai.proto.X_Autonomous3DParam.CenterPointOutputLayer.rot_layer_name)
}
inline std::string* X_Autonomous3DParam_CenterPointOutputLayer::mutable_rot_layer_name() {
  std::string* _s = _internal_mutable_rot_layer_name();
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.X_Autonomous3DParam.CenterPointOutputLayer.rot_layer_name)
  return _s;
}
inline const std::string& X_Autonomous3DParam_CenterPointOutputLayer::_internal_rot_layer_name() const {
  return _impl_.rot_layer_name_.Get();
}
inline void X_Autonomous3DParam_CenterPointOutputLayer::_internal_set_rot_layer_name(const std::string& value) {
  
  _impl_.rot_layer_name_.Set(value, GetArenaForAllocation());
}
inline std::string* X_Autonomous3DParam_CenterPointOutputLayer::_internal_mutable_rot_layer_name() {
  
  return _impl_.rot_layer_name_.Mutable(GetArenaForAllocation());
}
inline std::string* X_Autonomous3DParam_CenterPointOutputLayer::release_rot_layer_name() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.X_Autonomous3DParam.CenterPointOutputLayer.rot_layer_name)
  return _impl_.rot_layer_name_.Release();
}
inline void X_Autonomous3DParam_CenterPointOutputLayer::set_allocated_rot_layer_name(std::string* rot_layer_name) {
  if (rot_layer_name != nullptr) {
    
  } else {
    
  }
  _impl_.rot_layer_name_.SetAllocated(rot_layer_name, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (_impl_.rot_layer_name_.IsDefault()) {
    _impl_.rot_layer_name_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.X_Autonomous3DParam.CenterPointOutputLayer.rot_layer_name)
}

// string heatmap_layer_name = 5;
inline void X_Autonomous3DParam_CenterPointOutputLayer::clear_heatmap_layer_name() {
  _impl_.heatmap_layer_name_.ClearToEmpty();
}
inline const std::string& X_Autonomous3DParam_CenterPointOutputLayer::heatmap_layer_name() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.X_Autonomous3DParam.CenterPointOutputLayer.heatmap_layer_name)
  return _internal_heatmap_layer_name();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void X_Autonomous3DParam_CenterPointOutputLayer::set_heatmap_layer_name(ArgT0&& arg0, ArgT... args) {
 
 _impl_.heatmap_layer_name_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:vitis.ai.proto.X_Autonomous3DParam.CenterPointOutputLayer.heatmap_layer_name)
}
inline std::string* X_Autonomous3DParam_CenterPointOutputLayer::mutable_heatmap_layer_name() {
  std::string* _s = _internal_mutable_heatmap_layer_name();
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.X_Autonomous3DParam.CenterPointOutputLayer.heatmap_layer_name)
  return _s;
}
inline const std::string& X_Autonomous3DParam_CenterPointOutputLayer::_internal_heatmap_layer_name() const {
  return _impl_.heatmap_layer_name_.Get();
}
inline void X_Autonomous3DParam_CenterPointOutputLayer::_internal_set_heatmap_layer_name(const std::string& value) {
  
  _impl_.heatmap_layer_name_.Set(value, GetArenaForAllocation());
}
inline std::string* X_Autonomous3DParam_CenterPointOutputLayer::_internal_mutable_heatmap_layer_name() {
  
  return _impl_.heatmap_layer_name_.Mutable(GetArenaForAllocation());
}
inline std::string* X_Autonomous3DParam_CenterPointOutputLayer::release_heatmap_layer_name() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.X_Autonomous3DParam.CenterPointOutputLayer.heatmap_layer_name)
  return _impl_.heatmap_layer_name_.Release();
}
inline void X_Autonomous3DParam_CenterPointOutputLayer::set_allocated_heatmap_layer_name(std::string* heatmap_layer_name) {
  if (heatmap_layer_name != nullptr) {
    
  } else {
    
  }
  _impl_.heatmap_layer_name_.SetAllocated(heatmap_layer_name, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (_impl_.heatmap_layer_name_.IsDefault()) {
    _impl_.heatmap_layer_name_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.X_Autonomous3DParam.CenterPointOutputLayer.heatmap_layer_name)
}

// string iou_quality_layer_name = 6;
inline void X_Autonomous3DParam_CenterPointOutputLayer::clear_iou_quality_layer_name() {
  _impl_.iou_quality_layer_name_.ClearToEmpty();
}
inline const std::string& X_Autonomous3DParam_CenterPointOutputLayer::iou_quality_layer_name() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.X_Autonomous3DParam.CenterPointOutputLayer.iou_quality_layer_name)
  return _internal_iou_quality_layer_name();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void X_Autonomous3DParam_CenterPointOutputLayer::set_iou_quality_layer_name(ArgT0&& arg0, ArgT... args) {
 
 _impl_.iou_quality_layer_name_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:vitis.ai.proto.X_Autonomous3DParam.CenterPointOutputLayer.iou_quality_layer_name)
}
inline std::string* X_Autonomous3DParam_CenterPointOutputLayer::mutable_iou_quality_layer_name() {
  std::string* _s = _internal_mutable_iou_quality_layer_name();
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.X_Autonomous3DParam.CenterPointOutputLayer.iou_quality_layer_name)
  return _s;
}
inline const std::string& X_Autonomous3DParam_CenterPointOutputLayer::_internal_iou_quality_layer_name() const {
  return _impl_.iou_quality_layer_name_.Get();
}
inline void X_Autonomous3DParam_CenterPointOutputLayer::_internal_set_iou_quality_layer_name(const std::string& value) {
  
  _impl_.iou_quality_layer_name_.Set(value, GetArenaForAllocation());
}
inline std::string* X_Autonomous3DParam_CenterPointOutputLayer::_internal_mutable_iou_quality_layer_name() {
  
  return _impl_.iou_quality_layer_name_.Mutable(GetArenaForAllocation());
}
inline std::string* X_Autonomous3DParam_CenterPointOutputLayer::release_iou_quality_layer_name() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.X_Autonomous3DParam.CenterPointOutputLayer.iou_quality_layer_name)
  return _impl_.iou_quality_layer_name_.Release();
}
inline void X_Autonomous3DParam_CenterPointOutputLayer::set_allocated_iou_quality_layer_name(std::string* iou_quality_layer_name) {
  if (iou_quality_layer_name != nullptr) {
    
  } else {
    
  }
  _impl_.iou_quality_layer_name_.SetAllocated(iou_quality_layer_name, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (_impl_.iou_quality_layer_name_.IsDefault()) {
    _impl_.iou_quality_layer_name_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.X_Autonomous3DParam.CenterPointOutputLayer.iou_quality_layer_name)
}

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

// X_Autonomous3DParam

// repeated float point_cloud_range = 1;
inline int X_Autonomous3DParam::_internal_point_cloud_range_size() const {
  return _impl_.point_cloud_range_.size();
}
inline int X_Autonomous3DParam::point_cloud_range_size() const {
  return _internal_point_cloud_range_size();
}
inline void X_Autonomous3DParam::clear_point_cloud_range() {
  _impl_.point_cloud_range_.Clear();
}
inline float X_Autonomous3DParam::_internal_point_cloud_range(int index) const {
  return _impl_.point_cloud_range_.Get(index);
}
inline float X_Autonomous3DParam::point_cloud_range(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.X_Autonomous3DParam.point_cloud_range)
  return _internal_point_cloud_range(index);
}
inline void X_Autonomous3DParam::set_point_cloud_range(int index, float value) {
  _impl_.point_cloud_range_.Set(index, value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.X_Autonomous3DParam.point_cloud_range)
}
inline void X_Autonomous3DParam::_internal_add_point_cloud_range(float value) {
  _impl_.point_cloud_range_.Add(value);
}
inline void X_Autonomous3DParam::add_point_cloud_range(float value) {
  _internal_add_point_cloud_range(value);
  // @@protoc_insertion_point(field_add:vitis.ai.proto.X_Autonomous3DParam.point_cloud_range)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
X_Autonomous3DParam::_internal_point_cloud_range() const {
  return _impl_.point_cloud_range_;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
X_Autonomous3DParam::point_cloud_range() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.X_Autonomous3DParam.point_cloud_range)
  return _internal_point_cloud_range();
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
X_Autonomous3DParam::_internal_mutable_point_cloud_range() {
  return &_impl_.point_cloud_range_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
X_Autonomous3DParam::mutable_point_cloud_range() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.X_Autonomous3DParam.point_cloud_range)
  return _internal_mutable_point_cloud_range();
}

// repeated float voxel_size = 2;
inline int X_Autonomous3DParam::_internal_voxel_size_size() const {
  return _impl_.voxel_size_.size();
}
inline int X_Autonomous3DParam::voxel_size_size() const {
  return _internal_voxel_size_size();
}
inline void X_Autonomous3DParam::clear_voxel_size() {
  _impl_.voxel_size_.Clear();
}
inline float X_Autonomous3DParam::_internal_voxel_size(int index) const {
  return _impl_.voxel_size_.Get(index);
}
inline float X_Autonomous3DParam::voxel_size(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.X_Autonomous3DParam.voxel_size)
  return _internal_voxel_size(index);
}
inline void X_Autonomous3DParam::set_voxel_size(int index, float value) {
  _impl_.voxel_size_.Set(index, value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.X_Autonomous3DParam.voxel_size)
}
inline void X_Autonomous3DParam::_internal_add_voxel_size(float value) {
  _impl_.voxel_size_.Add(value);
}
inline void X_Autonomous3DParam::add_voxel_size(float value) {
  _internal_add_voxel_size(value);
  // @@protoc_insertion_point(field_add:vitis.ai.proto.X_Autonomous3DParam.voxel_size)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
X_Autonomous3DParam::_internal_voxel_size() const {
  return _impl_.voxel_size_;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
X_Autonomous3DParam::voxel_size() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.X_Autonomous3DParam.voxel_size)
  return _internal_voxel_size();
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
X_Autonomous3DParam::_internal_mutable_voxel_size() {
  return &_impl_.voxel_size_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
X_Autonomous3DParam::mutable_voxel_size() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.X_Autonomous3DParam.voxel_size)
  return _internal_mutable_voxel_size();
}

// int32 points_dim = 3;
inline void X_Autonomous3DParam::clear_points_dim() {
  _impl_.points_dim_ = 0;
}
inline int32_t X_Autonomous3DParam::_internal_points_dim() const {
  return _impl_.points_dim_;
}
inline int32_t X_Autonomous3DParam::points_dim() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.X_Autonomous3DParam.points_dim)
  return _internal_points_dim();
}
inline void X_Autonomous3DParam::_internal_set_points_dim(int32_t value) {
  
  _impl_.points_dim_ = value;
}
inline void X_Autonomous3DParam::set_points_dim(int32_t value) {
  _internal_set_points_dim(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.X_Autonomous3DParam.points_dim)
}

// int32 max_points_num = 4;
inline void X_Autonomous3DParam::clear_max_points_num() {
  _impl_.max_points_num_ = 0;
}
inline int32_t X_Autonomous3DParam::_internal_max_points_num() const {
  return _impl_.max_points_num_;
}
inline int32_t X_Autonomous3DParam::max_points_num() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.X_Autonomous3DParam.max_points_num)
  return _internal_max_points_num();
}
inline void X_Autonomous3DParam::_internal_set_max_points_num(int32_t value) {
  
  _impl_.max_points_num_ = value;
}
inline void X_Autonomous3DParam::set_max_points_num(int32_t value) {
  _internal_set_max_points_num(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.X_Autonomous3DParam.max_points_num)
}

// int32 max_voxels_num = 5;
inline void X_Autonomous3DParam::clear_max_voxels_num() {
  _impl_.max_voxels_num_ = 0;
}
inline int32_t X_Autonomous3DParam::_internal_max_voxels_num() const {
  return _impl_.max_voxels_num_;
}
inline int32_t X_Autonomous3DParam::max_voxels_num() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.X_Autonomous3DParam.max_voxels_num)
  return _internal_max_voxels_num();
}
inline void X_Autonomous3DParam::_internal_set_max_voxels_num(int32_t value) {
  
  _impl_.max_voxels_num_ = value;
}
inline void X_Autonomous3DParam::set_max_voxels_num(int32_t value) {
  _internal_set_max_voxels_num(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.X_Autonomous3DParam.max_voxels_num)
}

// int32 in_channels = 6;
inline void X_Autonomous3DParam::clear_in_channels() {
  _impl_.in_channels_ = 0;
}
inline int32_t X_Autonomous3DParam::_internal_in_channels() const {
  return _impl_.in_channels_;
}
inline int32_t X_Autonomous3DParam::in_channels() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.X_Autonomous3DParam.in_channels)
  return _internal_in_channels();
}
inline void X_Autonomous3DParam::_internal_set_in_channels(int32_t value) {
  
  _impl_.in_channels_ = value;
}
inline void X_Autonomous3DParam::set_in_channels(int32_t value) {
  _internal_set_in_channels(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.X_Autonomous3DParam.in_channels)
}

// .vitis.ai.proto.X_Autonomous3DParam.CenterPointOutputLayer output_names = 7;
inline bool X_Autonomous3DParam::_internal_has_output_names() const {
  return this != internal_default_instance() && _impl_.output_names_ != nullptr;
}
inline bool X_Autonomous3DParam::has_output_names() const {
  return _internal_has_output_names();
}
inline void X_Autonomous3DParam::clear_output_names() {
  if (GetArenaForAllocation() == nullptr && _impl_.output_names_ != nullptr) {
    delete _impl_.output_names_;
  }
  _impl_.output_names_ = nullptr;
}
inline const ::vitis::ai::proto::X_Autonomous3DParam_CenterPointOutputLayer& X_Autonomous3DParam::_internal_output_names() const {
  const ::vitis::ai::proto::X_Autonomous3DParam_CenterPointOutputLayer* p = _impl_.output_names_;
  return p != nullptr ? *p : reinterpret_cast<const ::vitis::ai::proto::X_Autonomous3DParam_CenterPointOutputLayer&>(
      ::vitis::ai::proto::_X_Autonomous3DParam_CenterPointOutputLayer_default_instance_);
}
inline const ::vitis::ai::proto::X_Autonomous3DParam_CenterPointOutputLayer& X_Autonomous3DParam::output_names() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.X_Autonomous3DParam.output_names)
  return _internal_output_names();
}
inline void X_Autonomous3DParam::unsafe_arena_set_allocated_output_names(
    ::vitis::ai::proto::X_Autonomous3DParam_CenterPointOutputLayer* output_names) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.output_names_);
  }
  _impl_.output_names_ = output_names;
  if (output_names) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:vitis.ai.proto.X_Autonomous3DParam.output_names)
}
inline ::vitis::ai::proto::X_Autonomous3DParam_CenterPointOutputLayer* X_Autonomous3DParam::release_output_names() {
  
  ::vitis::ai::proto::X_Autonomous3DParam_CenterPointOutputLayer* temp = _impl_.output_names_;
  _impl_.output_names_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::vitis::ai::proto::X_Autonomous3DParam_CenterPointOutputLayer* X_Autonomous3DParam::unsafe_arena_release_output_names() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.X_Autonomous3DParam.output_names)
  
  ::vitis::ai::proto::X_Autonomous3DParam_CenterPointOutputLayer* temp = _impl_.output_names_;
  _impl_.output_names_ = nullptr;
  return temp;
}
inline ::vitis::ai::proto::X_Autonomous3DParam_CenterPointOutputLayer* X_Autonomous3DParam::_internal_mutable_output_names() {
  
  if (_impl_.output_names_ == nullptr) {
    auto* p = CreateMaybeMessage<::vitis::ai::proto::X_Autonomous3DParam_CenterPointOutputLayer>(GetArenaForAllocation());
    _impl_.output_names_ = p;
  }
  return _impl_.output_names_;
}
inline ::vitis::ai::proto::X_Autonomous3DParam_CenterPointOutputLayer* X_Autonomous3DParam::mutable_output_names() {
  ::vitis::ai::proto::X_Autonomous3DParam_CenterPointOutputLayer* _msg = _internal_mutable_output_names();
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.X_Autonomous3DParam.output_names)
  return _msg;
}
inline void X_Autonomous3DParam::set_allocated_output_names(::vitis::ai::proto::X_Autonomous3DParam_CenterPointOutputLayer* output_names) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete _impl_.output_names_;
  }
  if (output_names) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
        ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(output_names);
    if (message_arena != submessage_arena) {
      output_names = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, output_names, submessage_arena);
    }
    
  } else {
    
  }
  _impl_.output_names_ = output_names;
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.X_Autonomous3DParam.output_names)
}

// int32 num_classes = 8;
inline void X_Autonomous3DParam::clear_num_classes() {
  _impl_.num_classes_ = 0;
}
inline int32_t X_Autonomous3DParam::_internal_num_classes() const {
  return _impl_.num_classes_;
}
inline int32_t X_Autonomous3DParam::num_classes() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.X_Autonomous3DParam.num_classes)
  return _internal_num_classes();
}
inline void X_Autonomous3DParam::_internal_set_num_classes(int32_t value) {
  
  _impl_.num_classes_ = value;
}
inline void X_Autonomous3DParam::set_num_classes(int32_t value) {
  _internal_set_num_classes(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.X_Autonomous3DParam.num_classes)
}

// float out_size_facter = 9;
inline void X_Autonomous3DParam::clear_out_size_facter() {
  _impl_.out_size_facter_ = 0;
}
inline float X_Autonomous3DParam::_internal_out_size_facter() const {
  return _impl_.out_size_facter_;
}
inline float X_Autonomous3DParam::out_size_facter() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.X_Autonomous3DParam.out_size_facter)
  return _internal_out_size_facter();
}
inline void X_Autonomous3DParam::_internal_set_out_size_facter(float value) {
  
  _impl_.out_size_facter_ = value;
}
inline void X_Autonomous3DParam::set_out_size_facter(float value) {
  _internal_set_out_size_facter(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.X_Autonomous3DParam.out_size_facter)
}

// repeated float iou_quality_alpha = 10;
inline int X_Autonomous3DParam::_internal_iou_quality_alpha_size() const {
  return _impl_.iou_quality_alpha_.size();
}
inline int X_Autonomous3DParam::iou_quality_alpha_size() const {
  return _internal_iou_quality_alpha_size();
}
inline void X_Autonomous3DParam::clear_iou_quality_alpha() {
  _impl_.iou_quality_alpha_.Clear();
}
inline float X_Autonomous3DParam::_internal_iou_quality_alpha(int index) const {
  return _impl_.iou_quality_alpha_.Get(index);
}
inline float X_Autonomous3DParam::iou_quality_alpha(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.X_Autonomous3DParam.iou_quality_alpha)
  return _internal_iou_quality_alpha(index);
}
inline void X_Autonomous3DParam::set_iou_quality_alpha(int index, float value) {
  _impl_.iou_quality_alpha_.Set(index, value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.X_Autonomous3DParam.iou_quality_alpha)
}
inline void X_Autonomous3DParam::_internal_add_iou_quality_alpha(float value) {
  _impl_.iou_quality_alpha_.Add(value);
}
inline void X_Autonomous3DParam::add_iou_quality_alpha(float value) {
  _internal_add_iou_quality_alpha(value);
  // @@protoc_insertion_point(field_add:vitis.ai.proto.X_Autonomous3DParam.iou_quality_alpha)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
X_Autonomous3DParam::_internal_iou_quality_alpha() const {
  return _impl_.iou_quality_alpha_;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
X_Autonomous3DParam::iou_quality_alpha() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.X_Autonomous3DParam.iou_quality_alpha)
  return _internal_iou_quality_alpha();
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
X_Autonomous3DParam::_internal_mutable_iou_quality_alpha() {
  return &_impl_.iou_quality_alpha_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
X_Autonomous3DParam::mutable_iou_quality_alpha() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.X_Autonomous3DParam.iou_quality_alpha)
  return _internal_mutable_iou_quality_alpha();
}

// repeated float post_point_cloud_range = 11;
inline int X_Autonomous3DParam::_internal_post_point_cloud_range_size() const {
  return _impl_.post_point_cloud_range_.size();
}
inline int X_Autonomous3DParam::post_point_cloud_range_size() const {
  return _internal_post_point_cloud_range_size();
}
inline void X_Autonomous3DParam::clear_post_point_cloud_range() {
  _impl_.post_point_cloud_range_.Clear();
}
inline float X_Autonomous3DParam::_internal_post_point_cloud_range(int index) const {
  return _impl_.post_point_cloud_range_.Get(index);
}
inline float X_Autonomous3DParam::post_point_cloud_range(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.X_Autonomous3DParam.post_point_cloud_range)
  return _internal_post_point_cloud_range(index);
}
inline void X_Autonomous3DParam::set_post_point_cloud_range(int index, float value) {
  _impl_.post_point_cloud_range_.Set(index, value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.X_Autonomous3DParam.post_point_cloud_range)
}
inline void X_Autonomous3DParam::_internal_add_post_point_cloud_range(float value) {
  _impl_.post_point_cloud_range_.Add(value);
}
inline void X_Autonomous3DParam::add_post_point_cloud_range(float value) {
  _internal_add_post_point_cloud_range(value);
  // @@protoc_insertion_point(field_add:vitis.ai.proto.X_Autonomous3DParam.post_point_cloud_range)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
X_Autonomous3DParam::_internal_post_point_cloud_range() const {
  return _impl_.post_point_cloud_range_;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
X_Autonomous3DParam::post_point_cloud_range() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.X_Autonomous3DParam.post_point_cloud_range)
  return _internal_post_point_cloud_range();
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
X_Autonomous3DParam::_internal_mutable_post_point_cloud_range() {
  return &_impl_.post_point_cloud_range_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
X_Autonomous3DParam::mutable_post_point_cloud_range() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.X_Autonomous3DParam.post_point_cloud_range)
  return _internal_mutable_post_point_cloud_range();
}

// int32 bbox_pre_size = 12;
inline void X_Autonomous3DParam::clear_bbox_pre_size() {
  _impl_.bbox_pre_size_ = 0;
}
inline int32_t X_Autonomous3DParam::_internal_bbox_pre_size() const {
  return _impl_.bbox_pre_size_;
}
inline int32_t X_Autonomous3DParam::bbox_pre_size() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.X_Autonomous3DParam.bbox_pre_size)
  return _internal_bbox_pre_size();
}
inline void X_Autonomous3DParam::_internal_set_bbox_pre_size(int32_t value) {
  
  _impl_.bbox_pre_size_ = value;
}
inline void X_Autonomous3DParam::set_bbox_pre_size(int32_t value) {
  _internal_set_bbox_pre_size(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.X_Autonomous3DParam.bbox_pre_size)
}

// int32 bbox_max_size = 13;
inline void X_Autonomous3DParam::clear_bbox_max_size() {
  _impl_.bbox_max_size_ = 0;
}
inline int32_t X_Autonomous3DParam::_internal_bbox_max_size() const {
  return _impl_.bbox_max_size_;
}
inline int32_t X_Autonomous3DParam::bbox_max_size() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.X_Autonomous3DParam.bbox_max_size)
  return _internal_bbox_max_size();
}
inline void X_Autonomous3DParam::_internal_set_bbox_max_size(int32_t value) {
  
  _impl_.bbox_max_size_ = value;
}
inline void X_Autonomous3DParam::set_bbox_max_size(int32_t value) {
  _internal_set_bbox_max_size(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.X_Autonomous3DParam.bbox_max_size)
}

// repeated float nms_thresh = 14;
inline int X_Autonomous3DParam::_internal_nms_thresh_size() const {
  return _impl_.nms_thresh_.size();
}
inline int X_Autonomous3DParam::nms_thresh_size() const {
  return _internal_nms_thresh_size();
}
inline void X_Autonomous3DParam::clear_nms_thresh() {
  _impl_.nms_thresh_.Clear();
}
inline float X_Autonomous3DParam::_internal_nms_thresh(int index) const {
  return _impl_.nms_thresh_.Get(index);
}
inline float X_Autonomous3DParam::nms_thresh(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.X_Autonomous3DParam.nms_thresh)
  return _internal_nms_thresh(index);
}
inline void X_Autonomous3DParam::set_nms_thresh(int index, float value) {
  _impl_.nms_thresh_.Set(index, value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.X_Autonomous3DParam.nms_thresh)
}
inline void X_Autonomous3DParam::_internal_add_nms_thresh(float value) {
  _impl_.nms_thresh_.Add(value);
}
inline void X_Autonomous3DParam::add_nms_thresh(float value) {
  _internal_add_nms_thresh(value);
  // @@protoc_insertion_point(field_add:vitis.ai.proto.X_Autonomous3DParam.nms_thresh)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
X_Autonomous3DParam::_internal_nms_thresh() const {
  return _impl_.nms_thresh_;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
X_Autonomous3DParam::nms_thresh() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.X_Autonomous3DParam.nms_thresh)
  return _internal_nms_thresh();
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
X_Autonomous3DParam::_internal_mutable_nms_thresh() {
  return &_impl_.nms_thresh_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
X_Autonomous3DParam::mutable_nms_thresh() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.X_Autonomous3DParam.nms_thresh)
  return _internal_mutable_nms_thresh();
}

// float score_thresh = 15;
inline void X_Autonomous3DParam::clear_score_thresh() {
  _impl_.score_thresh_ = 0;
}
inline float X_Autonomous3DParam::_internal_score_thresh() const {
  return _impl_.score_thresh_;
}
inline float X_Autonomous3DParam::score_thresh() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.X_Autonomous3DParam.score_thresh)
  return _internal_score_thresh();
}
inline void X_Autonomous3DParam::_internal_set_score_thresh(float value) {
  
  _impl_.score_thresh_ = value;
}
inline void X_Autonomous3DParam::set_score_thresh(float value) {
  _internal_set_score_thresh(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.X_Autonomous3DParam.score_thresh)
}

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

// EfficientDetD2Param_OutputInfo

// .vitis.ai.proto.EfficientDetD2Param.OutputType type = 1;
inline void EfficientDetD2Param_OutputInfo::clear_type() {
  _impl_.type_ = 0;
}
inline ::vitis::ai::proto::EfficientDetD2Param_OutputType EfficientDetD2Param_OutputInfo::_internal_type() const {
  return static_cast< ::vitis::ai::proto::EfficientDetD2Param_OutputType >(_impl_.type_);
}
inline ::vitis::ai::proto::EfficientDetD2Param_OutputType EfficientDetD2Param_OutputInfo::type() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.EfficientDetD2Param.OutputInfo.type)
  return _internal_type();
}
inline void EfficientDetD2Param_OutputInfo::_internal_set_type(::vitis::ai::proto::EfficientDetD2Param_OutputType value) {
  
  _impl_.type_ = value;
}
inline void EfficientDetD2Param_OutputInfo::set_type(::vitis::ai::proto::EfficientDetD2Param_OutputType value) {
  _internal_set_type(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.EfficientDetD2Param.OutputInfo.type)
}

// int32 level = 2;
inline void EfficientDetD2Param_OutputInfo::clear_level() {
  _impl_.level_ = 0;
}
inline int32_t EfficientDetD2Param_OutputInfo::_internal_level() const {
  return _impl_.level_;
}
inline int32_t EfficientDetD2Param_OutputInfo::level() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.EfficientDetD2Param.OutputInfo.level)
  return _internal_level();
}
inline void EfficientDetD2Param_OutputInfo::_internal_set_level(int32_t value) {
  
  _impl_.level_ = value;
}
inline void EfficientDetD2Param_OutputInfo::set_level(int32_t value) {
  _internal_set_level(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.EfficientDetD2Param.OutputInfo.level)
}

// string name = 3;
inline void EfficientDetD2Param_OutputInfo::clear_name() {
  _impl_.name_.ClearToEmpty();
}
inline const std::string& EfficientDetD2Param_OutputInfo::name() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.EfficientDetD2Param.OutputInfo.name)
  return _internal_name();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void EfficientDetD2Param_OutputInfo::set_name(ArgT0&& arg0, ArgT... args) {
 
 _impl_.name_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:vitis.ai.proto.EfficientDetD2Param.OutputInfo.name)
}
inline std::string* EfficientDetD2Param_OutputInfo::mutable_name() {
  std::string* _s = _internal_mutable_name();
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.EfficientDetD2Param.OutputInfo.name)
  return _s;
}
inline const std::string& EfficientDetD2Param_OutputInfo::_internal_name() const {
  return _impl_.name_.Get();
}
inline void EfficientDetD2Param_OutputInfo::_internal_set_name(const std::string& value) {
  
  _impl_.name_.Set(value, GetArenaForAllocation());
}
inline std::string* EfficientDetD2Param_OutputInfo::_internal_mutable_name() {
  
  return _impl_.name_.Mutable(GetArenaForAllocation());
}
inline std::string* EfficientDetD2Param_OutputInfo::release_name() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.EfficientDetD2Param.OutputInfo.name)
  return _impl_.name_.Release();
}
inline void EfficientDetD2Param_OutputInfo::set_allocated_name(std::string* name) {
  if (name != nullptr) {
    
  } else {
    
  }
  _impl_.name_.SetAllocated(name, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (_impl_.name_.IsDefault()) {
    _impl_.name_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.EfficientDetD2Param.OutputInfo.name)
}

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

// EfficientDetD2Param_AnchorInfo

// int32 min_level = 1;
inline void EfficientDetD2Param_AnchorInfo::clear_min_level() {
  _impl_.min_level_ = 0;
}
inline int32_t EfficientDetD2Param_AnchorInfo::_internal_min_level() const {
  return _impl_.min_level_;
}
inline int32_t EfficientDetD2Param_AnchorInfo::min_level() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.EfficientDetD2Param.AnchorInfo.min_level)
  return _internal_min_level();
}
inline void EfficientDetD2Param_AnchorInfo::_internal_set_min_level(int32_t value) {
  
  _impl_.min_level_ = value;
}
inline void EfficientDetD2Param_AnchorInfo::set_min_level(int32_t value) {
  _internal_set_min_level(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.EfficientDetD2Param.AnchorInfo.min_level)
}

// int32 max_level = 2;
inline void EfficientDetD2Param_AnchorInfo::clear_max_level() {
  _impl_.max_level_ = 0;
}
inline int32_t EfficientDetD2Param_AnchorInfo::_internal_max_level() const {
  return _impl_.max_level_;
}
inline int32_t EfficientDetD2Param_AnchorInfo::max_level() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.EfficientDetD2Param.AnchorInfo.max_level)
  return _internal_max_level();
}
inline void EfficientDetD2Param_AnchorInfo::_internal_set_max_level(int32_t value) {
  
  _impl_.max_level_ = value;
}
inline void EfficientDetD2Param_AnchorInfo::set_max_level(int32_t value) {
  _internal_set_max_level(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.EfficientDetD2Param.AnchorInfo.max_level)
}

// int32 num_scales = 3;
inline void EfficientDetD2Param_AnchorInfo::clear_num_scales() {
  _impl_.num_scales_ = 0;
}
inline int32_t EfficientDetD2Param_AnchorInfo::_internal_num_scales() const {
  return _impl_.num_scales_;
}
inline int32_t EfficientDetD2Param_AnchorInfo::num_scales() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.EfficientDetD2Param.AnchorInfo.num_scales)
  return _internal_num_scales();
}
inline void EfficientDetD2Param_AnchorInfo::_internal_set_num_scales(int32_t value) {
  
  _impl_.num_scales_ = value;
}
inline void EfficientDetD2Param_AnchorInfo::set_num_scales(int32_t value) {
  _internal_set_num_scales(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.EfficientDetD2Param.AnchorInfo.num_scales)
}

// repeated float anchor_scales = 4;
inline int EfficientDetD2Param_AnchorInfo::_internal_anchor_scales_size() const {
  return _impl_.anchor_scales_.size();
}
inline int EfficientDetD2Param_AnchorInfo::anchor_scales_size() const {
  return _internal_anchor_scales_size();
}
inline void EfficientDetD2Param_AnchorInfo::clear_anchor_scales() {
  _impl_.anchor_scales_.Clear();
}
inline float EfficientDetD2Param_AnchorInfo::_internal_anchor_scales(int index) const {
  return _impl_.anchor_scales_.Get(index);
}
inline float EfficientDetD2Param_AnchorInfo::anchor_scales(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.EfficientDetD2Param.AnchorInfo.anchor_scales)
  return _internal_anchor_scales(index);
}
inline void EfficientDetD2Param_AnchorInfo::set_anchor_scales(int index, float value) {
  _impl_.anchor_scales_.Set(index, value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.EfficientDetD2Param.AnchorInfo.anchor_scales)
}
inline void EfficientDetD2Param_AnchorInfo::_internal_add_anchor_scales(float value) {
  _impl_.anchor_scales_.Add(value);
}
inline void EfficientDetD2Param_AnchorInfo::add_anchor_scales(float value) {
  _internal_add_anchor_scales(value);
  // @@protoc_insertion_point(field_add:vitis.ai.proto.EfficientDetD2Param.AnchorInfo.anchor_scales)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
EfficientDetD2Param_AnchorInfo::_internal_anchor_scales() const {
  return _impl_.anchor_scales_;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
EfficientDetD2Param_AnchorInfo::anchor_scales() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.EfficientDetD2Param.AnchorInfo.anchor_scales)
  return _internal_anchor_scales();
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
EfficientDetD2Param_AnchorInfo::_internal_mutable_anchor_scales() {
  return &_impl_.anchor_scales_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
EfficientDetD2Param_AnchorInfo::mutable_anchor_scales() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.EfficientDetD2Param.AnchorInfo.anchor_scales)
  return _internal_mutable_anchor_scales();
}

// repeated float aspect_ratio = 5;
inline int EfficientDetD2Param_AnchorInfo::_internal_aspect_ratio_size() const {
  return _impl_.aspect_ratio_.size();
}
inline int EfficientDetD2Param_AnchorInfo::aspect_ratio_size() const {
  return _internal_aspect_ratio_size();
}
inline void EfficientDetD2Param_AnchorInfo::clear_aspect_ratio() {
  _impl_.aspect_ratio_.Clear();
}
inline float EfficientDetD2Param_AnchorInfo::_internal_aspect_ratio(int index) const {
  return _impl_.aspect_ratio_.Get(index);
}
inline float EfficientDetD2Param_AnchorInfo::aspect_ratio(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.EfficientDetD2Param.AnchorInfo.aspect_ratio)
  return _internal_aspect_ratio(index);
}
inline void EfficientDetD2Param_AnchorInfo::set_aspect_ratio(int index, float value) {
  _impl_.aspect_ratio_.Set(index, value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.EfficientDetD2Param.AnchorInfo.aspect_ratio)
}
inline void EfficientDetD2Param_AnchorInfo::_internal_add_aspect_ratio(float value) {
  _impl_.aspect_ratio_.Add(value);
}
inline void EfficientDetD2Param_AnchorInfo::add_aspect_ratio(float value) {
  _internal_add_aspect_ratio(value);
  // @@protoc_insertion_point(field_add:vitis.ai.proto.EfficientDetD2Param.AnchorInfo.aspect_ratio)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
EfficientDetD2Param_AnchorInfo::_internal_aspect_ratio() const {
  return _impl_.aspect_ratio_;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
EfficientDetD2Param_AnchorInfo::aspect_ratio() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.EfficientDetD2Param.AnchorInfo.aspect_ratio)
  return _internal_aspect_ratio();
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
EfficientDetD2Param_AnchorInfo::_internal_mutable_aspect_ratio() {
  return &_impl_.aspect_ratio_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
EfficientDetD2Param_AnchorInfo::mutable_aspect_ratio() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.EfficientDetD2Param.AnchorInfo.aspect_ratio)
  return _internal_mutable_aspect_ratio();
}

// int32 image_width = 6;
inline void EfficientDetD2Param_AnchorInfo::clear_image_width() {
  _impl_.image_width_ = 0;
}
inline int32_t EfficientDetD2Param_AnchorInfo::_internal_image_width() const {
  return _impl_.image_width_;
}
inline int32_t EfficientDetD2Param_AnchorInfo::image_width() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.EfficientDetD2Param.AnchorInfo.image_width)
  return _internal_image_width();
}
inline void EfficientDetD2Param_AnchorInfo::_internal_set_image_width(int32_t value) {
  
  _impl_.image_width_ = value;
}
inline void EfficientDetD2Param_AnchorInfo::set_image_width(int32_t value) {
  _internal_set_image_width(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.EfficientDetD2Param.AnchorInfo.image_width)
}

// int32 image_height = 7;
inline void EfficientDetD2Param_AnchorInfo::clear_image_height() {
  _impl_.image_height_ = 0;
}
inline int32_t EfficientDetD2Param_AnchorInfo::_internal_image_height() const {
  return _impl_.image_height_;
}
inline int32_t EfficientDetD2Param_AnchorInfo::image_height() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.EfficientDetD2Param.AnchorInfo.image_height)
  return _internal_image_height();
}
inline void EfficientDetD2Param_AnchorInfo::_internal_set_image_height(int32_t value) {
  
  _impl_.image_height_ = value;
}
inline void EfficientDetD2Param_AnchorInfo::set_image_height(int32_t value) {
  _internal_set_image_height(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.EfficientDetD2Param.AnchorInfo.image_height)
}

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

// EfficientDetD2Param

// .vitis.ai.proto.EfficientDetD2Param.AnchorInfo anchor_info = 1;
inline bool EfficientDetD2Param::_internal_has_anchor_info() const {
  return this != internal_default_instance() && _impl_.anchor_info_ != nullptr;
}
inline bool EfficientDetD2Param::has_anchor_info() const {
  return _internal_has_anchor_info();
}
inline void EfficientDetD2Param::clear_anchor_info() {
  if (GetArenaForAllocation() == nullptr && _impl_.anchor_info_ != nullptr) {
    delete _impl_.anchor_info_;
  }
  _impl_.anchor_info_ = nullptr;
}
inline const ::vitis::ai::proto::EfficientDetD2Param_AnchorInfo& EfficientDetD2Param::_internal_anchor_info() const {
  const ::vitis::ai::proto::EfficientDetD2Param_AnchorInfo* p = _impl_.anchor_info_;
  return p != nullptr ? *p : reinterpret_cast<const ::vitis::ai::proto::EfficientDetD2Param_AnchorInfo&>(
      ::vitis::ai::proto::_EfficientDetD2Param_AnchorInfo_default_instance_);
}
inline const ::vitis::ai::proto::EfficientDetD2Param_AnchorInfo& EfficientDetD2Param::anchor_info() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.EfficientDetD2Param.anchor_info)
  return _internal_anchor_info();
}
inline void EfficientDetD2Param::unsafe_arena_set_allocated_anchor_info(
    ::vitis::ai::proto::EfficientDetD2Param_AnchorInfo* anchor_info) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.anchor_info_);
  }
  _impl_.anchor_info_ = anchor_info;
  if (anchor_info) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:vitis.ai.proto.EfficientDetD2Param.anchor_info)
}
inline ::vitis::ai::proto::EfficientDetD2Param_AnchorInfo* EfficientDetD2Param::release_anchor_info() {
  
  ::vitis::ai::proto::EfficientDetD2Param_AnchorInfo* temp = _impl_.anchor_info_;
  _impl_.anchor_info_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::vitis::ai::proto::EfficientDetD2Param_AnchorInfo* EfficientDetD2Param::unsafe_arena_release_anchor_info() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.EfficientDetD2Param.anchor_info)
  
  ::vitis::ai::proto::EfficientDetD2Param_AnchorInfo* temp = _impl_.anchor_info_;
  _impl_.anchor_info_ = nullptr;
  return temp;
}
inline ::vitis::ai::proto::EfficientDetD2Param_AnchorInfo* EfficientDetD2Param::_internal_mutable_anchor_info() {
  
  if (_impl_.anchor_info_ == nullptr) {
    auto* p = CreateMaybeMessage<::vitis::ai::proto::EfficientDetD2Param_AnchorInfo>(GetArenaForAllocation());
    _impl_.anchor_info_ = p;
  }
  return _impl_.anchor_info_;
}
inline ::vitis::ai::proto::EfficientDetD2Param_AnchorInfo* EfficientDetD2Param::mutable_anchor_info() {
  ::vitis::ai::proto::EfficientDetD2Param_AnchorInfo* _msg = _internal_mutable_anchor_info();
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.EfficientDetD2Param.anchor_info)
  return _msg;
}
inline void EfficientDetD2Param::set_allocated_anchor_info(::vitis::ai::proto::EfficientDetD2Param_AnchorInfo* anchor_info) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete _impl_.anchor_info_;
  }
  if (anchor_info) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
        ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(anchor_info);
    if (message_arena != submessage_arena) {
      anchor_info = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, anchor_info, submessage_arena);
    }
    
  } else {
    
  }
  _impl_.anchor_info_ = anchor_info;
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.EfficientDetD2Param.anchor_info)
}

// int32 num_classes = 2;
inline void EfficientDetD2Param::clear_num_classes() {
  _impl_.num_classes_ = 0;
}
inline int32_t EfficientDetD2Param::_internal_num_classes() const {
  return _impl_.num_classes_;
}
inline int32_t EfficientDetD2Param::num_classes() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.EfficientDetD2Param.num_classes)
  return _internal_num_classes();
}
inline void EfficientDetD2Param::_internal_set_num_classes(int32_t value) {
  
  _impl_.num_classes_ = value;
}
inline void EfficientDetD2Param::set_num_classes(int32_t value) {
  _internal_set_num_classes(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.EfficientDetD2Param.num_classes)
}

// int32 pre_nms_num = 3;
inline void EfficientDetD2Param::clear_pre_nms_num() {
  _impl_.pre_nms_num_ = 0;
}
inline int32_t EfficientDetD2Param::_internal_pre_nms_num() const {
  return _impl_.pre_nms_num_;
}
inline int32_t EfficientDetD2Param::pre_nms_num() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.EfficientDetD2Param.pre_nms_num)
  return _internal_pre_nms_num();
}
inline void EfficientDetD2Param::_internal_set_pre_nms_num(int32_t value) {
  
  _impl_.pre_nms_num_ = value;
}
inline void EfficientDetD2Param::set_pre_nms_num(int32_t value) {
  _internal_set_pre_nms_num(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.EfficientDetD2Param.pre_nms_num)
}

// float nms_threshold = 4;
inline void EfficientDetD2Param::clear_nms_threshold() {
  _impl_.nms_threshold_ = 0;
}
inline float EfficientDetD2Param::_internal_nms_threshold() const {
  return _impl_.nms_threshold_;
}
inline float EfficientDetD2Param::nms_threshold() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.EfficientDetD2Param.nms_threshold)
  return _internal_nms_threshold();
}
inline void EfficientDetD2Param::_internal_set_nms_threshold(float value) {
  
  _impl_.nms_threshold_ = value;
}
inline void EfficientDetD2Param::set_nms_threshold(float value) {
  _internal_set_nms_threshold(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.EfficientDetD2Param.nms_threshold)
}

// float conf_threshold = 5;
inline void EfficientDetD2Param::clear_conf_threshold() {
  _impl_.conf_threshold_ = 0;
}
inline float EfficientDetD2Param::_internal_conf_threshold() const {
  return _impl_.conf_threshold_;
}
inline float EfficientDetD2Param::conf_threshold() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.EfficientDetD2Param.conf_threshold)
  return _internal_conf_threshold();
}
inline void EfficientDetD2Param::_internal_set_conf_threshold(float value) {
  
  _impl_.conf_threshold_ = value;
}
inline void EfficientDetD2Param::set_conf_threshold(float value) {
  _internal_set_conf_threshold(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.EfficientDetD2Param.conf_threshold)
}

// int32 nms_output_num = 6;
inline void EfficientDetD2Param::clear_nms_output_num() {
  _impl_.nms_output_num_ = 0;
}
inline int32_t EfficientDetD2Param::_internal_nms_output_num() const {
  return _impl_.nms_output_num_;
}
inline int32_t EfficientDetD2Param::nms_output_num() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.EfficientDetD2Param.nms_output_num)
  return _internal_nms_output_num();
}
inline void EfficientDetD2Param::_internal_set_nms_output_num(int32_t value) {
  
  _impl_.nms_output_num_ = value;
}
inline void EfficientDetD2Param::set_nms_output_num(int32_t value) {
  _internal_set_nms_output_num(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.EfficientDetD2Param.nms_output_num)
}

// repeated .vitis.ai.proto.EfficientDetD2Param.OutputInfo output_info = 7;
inline int EfficientDetD2Param::_internal_output_info_size() const {
  return _impl_.output_info_.size();
}
inline int EfficientDetD2Param::output_info_size() const {
  return _internal_output_info_size();
}
inline void EfficientDetD2Param::clear_output_info() {
  _impl_.output_info_.Clear();
}
inline ::vitis::ai::proto::EfficientDetD2Param_OutputInfo* EfficientDetD2Param::mutable_output_info(int index) {
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.EfficientDetD2Param.output_info)
  return _impl_.output_info_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::EfficientDetD2Param_OutputInfo >*
EfficientDetD2Param::mutable_output_info() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.EfficientDetD2Param.output_info)
  return &_impl_.output_info_;
}
inline const ::vitis::ai::proto::EfficientDetD2Param_OutputInfo& EfficientDetD2Param::_internal_output_info(int index) const {
  return _impl_.output_info_.Get(index);
}
inline const ::vitis::ai::proto::EfficientDetD2Param_OutputInfo& EfficientDetD2Param::output_info(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.EfficientDetD2Param.output_info)
  return _internal_output_info(index);
}
inline ::vitis::ai::proto::EfficientDetD2Param_OutputInfo* EfficientDetD2Param::_internal_add_output_info() {
  return _impl_.output_info_.Add();
}
inline ::vitis::ai::proto::EfficientDetD2Param_OutputInfo* EfficientDetD2Param::add_output_info() {
  ::vitis::ai::proto::EfficientDetD2Param_OutputInfo* _add = _internal_add_output_info();
  // @@protoc_insertion_point(field_add:vitis.ai.proto.EfficientDetD2Param.output_info)
  return _add;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::EfficientDetD2Param_OutputInfo >&
EfficientDetD2Param::output_info() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.EfficientDetD2Param.output_info)
  return _impl_.output_info_;
}

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

// SubgraphParam_InputParam

// string name = 1;
inline void SubgraphParam_InputParam::clear_name() {
  _impl_.name_.ClearToEmpty();
}
inline const std::string& SubgraphParam_InputParam::name() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.SubgraphParam.InputParam.name)
  return _internal_name();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void SubgraphParam_InputParam::set_name(ArgT0&& arg0, ArgT... args) {
 
 _impl_.name_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:vitis.ai.proto.SubgraphParam.InputParam.name)
}
inline std::string* SubgraphParam_InputParam::mutable_name() {
  std::string* _s = _internal_mutable_name();
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.SubgraphParam.InputParam.name)
  return _s;
}
inline const std::string& SubgraphParam_InputParam::_internal_name() const {
  return _impl_.name_.Get();
}
inline void SubgraphParam_InputParam::_internal_set_name(const std::string& value) {
  
  _impl_.name_.Set(value, GetArenaForAllocation());
}
inline std::string* SubgraphParam_InputParam::_internal_mutable_name() {
  
  return _impl_.name_.Mutable(GetArenaForAllocation());
}
inline std::string* SubgraphParam_InputParam::release_name() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.SubgraphParam.InputParam.name)
  return _impl_.name_.Release();
}
inline void SubgraphParam_InputParam::set_allocated_name(std::string* name) {
  if (name != nullptr) {
    
  } else {
    
  }
  _impl_.name_.SetAllocated(name, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (_impl_.name_.IsDefault()) {
    _impl_.name_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.SubgraphParam.InputParam.name)
}

// int32 previous_model_idx = 2;
inline void SubgraphParam_InputParam::clear_previous_model_idx() {
  _impl_.previous_model_idx_ = 0;
}
inline int32_t SubgraphParam_InputParam::_internal_previous_model_idx() const {
  return _impl_.previous_model_idx_;
}
inline int32_t SubgraphParam_InputParam::previous_model_idx() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.SubgraphParam.InputParam.previous_model_idx)
  return _internal_previous_model_idx();
}
inline void SubgraphParam_InputParam::_internal_set_previous_model_idx(int32_t value) {
  
  _impl_.previous_model_idx_ = value;
}
inline void SubgraphParam_InputParam::set_previous_model_idx(int32_t value) {
  _internal_set_previous_model_idx(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.SubgraphParam.InputParam.previous_model_idx)
}

// string previous_output_tensor = 3;
inline void SubgraphParam_InputParam::clear_previous_output_tensor() {
  _impl_.previous_output_tensor_.ClearToEmpty();
}
inline const std::string& SubgraphParam_InputParam::previous_output_tensor() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.SubgraphParam.InputParam.previous_output_tensor)
  return _internal_previous_output_tensor();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void SubgraphParam_InputParam::set_previous_output_tensor(ArgT0&& arg0, ArgT... args) {
 
 _impl_.previous_output_tensor_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:vitis.ai.proto.SubgraphParam.InputParam.previous_output_tensor)
}
inline std::string* SubgraphParam_InputParam::mutable_previous_output_tensor() {
  std::string* _s = _internal_mutable_previous_output_tensor();
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.SubgraphParam.InputParam.previous_output_tensor)
  return _s;
}
inline const std::string& SubgraphParam_InputParam::_internal_previous_output_tensor() const {
  return _impl_.previous_output_tensor_.Get();
}
inline void SubgraphParam_InputParam::_internal_set_previous_output_tensor(const std::string& value) {
  
  _impl_.previous_output_tensor_.Set(value, GetArenaForAllocation());
}
inline std::string* SubgraphParam_InputParam::_internal_mutable_previous_output_tensor() {
  
  return _impl_.previous_output_tensor_.Mutable(GetArenaForAllocation());
}
inline std::string* SubgraphParam_InputParam::release_previous_output_tensor() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.SubgraphParam.InputParam.previous_output_tensor)
  return _impl_.previous_output_tensor_.Release();
}
inline void SubgraphParam_InputParam::set_allocated_previous_output_tensor(std::string* previous_output_tensor) {
  if (previous_output_tensor != nullptr) {
    
  } else {
    
  }
  _impl_.previous_output_tensor_.SetAllocated(previous_output_tensor, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (_impl_.previous_output_tensor_.IsDefault()) {
    _impl_.previous_output_tensor_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.SubgraphParam.InputParam.previous_output_tensor)
}

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

// SubgraphParam

// int32 cycles = 1;
inline void SubgraphParam::clear_cycles() {
  _impl_.cycles_ = 0;
}
inline int32_t SubgraphParam::_internal_cycles() const {
  return _impl_.cycles_;
}
inline int32_t SubgraphParam::cycles() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.SubgraphParam.cycles)
  return _internal_cycles();
}
inline void SubgraphParam::_internal_set_cycles(int32_t value) {
  
  _impl_.cycles_ = value;
}
inline void SubgraphParam::set_cycles(int32_t value) {
  _internal_set_cycles(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.SubgraphParam.cycles)
}

// string subgraph_idx = 2;
inline void SubgraphParam::clear_subgraph_idx() {
  _impl_.subgraph_idx_.ClearToEmpty();
}
inline const std::string& SubgraphParam::subgraph_idx() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.SubgraphParam.subgraph_idx)
  return _internal_subgraph_idx();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void SubgraphParam::set_subgraph_idx(ArgT0&& arg0, ArgT... args) {
 
 _impl_.subgraph_idx_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:vitis.ai.proto.SubgraphParam.subgraph_idx)
}
inline std::string* SubgraphParam::mutable_subgraph_idx() {
  std::string* _s = _internal_mutable_subgraph_idx();
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.SubgraphParam.subgraph_idx)
  return _s;
}
inline const std::string& SubgraphParam::_internal_subgraph_idx() const {
  return _impl_.subgraph_idx_.Get();
}
inline void SubgraphParam::_internal_set_subgraph_idx(const std::string& value) {
  
  _impl_.subgraph_idx_.Set(value, GetArenaForAllocation());
}
inline std::string* SubgraphParam::_internal_mutable_subgraph_idx() {
  
  return _impl_.subgraph_idx_.Mutable(GetArenaForAllocation());
}
inline std::string* SubgraphParam::release_subgraph_idx() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.SubgraphParam.subgraph_idx)
  return _impl_.subgraph_idx_.Release();
}
inline void SubgraphParam::set_allocated_subgraph_idx(std::string* subgraph_idx) {
  if (subgraph_idx != nullptr) {
    
  } else {
    
  }
  _impl_.subgraph_idx_.SetAllocated(subgraph_idx, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (_impl_.subgraph_idx_.IsDefault()) {
    _impl_.subgraph_idx_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.SubgraphParam.subgraph_idx)
}

// repeated .vitis.ai.proto.SubgraphParam.InputParam input = 3;
inline int SubgraphParam::_internal_input_size() const {
  return _impl_.input_.size();
}
inline int SubgraphParam::input_size() const {
  return _internal_input_size();
}
inline void SubgraphParam::clear_input() {
  _impl_.input_.Clear();
}
inline ::vitis::ai::proto::SubgraphParam_InputParam* SubgraphParam::mutable_input(int index) {
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.SubgraphParam.input)
  return _impl_.input_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::SubgraphParam_InputParam >*
SubgraphParam::mutable_input() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.SubgraphParam.input)
  return &_impl_.input_;
}
inline const ::vitis::ai::proto::SubgraphParam_InputParam& SubgraphParam::_internal_input(int index) const {
  return _impl_.input_.Get(index);
}
inline const ::vitis::ai::proto::SubgraphParam_InputParam& SubgraphParam::input(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.SubgraphParam.input)
  return _internal_input(index);
}
inline ::vitis::ai::proto::SubgraphParam_InputParam* SubgraphParam::_internal_add_input() {
  return _impl_.input_.Add();
}
inline ::vitis::ai::proto::SubgraphParam_InputParam* SubgraphParam::add_input() {
  ::vitis::ai::proto::SubgraphParam_InputParam* _add = _internal_add_input();
  // @@protoc_insertion_point(field_add:vitis.ai.proto.SubgraphParam.input)
  return _add;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::SubgraphParam_InputParam >&
SubgraphParam::input() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.SubgraphParam.input)
  return _impl_.input_;
}

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

// DpuModelParam

// string name = 1;
inline void DpuModelParam::clear_name() {
  _impl_.name_.ClearToEmpty();
}
inline const std::string& DpuModelParam::name() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.DpuModelParam.name)
  return _internal_name();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void DpuModelParam::set_name(ArgT0&& arg0, ArgT... args) {
 
 _impl_.name_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:vitis.ai.proto.DpuModelParam.name)
}
inline std::string* DpuModelParam::mutable_name() {
  std::string* _s = _internal_mutable_name();
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.DpuModelParam.name)
  return _s;
}
inline const std::string& DpuModelParam::_internal_name() const {
  return _impl_.name_.Get();
}
inline void DpuModelParam::_internal_set_name(const std::string& value) {
  
  _impl_.name_.Set(value, GetArenaForAllocation());
}
inline std::string* DpuModelParam::_internal_mutable_name() {
  
  return _impl_.name_.Mutable(GetArenaForAllocation());
}
inline std::string* DpuModelParam::release_name() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.DpuModelParam.name)
  return _impl_.name_.Release();
}
inline void DpuModelParam::set_allocated_name(std::string* name) {
  if (name != nullptr) {
    
  } else {
    
  }
  _impl_.name_.SetAllocated(name, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (_impl_.name_.IsDefault()) {
    _impl_.name_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.DpuModelParam.name)
}

// repeated .vitis.ai.proto.DpuKernelParam kernel = 2;
inline int DpuModelParam::_internal_kernel_size() const {
  return _impl_.kernel_.size();
}
inline int DpuModelParam::kernel_size() const {
  return _internal_kernel_size();
}
inline void DpuModelParam::clear_kernel() {
  _impl_.kernel_.Clear();
}
inline ::vitis::ai::proto::DpuKernelParam* DpuModelParam::mutable_kernel(int index) {
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.DpuModelParam.kernel)
  return _impl_.kernel_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::DpuKernelParam >*
DpuModelParam::mutable_kernel() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.DpuModelParam.kernel)
  return &_impl_.kernel_;
}
inline const ::vitis::ai::proto::DpuKernelParam& DpuModelParam::_internal_kernel(int index) const {
  return _impl_.kernel_.Get(index);
}
inline const ::vitis::ai::proto::DpuKernelParam& DpuModelParam::kernel(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.DpuModelParam.kernel)
  return _internal_kernel(index);
}
inline ::vitis::ai::proto::DpuKernelParam* DpuModelParam::_internal_add_kernel() {
  return _impl_.kernel_.Add();
}
inline ::vitis::ai::proto::DpuKernelParam* DpuModelParam::add_kernel() {
  ::vitis::ai::proto::DpuKernelParam* _add = _internal_add_kernel();
  // @@protoc_insertion_point(field_add:vitis.ai.proto.DpuModelParam.kernel)
  return _add;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::DpuKernelParam >&
DpuModelParam::kernel() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.DpuModelParam.kernel)
  return _impl_.kernel_;
}

// bool use_graph_runner = 28;
inline void DpuModelParam::clear_use_graph_runner() {
  _impl_.use_graph_runner_ = false;
}
inline bool DpuModelParam::_internal_use_graph_runner() const {
  return _impl_.use_graph_runner_;
}
inline bool DpuModelParam::use_graph_runner() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.DpuModelParam.use_graph_runner)
  return _internal_use_graph_runner();
}
inline void DpuModelParam::_internal_set_use_graph_runner(bool value) {
  
  _impl_.use_graph_runner_ = value;
}
inline void DpuModelParam::set_use_graph_runner(bool value) {
  _internal_set_use_graph_runner(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.DpuModelParam.use_graph_runner)
}

// .vitis.ai.proto.DpuModelParam.ModelType model_type = 3;
inline void DpuModelParam::clear_model_type() {
  _impl_.model_type_ = 0;
}
inline ::vitis::ai::proto::DpuModelParam_ModelType DpuModelParam::_internal_model_type() const {
  return static_cast< ::vitis::ai::proto::DpuModelParam_ModelType >(_impl_.model_type_);
}
inline ::vitis::ai::proto::DpuModelParam_ModelType DpuModelParam::model_type() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.DpuModelParam.model_type)
  return _internal_model_type();
}
inline void DpuModelParam::_internal_set_model_type(::vitis::ai::proto::DpuModelParam_ModelType value) {
  
  _impl_.model_type_ = value;
}
inline void DpuModelParam::set_model_type(::vitis::ai::proto::DpuModelParam_ModelType value) {
  _internal_set_model_type(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.DpuModelParam.model_type)
}

// .vitis.ai.proto.RefineDetParam refine_det_param = 4;
inline bool DpuModelParam::_internal_has_refine_det_param() const {
  return this != internal_default_instance() && _impl_.refine_det_param_ != nullptr;
}
inline bool DpuModelParam::has_refine_det_param() const {
  return _internal_has_refine_det_param();
}
inline void DpuModelParam::clear_refine_det_param() {
  if (GetArenaForAllocation() == nullptr && _impl_.refine_det_param_ != nullptr) {
    delete _impl_.refine_det_param_;
  }
  _impl_.refine_det_param_ = nullptr;
}
inline const ::vitis::ai::proto::RefineDetParam& DpuModelParam::_internal_refine_det_param() const {
  const ::vitis::ai::proto::RefineDetParam* p = _impl_.refine_det_param_;
  return p != nullptr ? *p : reinterpret_cast<const ::vitis::ai::proto::RefineDetParam&>(
      ::vitis::ai::proto::_RefineDetParam_default_instance_);
}
inline const ::vitis::ai::proto::RefineDetParam& DpuModelParam::refine_det_param() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.DpuModelParam.refine_det_param)
  return _internal_refine_det_param();
}
inline void DpuModelParam::unsafe_arena_set_allocated_refine_det_param(
    ::vitis::ai::proto::RefineDetParam* refine_det_param) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.refine_det_param_);
  }
  _impl_.refine_det_param_ = refine_det_param;
  if (refine_det_param) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:vitis.ai.proto.DpuModelParam.refine_det_param)
}
inline ::vitis::ai::proto::RefineDetParam* DpuModelParam::release_refine_det_param() {
  
  ::vitis::ai::proto::RefineDetParam* temp = _impl_.refine_det_param_;
  _impl_.refine_det_param_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::vitis::ai::proto::RefineDetParam* DpuModelParam::unsafe_arena_release_refine_det_param() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.DpuModelParam.refine_det_param)
  
  ::vitis::ai::proto::RefineDetParam* temp = _impl_.refine_det_param_;
  _impl_.refine_det_param_ = nullptr;
  return temp;
}
inline ::vitis::ai::proto::RefineDetParam* DpuModelParam::_internal_mutable_refine_det_param() {
  
  if (_impl_.refine_det_param_ == nullptr) {
    auto* p = CreateMaybeMessage<::vitis::ai::proto::RefineDetParam>(GetArenaForAllocation());
    _impl_.refine_det_param_ = p;
  }
  return _impl_.refine_det_param_;
}
inline ::vitis::ai::proto::RefineDetParam* DpuModelParam::mutable_refine_det_param() {
  ::vitis::ai::proto::RefineDetParam* _msg = _internal_mutable_refine_det_param();
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.DpuModelParam.refine_det_param)
  return _msg;
}
inline void DpuModelParam::set_allocated_refine_det_param(::vitis::ai::proto::RefineDetParam* refine_det_param) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete _impl_.refine_det_param_;
  }
  if (refine_det_param) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
        ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(refine_det_param);
    if (message_arena != submessage_arena) {
      refine_det_param = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, refine_det_param, submessage_arena);
    }
    
  } else {
    
  }
  _impl_.refine_det_param_ = refine_det_param;
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.DpuModelParam.refine_det_param)
}

// .vitis.ai.proto.YoloV3Param yolo_v3_param = 5;
inline bool DpuModelParam::_internal_has_yolo_v3_param() const {
  return this != internal_default_instance() && _impl_.yolo_v3_param_ != nullptr;
}
inline bool DpuModelParam::has_yolo_v3_param() const {
  return _internal_has_yolo_v3_param();
}
inline void DpuModelParam::clear_yolo_v3_param() {
  if (GetArenaForAllocation() == nullptr && _impl_.yolo_v3_param_ != nullptr) {
    delete _impl_.yolo_v3_param_;
  }
  _impl_.yolo_v3_param_ = nullptr;
}
inline const ::vitis::ai::proto::YoloV3Param& DpuModelParam::_internal_yolo_v3_param() const {
  const ::vitis::ai::proto::YoloV3Param* p = _impl_.yolo_v3_param_;
  return p != nullptr ? *p : reinterpret_cast<const ::vitis::ai::proto::YoloV3Param&>(
      ::vitis::ai::proto::_YoloV3Param_default_instance_);
}
inline const ::vitis::ai::proto::YoloV3Param& DpuModelParam::yolo_v3_param() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.DpuModelParam.yolo_v3_param)
  return _internal_yolo_v3_param();
}
inline void DpuModelParam::unsafe_arena_set_allocated_yolo_v3_param(
    ::vitis::ai::proto::YoloV3Param* yolo_v3_param) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.yolo_v3_param_);
  }
  _impl_.yolo_v3_param_ = yolo_v3_param;
  if (yolo_v3_param) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:vitis.ai.proto.DpuModelParam.yolo_v3_param)
}
inline ::vitis::ai::proto::YoloV3Param* DpuModelParam::release_yolo_v3_param() {
  
  ::vitis::ai::proto::YoloV3Param* temp = _impl_.yolo_v3_param_;
  _impl_.yolo_v3_param_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::vitis::ai::proto::YoloV3Param* DpuModelParam::unsafe_arena_release_yolo_v3_param() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.DpuModelParam.yolo_v3_param)
  
  ::vitis::ai::proto::YoloV3Param* temp = _impl_.yolo_v3_param_;
  _impl_.yolo_v3_param_ = nullptr;
  return temp;
}
inline ::vitis::ai::proto::YoloV3Param* DpuModelParam::_internal_mutable_yolo_v3_param() {
  
  if (_impl_.yolo_v3_param_ == nullptr) {
    auto* p = CreateMaybeMessage<::vitis::ai::proto::YoloV3Param>(GetArenaForAllocation());
    _impl_.yolo_v3_param_ = p;
  }
  return _impl_.yolo_v3_param_;
}
inline ::vitis::ai::proto::YoloV3Param* DpuModelParam::mutable_yolo_v3_param() {
  ::vitis::ai::proto::YoloV3Param* _msg = _internal_mutable_yolo_v3_param();
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.DpuModelParam.yolo_v3_param)
  return _msg;
}
inline void DpuModelParam::set_allocated_yolo_v3_param(::vitis::ai::proto::YoloV3Param* yolo_v3_param) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete _impl_.yolo_v3_param_;
  }
  if (yolo_v3_param) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
        ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(yolo_v3_param);
    if (message_arena != submessage_arena) {
      yolo_v3_param = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, yolo_v3_param, submessage_arena);
    }
    
  } else {
    
  }
  _impl_.yolo_v3_param_ = yolo_v3_param;
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.DpuModelParam.yolo_v3_param)
}

// .vitis.ai.proto.SSDParam ssd_param = 6;
inline bool DpuModelParam::_internal_has_ssd_param() const {
  return this != internal_default_instance() && _impl_.ssd_param_ != nullptr;
}
inline bool DpuModelParam::has_ssd_param() const {
  return _internal_has_ssd_param();
}
inline void DpuModelParam::clear_ssd_param() {
  if (GetArenaForAllocation() == nullptr && _impl_.ssd_param_ != nullptr) {
    delete _impl_.ssd_param_;
  }
  _impl_.ssd_param_ = nullptr;
}
inline const ::vitis::ai::proto::SSDParam& DpuModelParam::_internal_ssd_param() const {
  const ::vitis::ai::proto::SSDParam* p = _impl_.ssd_param_;
  return p != nullptr ? *p : reinterpret_cast<const ::vitis::ai::proto::SSDParam&>(
      ::vitis::ai::proto::_SSDParam_default_instance_);
}
inline const ::vitis::ai::proto::SSDParam& DpuModelParam::ssd_param() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.DpuModelParam.ssd_param)
  return _internal_ssd_param();
}
inline void DpuModelParam::unsafe_arena_set_allocated_ssd_param(
    ::vitis::ai::proto::SSDParam* ssd_param) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.ssd_param_);
  }
  _impl_.ssd_param_ = ssd_param;
  if (ssd_param) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:vitis.ai.proto.DpuModelParam.ssd_param)
}
inline ::vitis::ai::proto::SSDParam* DpuModelParam::release_ssd_param() {
  
  ::vitis::ai::proto::SSDParam* temp = _impl_.ssd_param_;
  _impl_.ssd_param_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::vitis::ai::proto::SSDParam* DpuModelParam::unsafe_arena_release_ssd_param() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.DpuModelParam.ssd_param)
  
  ::vitis::ai::proto::SSDParam* temp = _impl_.ssd_param_;
  _impl_.ssd_param_ = nullptr;
  return temp;
}
inline ::vitis::ai::proto::SSDParam* DpuModelParam::_internal_mutable_ssd_param() {
  
  if (_impl_.ssd_param_ == nullptr) {
    auto* p = CreateMaybeMessage<::vitis::ai::proto::SSDParam>(GetArenaForAllocation());
    _impl_.ssd_param_ = p;
  }
  return _impl_.ssd_param_;
}
inline ::vitis::ai::proto::SSDParam* DpuModelParam::mutable_ssd_param() {
  ::vitis::ai::proto::SSDParam* _msg = _internal_mutable_ssd_param();
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.DpuModelParam.ssd_param)
  return _msg;
}
inline void DpuModelParam::set_allocated_ssd_param(::vitis::ai::proto::SSDParam* ssd_param) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete _impl_.ssd_param_;
  }
  if (ssd_param) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
        ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(ssd_param);
    if (message_arena != submessage_arena) {
      ssd_param = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, ssd_param, submessage_arena);
    }
    
  } else {
    
  }
  _impl_.ssd_param_ = ssd_param;
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.DpuModelParam.ssd_param)
}

// .vitis.ai.proto.ClassificationParam classification_param = 7;
inline bool DpuModelParam::_internal_has_classification_param() const {
  return this != internal_default_instance() && _impl_.classification_param_ != nullptr;
}
inline bool DpuModelParam::has_classification_param() const {
  return _internal_has_classification_param();
}
inline void DpuModelParam::clear_classification_param() {
  if (GetArenaForAllocation() == nullptr && _impl_.classification_param_ != nullptr) {
    delete _impl_.classification_param_;
  }
  _impl_.classification_param_ = nullptr;
}
inline const ::vitis::ai::proto::ClassificationParam& DpuModelParam::_internal_classification_param() const {
  const ::vitis::ai::proto::ClassificationParam* p = _impl_.classification_param_;
  return p != nullptr ? *p : reinterpret_cast<const ::vitis::ai::proto::ClassificationParam&>(
      ::vitis::ai::proto::_ClassificationParam_default_instance_);
}
inline const ::vitis::ai::proto::ClassificationParam& DpuModelParam::classification_param() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.DpuModelParam.classification_param)
  return _internal_classification_param();
}
inline void DpuModelParam::unsafe_arena_set_allocated_classification_param(
    ::vitis::ai::proto::ClassificationParam* classification_param) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.classification_param_);
  }
  _impl_.classification_param_ = classification_param;
  if (classification_param) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:vitis.ai.proto.DpuModelParam.classification_param)
}
inline ::vitis::ai::proto::ClassificationParam* DpuModelParam::release_classification_param() {
  
  ::vitis::ai::proto::ClassificationParam* temp = _impl_.classification_param_;
  _impl_.classification_param_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::vitis::ai::proto::ClassificationParam* DpuModelParam::unsafe_arena_release_classification_param() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.DpuModelParam.classification_param)
  
  ::vitis::ai::proto::ClassificationParam* temp = _impl_.classification_param_;
  _impl_.classification_param_ = nullptr;
  return temp;
}
inline ::vitis::ai::proto::ClassificationParam* DpuModelParam::_internal_mutable_classification_param() {
  
  if (_impl_.classification_param_ == nullptr) {
    auto* p = CreateMaybeMessage<::vitis::ai::proto::ClassificationParam>(GetArenaForAllocation());
    _impl_.classification_param_ = p;
  }
  return _impl_.classification_param_;
}
inline ::vitis::ai::proto::ClassificationParam* DpuModelParam::mutable_classification_param() {
  ::vitis::ai::proto::ClassificationParam* _msg = _internal_mutable_classification_param();
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.DpuModelParam.classification_param)
  return _msg;
}
inline void DpuModelParam::set_allocated_classification_param(::vitis::ai::proto::ClassificationParam* classification_param) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete _impl_.classification_param_;
  }
  if (classification_param) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
        ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(classification_param);
    if (message_arena != submessage_arena) {
      classification_param = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, classification_param, submessage_arena);
    }
    
  } else {
    
  }
  _impl_.classification_param_ = classification_param;
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.DpuModelParam.classification_param)
}

// .vitis.ai.proto.DenseBoxParam dense_box_param = 8;
inline bool DpuModelParam::_internal_has_dense_box_param() const {
  return this != internal_default_instance() && _impl_.dense_box_param_ != nullptr;
}
inline bool DpuModelParam::has_dense_box_param() const {
  return _internal_has_dense_box_param();
}
inline void DpuModelParam::clear_dense_box_param() {
  if (GetArenaForAllocation() == nullptr && _impl_.dense_box_param_ != nullptr) {
    delete _impl_.dense_box_param_;
  }
  _impl_.dense_box_param_ = nullptr;
}
inline const ::vitis::ai::proto::DenseBoxParam& DpuModelParam::_internal_dense_box_param() const {
  const ::vitis::ai::proto::DenseBoxParam* p = _impl_.dense_box_param_;
  return p != nullptr ? *p : reinterpret_cast<const ::vitis::ai::proto::DenseBoxParam&>(
      ::vitis::ai::proto::_DenseBoxParam_default_instance_);
}
inline const ::vitis::ai::proto::DenseBoxParam& DpuModelParam::dense_box_param() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.DpuModelParam.dense_box_param)
  return _internal_dense_box_param();
}
inline void DpuModelParam::unsafe_arena_set_allocated_dense_box_param(
    ::vitis::ai::proto::DenseBoxParam* dense_box_param) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.dense_box_param_);
  }
  _impl_.dense_box_param_ = dense_box_param;
  if (dense_box_param) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:vitis.ai.proto.DpuModelParam.dense_box_param)
}
inline ::vitis::ai::proto::DenseBoxParam* DpuModelParam::release_dense_box_param() {
  
  ::vitis::ai::proto::DenseBoxParam* temp = _impl_.dense_box_param_;
  _impl_.dense_box_param_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::vitis::ai::proto::DenseBoxParam* DpuModelParam::unsafe_arena_release_dense_box_param() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.DpuModelParam.dense_box_param)
  
  ::vitis::ai::proto::DenseBoxParam* temp = _impl_.dense_box_param_;
  _impl_.dense_box_param_ = nullptr;
  return temp;
}
inline ::vitis::ai::proto::DenseBoxParam* DpuModelParam::_internal_mutable_dense_box_param() {
  
  if (_impl_.dense_box_param_ == nullptr) {
    auto* p = CreateMaybeMessage<::vitis::ai::proto::DenseBoxParam>(GetArenaForAllocation());
    _impl_.dense_box_param_ = p;
  }
  return _impl_.dense_box_param_;
}
inline ::vitis::ai::proto::DenseBoxParam* DpuModelParam::mutable_dense_box_param() {
  ::vitis::ai::proto::DenseBoxParam* _msg = _internal_mutable_dense_box_param();
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.DpuModelParam.dense_box_param)
  return _msg;
}
inline void DpuModelParam::set_allocated_dense_box_param(::vitis::ai::proto::DenseBoxParam* dense_box_param) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete _impl_.dense_box_param_;
  }
  if (dense_box_param) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
        ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(dense_box_param);
    if (message_arena != submessage_arena) {
      dense_box_param = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, dense_box_param, submessage_arena);
    }
    
  } else {
    
  }
  _impl_.dense_box_param_ = dense_box_param;
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.DpuModelParam.dense_box_param)
}

// .vitis.ai.proto.MultiTaskParam multi_task_param = 9;
inline bool DpuModelParam::_internal_has_multi_task_param() const {
  return this != internal_default_instance() && _impl_.multi_task_param_ != nullptr;
}
inline bool DpuModelParam::has_multi_task_param() const {
  return _internal_has_multi_task_param();
}
inline void DpuModelParam::clear_multi_task_param() {
  if (GetArenaForAllocation() == nullptr && _impl_.multi_task_param_ != nullptr) {
    delete _impl_.multi_task_param_;
  }
  _impl_.multi_task_param_ = nullptr;
}
inline const ::vitis::ai::proto::MultiTaskParam& DpuModelParam::_internal_multi_task_param() const {
  const ::vitis::ai::proto::MultiTaskParam* p = _impl_.multi_task_param_;
  return p != nullptr ? *p : reinterpret_cast<const ::vitis::ai::proto::MultiTaskParam&>(
      ::vitis::ai::proto::_MultiTaskParam_default_instance_);
}
inline const ::vitis::ai::proto::MultiTaskParam& DpuModelParam::multi_task_param() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.DpuModelParam.multi_task_param)
  return _internal_multi_task_param();
}
inline void DpuModelParam::unsafe_arena_set_allocated_multi_task_param(
    ::vitis::ai::proto::MultiTaskParam* multi_task_param) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.multi_task_param_);
  }
  _impl_.multi_task_param_ = multi_task_param;
  if (multi_task_param) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:vitis.ai.proto.DpuModelParam.multi_task_param)
}
inline ::vitis::ai::proto::MultiTaskParam* DpuModelParam::release_multi_task_param() {
  
  ::vitis::ai::proto::MultiTaskParam* temp = _impl_.multi_task_param_;
  _impl_.multi_task_param_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::vitis::ai::proto::MultiTaskParam* DpuModelParam::unsafe_arena_release_multi_task_param() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.DpuModelParam.multi_task_param)
  
  ::vitis::ai::proto::MultiTaskParam* temp = _impl_.multi_task_param_;
  _impl_.multi_task_param_ = nullptr;
  return temp;
}
inline ::vitis::ai::proto::MultiTaskParam* DpuModelParam::_internal_mutable_multi_task_param() {
  
  if (_impl_.multi_task_param_ == nullptr) {
    auto* p = CreateMaybeMessage<::vitis::ai::proto::MultiTaskParam>(GetArenaForAllocation());
    _impl_.multi_task_param_ = p;
  }
  return _impl_.multi_task_param_;
}
inline ::vitis::ai::proto::MultiTaskParam* DpuModelParam::mutable_multi_task_param() {
  ::vitis::ai::proto::MultiTaskParam* _msg = _internal_mutable_multi_task_param();
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.DpuModelParam.multi_task_param)
  return _msg;
}
inline void DpuModelParam::set_allocated_multi_task_param(::vitis::ai::proto::MultiTaskParam* multi_task_param) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete _impl_.multi_task_param_;
  }
  if (multi_task_param) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
        ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(multi_task_param);
    if (message_arena != submessage_arena) {
      multi_task_param = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, multi_task_param, submessage_arena);
    }
    
  } else {
    
  }
  _impl_.multi_task_param_ = multi_task_param;
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.DpuModelParam.multi_task_param)
}

// .vitis.ai.proto.RoadlineParam roadline_param = 10;
inline bool DpuModelParam::_internal_has_roadline_param() const {
  return this != internal_default_instance() && _impl_.roadline_param_ != nullptr;
}
inline bool DpuModelParam::has_roadline_param() const {
  return _internal_has_roadline_param();
}
inline void DpuModelParam::clear_roadline_param() {
  if (GetArenaForAllocation() == nullptr && _impl_.roadline_param_ != nullptr) {
    delete _impl_.roadline_param_;
  }
  _impl_.roadline_param_ = nullptr;
}
inline const ::vitis::ai::proto::RoadlineParam& DpuModelParam::_internal_roadline_param() const {
  const ::vitis::ai::proto::RoadlineParam* p = _impl_.roadline_param_;
  return p != nullptr ? *p : reinterpret_cast<const ::vitis::ai::proto::RoadlineParam&>(
      ::vitis::ai::proto::_RoadlineParam_default_instance_);
}
inline const ::vitis::ai::proto::RoadlineParam& DpuModelParam::roadline_param() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.DpuModelParam.roadline_param)
  return _internal_roadline_param();
}
inline void DpuModelParam::unsafe_arena_set_allocated_roadline_param(
    ::vitis::ai::proto::RoadlineParam* roadline_param) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.roadline_param_);
  }
  _impl_.roadline_param_ = roadline_param;
  if (roadline_param) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:vitis.ai.proto.DpuModelParam.roadline_param)
}
inline ::vitis::ai::proto::RoadlineParam* DpuModelParam::release_roadline_param() {
  
  ::vitis::ai::proto::RoadlineParam* temp = _impl_.roadline_param_;
  _impl_.roadline_param_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::vitis::ai::proto::RoadlineParam* DpuModelParam::unsafe_arena_release_roadline_param() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.DpuModelParam.roadline_param)
  
  ::vitis::ai::proto::RoadlineParam* temp = _impl_.roadline_param_;
  _impl_.roadline_param_ = nullptr;
  return temp;
}
inline ::vitis::ai::proto::RoadlineParam* DpuModelParam::_internal_mutable_roadline_param() {
  
  if (_impl_.roadline_param_ == nullptr) {
    auto* p = CreateMaybeMessage<::vitis::ai::proto::RoadlineParam>(GetArenaForAllocation());
    _impl_.roadline_param_ = p;
  }
  return _impl_.roadline_param_;
}
inline ::vitis::ai::proto::RoadlineParam* DpuModelParam::mutable_roadline_param() {
  ::vitis::ai::proto::RoadlineParam* _msg = _internal_mutable_roadline_param();
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.DpuModelParam.roadline_param)
  return _msg;
}
inline void DpuModelParam::set_allocated_roadline_param(::vitis::ai::proto::RoadlineParam* roadline_param) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete _impl_.roadline_param_;
  }
  if (roadline_param) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
        ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(roadline_param);
    if (message_arena != submessage_arena) {
      roadline_param = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, roadline_param, submessage_arena);
    }
    
  } else {
    
  }
  _impl_.roadline_param_ = roadline_param;
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.DpuModelParam.roadline_param)
}

// .vitis.ai.proto.SegmentationParam segmentation_param = 11;
inline bool DpuModelParam::_internal_has_segmentation_param() const {
  return this != internal_default_instance() && _impl_.segmentation_param_ != nullptr;
}
inline bool DpuModelParam::has_segmentation_param() const {
  return _internal_has_segmentation_param();
}
inline void DpuModelParam::clear_segmentation_param() {
  if (GetArenaForAllocation() == nullptr && _impl_.segmentation_param_ != nullptr) {
    delete _impl_.segmentation_param_;
  }
  _impl_.segmentation_param_ = nullptr;
}
inline const ::vitis::ai::proto::SegmentationParam& DpuModelParam::_internal_segmentation_param() const {
  const ::vitis::ai::proto::SegmentationParam* p = _impl_.segmentation_param_;
  return p != nullptr ? *p : reinterpret_cast<const ::vitis::ai::proto::SegmentationParam&>(
      ::vitis::ai::proto::_SegmentationParam_default_instance_);
}
inline const ::vitis::ai::proto::SegmentationParam& DpuModelParam::segmentation_param() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.DpuModelParam.segmentation_param)
  return _internal_segmentation_param();
}
inline void DpuModelParam::unsafe_arena_set_allocated_segmentation_param(
    ::vitis::ai::proto::SegmentationParam* segmentation_param) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.segmentation_param_);
  }
  _impl_.segmentation_param_ = segmentation_param;
  if (segmentation_param) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:vitis.ai.proto.DpuModelParam.segmentation_param)
}
inline ::vitis::ai::proto::SegmentationParam* DpuModelParam::release_segmentation_param() {
  
  ::vitis::ai::proto::SegmentationParam* temp = _impl_.segmentation_param_;
  _impl_.segmentation_param_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::vitis::ai::proto::SegmentationParam* DpuModelParam::unsafe_arena_release_segmentation_param() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.DpuModelParam.segmentation_param)
  
  ::vitis::ai::proto::SegmentationParam* temp = _impl_.segmentation_param_;
  _impl_.segmentation_param_ = nullptr;
  return temp;
}
inline ::vitis::ai::proto::SegmentationParam* DpuModelParam::_internal_mutable_segmentation_param() {
  
  if (_impl_.segmentation_param_ == nullptr) {
    auto* p = CreateMaybeMessage<::vitis::ai::proto::SegmentationParam>(GetArenaForAllocation());
    _impl_.segmentation_param_ = p;
  }
  return _impl_.segmentation_param_;
}
inline ::vitis::ai::proto::SegmentationParam* DpuModelParam::mutable_segmentation_param() {
  ::vitis::ai::proto::SegmentationParam* _msg = _internal_mutable_segmentation_param();
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.DpuModelParam.segmentation_param)
  return _msg;
}
inline void DpuModelParam::set_allocated_segmentation_param(::vitis::ai::proto::SegmentationParam* segmentation_param) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete _impl_.segmentation_param_;
  }
  if (segmentation_param) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
        ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(segmentation_param);
    if (message_arena != submessage_arena) {
      segmentation_param = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, segmentation_param, submessage_arena);
    }
    
  } else {
    
  }
  _impl_.segmentation_param_ = segmentation_param;
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.DpuModelParam.segmentation_param)
}

// .vitis.ai.proto.LaneParam lane_param = 12;
inline bool DpuModelParam::_internal_has_lane_param() const {
  return this != internal_default_instance() && _impl_.lane_param_ != nullptr;
}
inline bool DpuModelParam::has_lane_param() const {
  return _internal_has_lane_param();
}
inline void DpuModelParam::clear_lane_param() {
  if (GetArenaForAllocation() == nullptr && _impl_.lane_param_ != nullptr) {
    delete _impl_.lane_param_;
  }
  _impl_.lane_param_ = nullptr;
}
inline const ::vitis::ai::proto::LaneParam& DpuModelParam::_internal_lane_param() const {
  const ::vitis::ai::proto::LaneParam* p = _impl_.lane_param_;
  return p != nullptr ? *p : reinterpret_cast<const ::vitis::ai::proto::LaneParam&>(
      ::vitis::ai::proto::_LaneParam_default_instance_);
}
inline const ::vitis::ai::proto::LaneParam& DpuModelParam::lane_param() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.DpuModelParam.lane_param)
  return _internal_lane_param();
}
inline void DpuModelParam::unsafe_arena_set_allocated_lane_param(
    ::vitis::ai::proto::LaneParam* lane_param) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.lane_param_);
  }
  _impl_.lane_param_ = lane_param;
  if (lane_param) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:vitis.ai.proto.DpuModelParam.lane_param)
}
inline ::vitis::ai::proto::LaneParam* DpuModelParam::release_lane_param() {
  
  ::vitis::ai::proto::LaneParam* temp = _impl_.lane_param_;
  _impl_.lane_param_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::vitis::ai::proto::LaneParam* DpuModelParam::unsafe_arena_release_lane_param() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.DpuModelParam.lane_param)
  
  ::vitis::ai::proto::LaneParam* temp = _impl_.lane_param_;
  _impl_.lane_param_ = nullptr;
  return temp;
}
inline ::vitis::ai::proto::LaneParam* DpuModelParam::_internal_mutable_lane_param() {
  
  if (_impl_.lane_param_ == nullptr) {
    auto* p = CreateMaybeMessage<::vitis::ai::proto::LaneParam>(GetArenaForAllocation());
    _impl_.lane_param_ = p;
  }
  return _impl_.lane_param_;
}
inline ::vitis::ai::proto::LaneParam* DpuModelParam::mutable_lane_param() {
  ::vitis::ai::proto::LaneParam* _msg = _internal_mutable_lane_param();
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.DpuModelParam.lane_param)
  return _msg;
}
inline void DpuModelParam::set_allocated_lane_param(::vitis::ai::proto::LaneParam* lane_param) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete _impl_.lane_param_;
  }
  if (lane_param) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
        ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(lane_param);
    if (message_arena != submessage_arena) {
      lane_param = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, lane_param, submessage_arena);
    }
    
  } else {
    
  }
  _impl_.lane_param_ = lane_param;
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.DpuModelParam.lane_param)
}

// .vitis.ai.proto.BlinkerParam blinker_param = 13;
inline bool DpuModelParam::_internal_has_blinker_param() const {
  return this != internal_default_instance() && _impl_.blinker_param_ != nullptr;
}
inline bool DpuModelParam::has_blinker_param() const {
  return _internal_has_blinker_param();
}
inline void DpuModelParam::clear_blinker_param() {
  if (GetArenaForAllocation() == nullptr && _impl_.blinker_param_ != nullptr) {
    delete _impl_.blinker_param_;
  }
  _impl_.blinker_param_ = nullptr;
}
inline const ::vitis::ai::proto::BlinkerParam& DpuModelParam::_internal_blinker_param() const {
  const ::vitis::ai::proto::BlinkerParam* p = _impl_.blinker_param_;
  return p != nullptr ? *p : reinterpret_cast<const ::vitis::ai::proto::BlinkerParam&>(
      ::vitis::ai::proto::_BlinkerParam_default_instance_);
}
inline const ::vitis::ai::proto::BlinkerParam& DpuModelParam::blinker_param() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.DpuModelParam.blinker_param)
  return _internal_blinker_param();
}
inline void DpuModelParam::unsafe_arena_set_allocated_blinker_param(
    ::vitis::ai::proto::BlinkerParam* blinker_param) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.blinker_param_);
  }
  _impl_.blinker_param_ = blinker_param;
  if (blinker_param) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:vitis.ai.proto.DpuModelParam.blinker_param)
}
inline ::vitis::ai::proto::BlinkerParam* DpuModelParam::release_blinker_param() {
  
  ::vitis::ai::proto::BlinkerParam* temp = _impl_.blinker_param_;
  _impl_.blinker_param_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::vitis::ai::proto::BlinkerParam* DpuModelParam::unsafe_arena_release_blinker_param() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.DpuModelParam.blinker_param)
  
  ::vitis::ai::proto::BlinkerParam* temp = _impl_.blinker_param_;
  _impl_.blinker_param_ = nullptr;
  return temp;
}
inline ::vitis::ai::proto::BlinkerParam* DpuModelParam::_internal_mutable_blinker_param() {
  
  if (_impl_.blinker_param_ == nullptr) {
    auto* p = CreateMaybeMessage<::vitis::ai::proto::BlinkerParam>(GetArenaForAllocation());
    _impl_.blinker_param_ = p;
  }
  return _impl_.blinker_param_;
}
inline ::vitis::ai::proto::BlinkerParam* DpuModelParam::mutable_blinker_param() {
  ::vitis::ai::proto::BlinkerParam* _msg = _internal_mutable_blinker_param();
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.DpuModelParam.blinker_param)
  return _msg;
}
inline void DpuModelParam::set_allocated_blinker_param(::vitis::ai::proto::BlinkerParam* blinker_param) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete _impl_.blinker_param_;
  }
  if (blinker_param) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
        ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(blinker_param);
    if (message_arena != submessage_arena) {
      blinker_param = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, blinker_param, submessage_arena);
    }
    
  } else {
    
  }
  _impl_.blinker_param_ = blinker_param;
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.DpuModelParam.blinker_param)
}

// .vitis.ai.proto.SegdetParam segdet_param = 14;
inline bool DpuModelParam::_internal_has_segdet_param() const {
  return this != internal_default_instance() && _impl_.segdet_param_ != nullptr;
}
inline bool DpuModelParam::has_segdet_param() const {
  return _internal_has_segdet_param();
}
inline void DpuModelParam::clear_segdet_param() {
  if (GetArenaForAllocation() == nullptr && _impl_.segdet_param_ != nullptr) {
    delete _impl_.segdet_param_;
  }
  _impl_.segdet_param_ = nullptr;
}
inline const ::vitis::ai::proto::SegdetParam& DpuModelParam::_internal_segdet_param() const {
  const ::vitis::ai::proto::SegdetParam* p = _impl_.segdet_param_;
  return p != nullptr ? *p : reinterpret_cast<const ::vitis::ai::proto::SegdetParam&>(
      ::vitis::ai::proto::_SegdetParam_default_instance_);
}
inline const ::vitis::ai::proto::SegdetParam& DpuModelParam::segdet_param() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.DpuModelParam.segdet_param)
  return _internal_segdet_param();
}
inline void DpuModelParam::unsafe_arena_set_allocated_segdet_param(
    ::vitis::ai::proto::SegdetParam* segdet_param) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.segdet_param_);
  }
  _impl_.segdet_param_ = segdet_param;
  if (segdet_param) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:vitis.ai.proto.DpuModelParam.segdet_param)
}
inline ::vitis::ai::proto::SegdetParam* DpuModelParam::release_segdet_param() {
  
  ::vitis::ai::proto::SegdetParam* temp = _impl_.segdet_param_;
  _impl_.segdet_param_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::vitis::ai::proto::SegdetParam* DpuModelParam::unsafe_arena_release_segdet_param() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.DpuModelParam.segdet_param)
  
  ::vitis::ai::proto::SegdetParam* temp = _impl_.segdet_param_;
  _impl_.segdet_param_ = nullptr;
  return temp;
}
inline ::vitis::ai::proto::SegdetParam* DpuModelParam::_internal_mutable_segdet_param() {
  
  if (_impl_.segdet_param_ == nullptr) {
    auto* p = CreateMaybeMessage<::vitis::ai::proto::SegdetParam>(GetArenaForAllocation());
    _impl_.segdet_param_ = p;
  }
  return _impl_.segdet_param_;
}
inline ::vitis::ai::proto::SegdetParam* DpuModelParam::mutable_segdet_param() {
  ::vitis::ai::proto::SegdetParam* _msg = _internal_mutable_segdet_param();
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.DpuModelParam.segdet_param)
  return _msg;
}
inline void DpuModelParam::set_allocated_segdet_param(::vitis::ai::proto::SegdetParam* segdet_param) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete _impl_.segdet_param_;
  }
  if (segdet_param) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
        ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(segdet_param);
    if (message_arena != submessage_arena) {
      segdet_param = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, segdet_param, submessage_arena);
    }
    
  } else {
    
  }
  _impl_.segdet_param_ = segdet_param;
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.DpuModelParam.segdet_param)
}

// .vitis.ai.proto.RoadlineDeephiParam roadline_dp_param = 15;
inline bool DpuModelParam::_internal_has_roadline_dp_param() const {
  return this != internal_default_instance() && _impl_.roadline_dp_param_ != nullptr;
}
inline bool DpuModelParam::has_roadline_dp_param() const {
  return _internal_has_roadline_dp_param();
}
inline void DpuModelParam::clear_roadline_dp_param() {
  if (GetArenaForAllocation() == nullptr && _impl_.roadline_dp_param_ != nullptr) {
    delete _impl_.roadline_dp_param_;
  }
  _impl_.roadline_dp_param_ = nullptr;
}
inline const ::vitis::ai::proto::RoadlineDeephiParam& DpuModelParam::_internal_roadline_dp_param() const {
  const ::vitis::ai::proto::RoadlineDeephiParam* p = _impl_.roadline_dp_param_;
  return p != nullptr ? *p : reinterpret_cast<const ::vitis::ai::proto::RoadlineDeephiParam&>(
      ::vitis::ai::proto::_RoadlineDeephiParam_default_instance_);
}
inline const ::vitis::ai::proto::RoadlineDeephiParam& DpuModelParam::roadline_dp_param() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.DpuModelParam.roadline_dp_param)
  return _internal_roadline_dp_param();
}
inline void DpuModelParam::unsafe_arena_set_allocated_roadline_dp_param(
    ::vitis::ai::proto::RoadlineDeephiParam* roadline_dp_param) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.roadline_dp_param_);
  }
  _impl_.roadline_dp_param_ = roadline_dp_param;
  if (roadline_dp_param) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:vitis.ai.proto.DpuModelParam.roadline_dp_param)
}
inline ::vitis::ai::proto::RoadlineDeephiParam* DpuModelParam::release_roadline_dp_param() {
  
  ::vitis::ai::proto::RoadlineDeephiParam* temp = _impl_.roadline_dp_param_;
  _impl_.roadline_dp_param_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::vitis::ai::proto::RoadlineDeephiParam* DpuModelParam::unsafe_arena_release_roadline_dp_param() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.DpuModelParam.roadline_dp_param)
  
  ::vitis::ai::proto::RoadlineDeephiParam* temp = _impl_.roadline_dp_param_;
  _impl_.roadline_dp_param_ = nullptr;
  return temp;
}
inline ::vitis::ai::proto::RoadlineDeephiParam* DpuModelParam::_internal_mutable_roadline_dp_param() {
  
  if (_impl_.roadline_dp_param_ == nullptr) {
    auto* p = CreateMaybeMessage<::vitis::ai::proto::RoadlineDeephiParam>(GetArenaForAllocation());
    _impl_.roadline_dp_param_ = p;
  }
  return _impl_.roadline_dp_param_;
}
inline ::vitis::ai::proto::RoadlineDeephiParam* DpuModelParam::mutable_roadline_dp_param() {
  ::vitis::ai::proto::RoadlineDeephiParam* _msg = _internal_mutable_roadline_dp_param();
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.DpuModelParam.roadline_dp_param)
  return _msg;
}
inline void DpuModelParam::set_allocated_roadline_dp_param(::vitis::ai::proto::RoadlineDeephiParam* roadline_dp_param) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete _impl_.roadline_dp_param_;
  }
  if (roadline_dp_param) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
        ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(roadline_dp_param);
    if (message_arena != submessage_arena) {
      roadline_dp_param = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, roadline_dp_param, submessage_arena);
    }
    
  } else {
    
  }
  _impl_.roadline_dp_param_ = roadline_dp_param;
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.DpuModelParam.roadline_dp_param)
}

// bool is_tf = 16;
inline void DpuModelParam::clear_is_tf() {
  _impl_.is_tf_ = false;
}
inline bool DpuModelParam::_internal_is_tf() const {
  return _impl_.is_tf_;
}
inline bool DpuModelParam::is_tf() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.DpuModelParam.is_tf)
  return _internal_is_tf();
}
inline void DpuModelParam::_internal_set_is_tf(bool value) {
  
  _impl_.is_tf_ = value;
}
inline void DpuModelParam::set_is_tf(bool value) {
  _internal_set_is_tf(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.DpuModelParam.is_tf)
}

// .vitis.ai.proto.FaceQuality5ptParam face_quality5pt_param = 17;
inline bool DpuModelParam::_internal_has_face_quality5pt_param() const {
  return this != internal_default_instance() && _impl_.face_quality5pt_param_ != nullptr;
}
inline bool DpuModelParam::has_face_quality5pt_param() const {
  return _internal_has_face_quality5pt_param();
}
inline void DpuModelParam::clear_face_quality5pt_param() {
  if (GetArenaForAllocation() == nullptr && _impl_.face_quality5pt_param_ != nullptr) {
    delete _impl_.face_quality5pt_param_;
  }
  _impl_.face_quality5pt_param_ = nullptr;
}
inline const ::vitis::ai::proto::FaceQuality5ptParam& DpuModelParam::_internal_face_quality5pt_param() const {
  const ::vitis::ai::proto::FaceQuality5ptParam* p = _impl_.face_quality5pt_param_;
  return p != nullptr ? *p : reinterpret_cast<const ::vitis::ai::proto::FaceQuality5ptParam&>(
      ::vitis::ai::proto::_FaceQuality5ptParam_default_instance_);
}
inline const ::vitis::ai::proto::FaceQuality5ptParam& DpuModelParam::face_quality5pt_param() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.DpuModelParam.face_quality5pt_param)
  return _internal_face_quality5pt_param();
}
inline void DpuModelParam::unsafe_arena_set_allocated_face_quality5pt_param(
    ::vitis::ai::proto::FaceQuality5ptParam* face_quality5pt_param) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.face_quality5pt_param_);
  }
  _impl_.face_quality5pt_param_ = face_quality5pt_param;
  if (face_quality5pt_param) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:vitis.ai.proto.DpuModelParam.face_quality5pt_param)
}
inline ::vitis::ai::proto::FaceQuality5ptParam* DpuModelParam::release_face_quality5pt_param() {
  
  ::vitis::ai::proto::FaceQuality5ptParam* temp = _impl_.face_quality5pt_param_;
  _impl_.face_quality5pt_param_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::vitis::ai::proto::FaceQuality5ptParam* DpuModelParam::unsafe_arena_release_face_quality5pt_param() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.DpuModelParam.face_quality5pt_param)
  
  ::vitis::ai::proto::FaceQuality5ptParam* temp = _impl_.face_quality5pt_param_;
  _impl_.face_quality5pt_param_ = nullptr;
  return temp;
}
inline ::vitis::ai::proto::FaceQuality5ptParam* DpuModelParam::_internal_mutable_face_quality5pt_param() {
  
  if (_impl_.face_quality5pt_param_ == nullptr) {
    auto* p = CreateMaybeMessage<::vitis::ai::proto::FaceQuality5ptParam>(GetArenaForAllocation());
    _impl_.face_quality5pt_param_ = p;
  }
  return _impl_.face_quality5pt_param_;
}
inline ::vitis::ai::proto::FaceQuality5ptParam* DpuModelParam::mutable_face_quality5pt_param() {
  ::vitis::ai::proto::FaceQuality5ptParam* _msg = _internal_mutable_face_quality5pt_param();
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.DpuModelParam.face_quality5pt_param)
  return _msg;
}
inline void DpuModelParam::set_allocated_face_quality5pt_param(::vitis::ai::proto::FaceQuality5ptParam* face_quality5pt_param) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete _impl_.face_quality5pt_param_;
  }
  if (face_quality5pt_param) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
        ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(face_quality5pt_param);
    if (message_arena != submessage_arena) {
      face_quality5pt_param = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, face_quality5pt_param, submessage_arena);
    }
    
  } else {
    
  }
  _impl_.face_quality5pt_param_ = face_quality5pt_param;
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.DpuModelParam.face_quality5pt_param)
}

// .vitis.ai.proto.TfssdParam tfssd_param = 18;
inline bool DpuModelParam::_internal_has_tfssd_param() const {
  return this != internal_default_instance() && _impl_.tfssd_param_ != nullptr;
}
inline bool DpuModelParam::has_tfssd_param() const {
  return _internal_has_tfssd_param();
}
inline void DpuModelParam::clear_tfssd_param() {
  if (GetArenaForAllocation() == nullptr && _impl_.tfssd_param_ != nullptr) {
    delete _impl_.tfssd_param_;
  }
  _impl_.tfssd_param_ = nullptr;
}
inline const ::vitis::ai::proto::TfssdParam& DpuModelParam::_internal_tfssd_param() const {
  const ::vitis::ai::proto::TfssdParam* p = _impl_.tfssd_param_;
  return p != nullptr ? *p : reinterpret_cast<const ::vitis::ai::proto::TfssdParam&>(
      ::vitis::ai::proto::_TfssdParam_default_instance_);
}
inline const ::vitis::ai::proto::TfssdParam& DpuModelParam::tfssd_param() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.DpuModelParam.tfssd_param)
  return _internal_tfssd_param();
}
inline void DpuModelParam::unsafe_arena_set_allocated_tfssd_param(
    ::vitis::ai::proto::TfssdParam* tfssd_param) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.tfssd_param_);
  }
  _impl_.tfssd_param_ = tfssd_param;
  if (tfssd_param) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:vitis.ai.proto.DpuModelParam.tfssd_param)
}
inline ::vitis::ai::proto::TfssdParam* DpuModelParam::release_tfssd_param() {
  
  ::vitis::ai::proto::TfssdParam* temp = _impl_.tfssd_param_;
  _impl_.tfssd_param_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::vitis::ai::proto::TfssdParam* DpuModelParam::unsafe_arena_release_tfssd_param() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.DpuModelParam.tfssd_param)
  
  ::vitis::ai::proto::TfssdParam* temp = _impl_.tfssd_param_;
  _impl_.tfssd_param_ = nullptr;
  return temp;
}
inline ::vitis::ai::proto::TfssdParam* DpuModelParam::_internal_mutable_tfssd_param() {
  
  if (_impl_.tfssd_param_ == nullptr) {
    auto* p = CreateMaybeMessage<::vitis::ai::proto::TfssdParam>(GetArenaForAllocation());
    _impl_.tfssd_param_ = p;
  }
  return _impl_.tfssd_param_;
}
inline ::vitis::ai::proto::TfssdParam* DpuModelParam::mutable_tfssd_param() {
  ::vitis::ai::proto::TfssdParam* _msg = _internal_mutable_tfssd_param();
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.DpuModelParam.tfssd_param)
  return _msg;
}
inline void DpuModelParam::set_allocated_tfssd_param(::vitis::ai::proto::TfssdParam* tfssd_param) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete _impl_.tfssd_param_;
  }
  if (tfssd_param) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
        ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(tfssd_param);
    if (message_arena != submessage_arena) {
      tfssd_param = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, tfssd_param, submessage_arena);
    }
    
  } else {
    
  }
  _impl_.tfssd_param_ = tfssd_param;
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.DpuModelParam.tfssd_param)
}

// .vitis.ai.proto.OpenPoseParam open_pose_param = 19;
inline bool DpuModelParam::_internal_has_open_pose_param() const {
  return this != internal_default_instance() && _impl_.open_pose_param_ != nullptr;
}
inline bool DpuModelParam::has_open_pose_param() const {
  return _internal_has_open_pose_param();
}
inline void DpuModelParam::clear_open_pose_param() {
  if (GetArenaForAllocation() == nullptr && _impl_.open_pose_param_ != nullptr) {
    delete _impl_.open_pose_param_;
  }
  _impl_.open_pose_param_ = nullptr;
}
inline const ::vitis::ai::proto::OpenPoseParam& DpuModelParam::_internal_open_pose_param() const {
  const ::vitis::ai::proto::OpenPoseParam* p = _impl_.open_pose_param_;
  return p != nullptr ? *p : reinterpret_cast<const ::vitis::ai::proto::OpenPoseParam&>(
      ::vitis::ai::proto::_OpenPoseParam_default_instance_);
}
inline const ::vitis::ai::proto::OpenPoseParam& DpuModelParam::open_pose_param() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.DpuModelParam.open_pose_param)
  return _internal_open_pose_param();
}
inline void DpuModelParam::unsafe_arena_set_allocated_open_pose_param(
    ::vitis::ai::proto::OpenPoseParam* open_pose_param) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.open_pose_param_);
  }
  _impl_.open_pose_param_ = open_pose_param;
  if (open_pose_param) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:vitis.ai.proto.DpuModelParam.open_pose_param)
}
inline ::vitis::ai::proto::OpenPoseParam* DpuModelParam::release_open_pose_param() {
  
  ::vitis::ai::proto::OpenPoseParam* temp = _impl_.open_pose_param_;
  _impl_.open_pose_param_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::vitis::ai::proto::OpenPoseParam* DpuModelParam::unsafe_arena_release_open_pose_param() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.DpuModelParam.open_pose_param)
  
  ::vitis::ai::proto::OpenPoseParam* temp = _impl_.open_pose_param_;
  _impl_.open_pose_param_ = nullptr;
  return temp;
}
inline ::vitis::ai::proto::OpenPoseParam* DpuModelParam::_internal_mutable_open_pose_param() {
  
  if (_impl_.open_pose_param_ == nullptr) {
    auto* p = CreateMaybeMessage<::vitis::ai::proto::OpenPoseParam>(GetArenaForAllocation());
    _impl_.open_pose_param_ = p;
  }
  return _impl_.open_pose_param_;
}
inline ::vitis::ai::proto::OpenPoseParam* DpuModelParam::mutable_open_pose_param() {
  ::vitis::ai::proto::OpenPoseParam* _msg = _internal_mutable_open_pose_param();
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.DpuModelParam.open_pose_param)
  return _msg;
}
inline void DpuModelParam::set_allocated_open_pose_param(::vitis::ai::proto::OpenPoseParam* open_pose_param) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete _impl_.open_pose_param_;
  }
  if (open_pose_param) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
        ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(open_pose_param);
    if (message_arena != submessage_arena) {
      open_pose_param = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, open_pose_param, submessage_arena);
    }
    
  } else {
    
  }
  _impl_.open_pose_param_ = open_pose_param;
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.DpuModelParam.open_pose_param)
}

// .vitis.ai.proto.ReidParam reid_param = 20;
inline bool DpuModelParam::_internal_has_reid_param() const {
  return this != internal_default_instance() && _impl_.reid_param_ != nullptr;
}
inline bool DpuModelParam::has_reid_param() const {
  return _internal_has_reid_param();
}
inline void DpuModelParam::clear_reid_param() {
  if (GetArenaForAllocation() == nullptr && _impl_.reid_param_ != nullptr) {
    delete _impl_.reid_param_;
  }
  _impl_.reid_param_ = nullptr;
}
inline const ::vitis::ai::proto::ReidParam& DpuModelParam::_internal_reid_param() const {
  const ::vitis::ai::proto::ReidParam* p = _impl_.reid_param_;
  return p != nullptr ? *p : reinterpret_cast<const ::vitis::ai::proto::ReidParam&>(
      ::vitis::ai::proto::_ReidParam_default_instance_);
}
inline const ::vitis::ai::proto::ReidParam& DpuModelParam::reid_param() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.DpuModelParam.reid_param)
  return _internal_reid_param();
}
inline void DpuModelParam::unsafe_arena_set_allocated_reid_param(
    ::vitis::ai::proto::ReidParam* reid_param) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.reid_param_);
  }
  _impl_.reid_param_ = reid_param;
  if (reid_param) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:vitis.ai.proto.DpuModelParam.reid_param)
}
inline ::vitis::ai::proto::ReidParam* DpuModelParam::release_reid_param() {
  
  ::vitis::ai::proto::ReidParam* temp = _impl_.reid_param_;
  _impl_.reid_param_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::vitis::ai::proto::ReidParam* DpuModelParam::unsafe_arena_release_reid_param() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.DpuModelParam.reid_param)
  
  ::vitis::ai::proto::ReidParam* temp = _impl_.reid_param_;
  _impl_.reid_param_ = nullptr;
  return temp;
}
inline ::vitis::ai::proto::ReidParam* DpuModelParam::_internal_mutable_reid_param() {
  
  if (_impl_.reid_param_ == nullptr) {
    auto* p = CreateMaybeMessage<::vitis::ai::proto::ReidParam>(GetArenaForAllocation());
    _impl_.reid_param_ = p;
  }
  return _impl_.reid_param_;
}
inline ::vitis::ai::proto::ReidParam* DpuModelParam::mutable_reid_param() {
  ::vitis::ai::proto::ReidParam* _msg = _internal_mutable_reid_param();
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.DpuModelParam.reid_param)
  return _msg;
}
inline void DpuModelParam::set_allocated_reid_param(::vitis::ai::proto::ReidParam* reid_param) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete _impl_.reid_param_;
  }
  if (reid_param) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
        ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(reid_param);
    if (message_arena != submessage_arena) {
      reid_param = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, reid_param, submessage_arena);
    }
    
  } else {
    
  }
  _impl_.reid_param_ = reid_param;
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.DpuModelParam.reid_param)
}

// .vitis.ai.proto.MedicalRefineDetParam medical_refine_det_param = 21;
inline bool DpuModelParam::_internal_has_medical_refine_det_param() const {
  return this != internal_default_instance() && _impl_.medical_refine_det_param_ != nullptr;
}
inline bool DpuModelParam::has_medical_refine_det_param() const {
  return _internal_has_medical_refine_det_param();
}
inline void DpuModelParam::clear_medical_refine_det_param() {
  if (GetArenaForAllocation() == nullptr && _impl_.medical_refine_det_param_ != nullptr) {
    delete _impl_.medical_refine_det_param_;
  }
  _impl_.medical_refine_det_param_ = nullptr;
}
inline const ::vitis::ai::proto::MedicalRefineDetParam& DpuModelParam::_internal_medical_refine_det_param() const {
  const ::vitis::ai::proto::MedicalRefineDetParam* p = _impl_.medical_refine_det_param_;
  return p != nullptr ? *p : reinterpret_cast<const ::vitis::ai::proto::MedicalRefineDetParam&>(
      ::vitis::ai::proto::_MedicalRefineDetParam_default_instance_);
}
inline const ::vitis::ai::proto::MedicalRefineDetParam& DpuModelParam::medical_refine_det_param() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.DpuModelParam.medical_refine_det_param)
  return _internal_medical_refine_det_param();
}
inline void DpuModelParam::unsafe_arena_set_allocated_medical_refine_det_param(
    ::vitis::ai::proto::MedicalRefineDetParam* medical_refine_det_param) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.medical_refine_det_param_);
  }
  _impl_.medical_refine_det_param_ = medical_refine_det_param;
  if (medical_refine_det_param) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:vitis.ai.proto.DpuModelParam.medical_refine_det_param)
}
inline ::vitis::ai::proto::MedicalRefineDetParam* DpuModelParam::release_medical_refine_det_param() {
  
  ::vitis::ai::proto::MedicalRefineDetParam* temp = _impl_.medical_refine_det_param_;
  _impl_.medical_refine_det_param_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::vitis::ai::proto::MedicalRefineDetParam* DpuModelParam::unsafe_arena_release_medical_refine_det_param() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.DpuModelParam.medical_refine_det_param)
  
  ::vitis::ai::proto::MedicalRefineDetParam* temp = _impl_.medical_refine_det_param_;
  _impl_.medical_refine_det_param_ = nullptr;
  return temp;
}
inline ::vitis::ai::proto::MedicalRefineDetParam* DpuModelParam::_internal_mutable_medical_refine_det_param() {
  
  if (_impl_.medical_refine_det_param_ == nullptr) {
    auto* p = CreateMaybeMessage<::vitis::ai::proto::MedicalRefineDetParam>(GetArenaForAllocation());
    _impl_.medical_refine_det_param_ = p;
  }
  return _impl_.medical_refine_det_param_;
}
inline ::vitis::ai::proto::MedicalRefineDetParam* DpuModelParam::mutable_medical_refine_det_param() {
  ::vitis::ai::proto::MedicalRefineDetParam* _msg = _internal_mutable_medical_refine_det_param();
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.DpuModelParam.medical_refine_det_param)
  return _msg;
}
inline void DpuModelParam::set_allocated_medical_refine_det_param(::vitis::ai::proto::MedicalRefineDetParam* medical_refine_det_param) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete _impl_.medical_refine_det_param_;
  }
  if (medical_refine_det_param) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
        ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(medical_refine_det_param);
    if (message_arena != submessage_arena) {
      medical_refine_det_param = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, medical_refine_det_param, submessage_arena);
    }
    
  } else {
    
  }
  _impl_.medical_refine_det_param_ = medical_refine_det_param;
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.DpuModelParam.medical_refine_det_param)
}

// .vitis.ai.proto.PlatenumParam platenum_param = 22;
inline bool DpuModelParam::_internal_has_platenum_param() const {
  return this != internal_default_instance() && _impl_.platenum_param_ != nullptr;
}
inline bool DpuModelParam::has_platenum_param() const {
  return _internal_has_platenum_param();
}
inline void DpuModelParam::clear_platenum_param() {
  if (GetArenaForAllocation() == nullptr && _impl_.platenum_param_ != nullptr) {
    delete _impl_.platenum_param_;
  }
  _impl_.platenum_param_ = nullptr;
}
inline const ::vitis::ai::proto::PlatenumParam& DpuModelParam::_internal_platenum_param() const {
  const ::vitis::ai::proto::PlatenumParam* p = _impl_.platenum_param_;
  return p != nullptr ? *p : reinterpret_cast<const ::vitis::ai::proto::PlatenumParam&>(
      ::vitis::ai::proto::_PlatenumParam_default_instance_);
}
inline const ::vitis::ai::proto::PlatenumParam& DpuModelParam::platenum_param() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.DpuModelParam.platenum_param)
  return _internal_platenum_param();
}
inline void DpuModelParam::unsafe_arena_set_allocated_platenum_param(
    ::vitis::ai::proto::PlatenumParam* platenum_param) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.platenum_param_);
  }
  _impl_.platenum_param_ = platenum_param;
  if (platenum_param) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:vitis.ai.proto.DpuModelParam.platenum_param)
}
inline ::vitis::ai::proto::PlatenumParam* DpuModelParam::release_platenum_param() {
  
  ::vitis::ai::proto::PlatenumParam* temp = _impl_.platenum_param_;
  _impl_.platenum_param_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::vitis::ai::proto::PlatenumParam* DpuModelParam::unsafe_arena_release_platenum_param() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.DpuModelParam.platenum_param)
  
  ::vitis::ai::proto::PlatenumParam* temp = _impl_.platenum_param_;
  _impl_.platenum_param_ = nullptr;
  return temp;
}
inline ::vitis::ai::proto::PlatenumParam* DpuModelParam::_internal_mutable_platenum_param() {
  
  if (_impl_.platenum_param_ == nullptr) {
    auto* p = CreateMaybeMessage<::vitis::ai::proto::PlatenumParam>(GetArenaForAllocation());
    _impl_.platenum_param_ = p;
  }
  return _impl_.platenum_param_;
}
inline ::vitis::ai::proto::PlatenumParam* DpuModelParam::mutable_platenum_param() {
  ::vitis::ai::proto::PlatenumParam* _msg = _internal_mutable_platenum_param();
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.DpuModelParam.platenum_param)
  return _msg;
}
inline void DpuModelParam::set_allocated_platenum_param(::vitis::ai::proto::PlatenumParam* platenum_param) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete _impl_.platenum_param_;
  }
  if (platenum_param) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
        ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(platenum_param);
    if (message_arena != submessage_arena) {
      platenum_param = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, platenum_param, submessage_arena);
    }
    
  } else {
    
  }
  _impl_.platenum_param_ = platenum_param;
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.DpuModelParam.platenum_param)
}

// .vitis.ai.proto.DpuModelParam.OrderType order_type = 23;
inline void DpuModelParam::clear_order_type() {
  _impl_.order_type_ = 0;
}
inline ::vitis::ai::proto::DpuModelParam_OrderType DpuModelParam::_internal_order_type() const {
  return static_cast< ::vitis::ai::proto::DpuModelParam_OrderType >(_impl_.order_type_);
}
inline ::vitis::ai::proto::DpuModelParam_OrderType DpuModelParam::order_type() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.DpuModelParam.order_type)
  return _internal_order_type();
}
inline void DpuModelParam::_internal_set_order_type(::vitis::ai::proto::DpuModelParam_OrderType value) {
  
  _impl_.order_type_ = value;
}
inline void DpuModelParam::set_order_type(::vitis::ai::proto::DpuModelParam_OrderType value) {
  _internal_set_order_type(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.DpuModelParam.order_type)
}

// .vitis.ai.proto.RetinaFaceParam retinaface_param = 24;
inline bool DpuModelParam::_internal_has_retinaface_param() const {
  return this != internal_default_instance() && _impl_.retinaface_param_ != nullptr;
}
inline bool DpuModelParam::has_retinaface_param() const {
  return _internal_has_retinaface_param();
}
inline void DpuModelParam::clear_retinaface_param() {
  if (GetArenaForAllocation() == nullptr && _impl_.retinaface_param_ != nullptr) {
    delete _impl_.retinaface_param_;
  }
  _impl_.retinaface_param_ = nullptr;
}
inline const ::vitis::ai::proto::RetinaFaceParam& DpuModelParam::_internal_retinaface_param() const {
  const ::vitis::ai::proto::RetinaFaceParam* p = _impl_.retinaface_param_;
  return p != nullptr ? *p : reinterpret_cast<const ::vitis::ai::proto::RetinaFaceParam&>(
      ::vitis::ai::proto::_RetinaFaceParam_default_instance_);
}
inline const ::vitis::ai::proto::RetinaFaceParam& DpuModelParam::retinaface_param() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.DpuModelParam.retinaface_param)
  return _internal_retinaface_param();
}
inline void DpuModelParam::unsafe_arena_set_allocated_retinaface_param(
    ::vitis::ai::proto::RetinaFaceParam* retinaface_param) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.retinaface_param_);
  }
  _impl_.retinaface_param_ = retinaface_param;
  if (retinaface_param) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:vitis.ai.proto.DpuModelParam.retinaface_param)
}
inline ::vitis::ai::proto::RetinaFaceParam* DpuModelParam::release_retinaface_param() {
  
  ::vitis::ai::proto::RetinaFaceParam* temp = _impl_.retinaface_param_;
  _impl_.retinaface_param_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::vitis::ai::proto::RetinaFaceParam* DpuModelParam::unsafe_arena_release_retinaface_param() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.DpuModelParam.retinaface_param)
  
  ::vitis::ai::proto::RetinaFaceParam* temp = _impl_.retinaface_param_;
  _impl_.retinaface_param_ = nullptr;
  return temp;
}
inline ::vitis::ai::proto::RetinaFaceParam* DpuModelParam::_internal_mutable_retinaface_param() {
  
  if (_impl_.retinaface_param_ == nullptr) {
    auto* p = CreateMaybeMessage<::vitis::ai::proto::RetinaFaceParam>(GetArenaForAllocation());
    _impl_.retinaface_param_ = p;
  }
  return _impl_.retinaface_param_;
}
inline ::vitis::ai::proto::RetinaFaceParam* DpuModelParam::mutable_retinaface_param() {
  ::vitis::ai::proto::RetinaFaceParam* _msg = _internal_mutable_retinaface_param();
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.DpuModelParam.retinaface_param)
  return _msg;
}
inline void DpuModelParam::set_allocated_retinaface_param(::vitis::ai::proto::RetinaFaceParam* retinaface_param) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete _impl_.retinaface_param_;
  }
  if (retinaface_param) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
        ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(retinaface_param);
    if (message_arena != submessage_arena) {
      retinaface_param = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, retinaface_param, submessage_arena);
    }
    
  } else {
    
  }
  _impl_.retinaface_param_ = retinaface_param;
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.DpuModelParam.retinaface_param)
}

// .vitis.ai.proto.TFRefineDetParam tfrefinedet_param = 25;
inline bool DpuModelParam::_internal_has_tfrefinedet_param() const {
  return this != internal_default_instance() && _impl_.tfrefinedet_param_ != nullptr;
}
inline bool DpuModelParam::has_tfrefinedet_param() const {
  return _internal_has_tfrefinedet_param();
}
inline void DpuModelParam::clear_tfrefinedet_param() {
  if (GetArenaForAllocation() == nullptr && _impl_.tfrefinedet_param_ != nullptr) {
    delete _impl_.tfrefinedet_param_;
  }
  _impl_.tfrefinedet_param_ = nullptr;
}
inline const ::vitis::ai::proto::TFRefineDetParam& DpuModelParam::_internal_tfrefinedet_param() const {
  const ::vitis::ai::proto::TFRefineDetParam* p = _impl_.tfrefinedet_param_;
  return p != nullptr ? *p : reinterpret_cast<const ::vitis::ai::proto::TFRefineDetParam&>(
      ::vitis::ai::proto::_TFRefineDetParam_default_instance_);
}
inline const ::vitis::ai::proto::TFRefineDetParam& DpuModelParam::tfrefinedet_param() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.DpuModelParam.tfrefinedet_param)
  return _internal_tfrefinedet_param();
}
inline void DpuModelParam::unsafe_arena_set_allocated_tfrefinedet_param(
    ::vitis::ai::proto::TFRefineDetParam* tfrefinedet_param) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.tfrefinedet_param_);
  }
  _impl_.tfrefinedet_param_ = tfrefinedet_param;
  if (tfrefinedet_param) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:vitis.ai.proto.DpuModelParam.tfrefinedet_param)
}
inline ::vitis::ai::proto::TFRefineDetParam* DpuModelParam::release_tfrefinedet_param() {
  
  ::vitis::ai::proto::TFRefineDetParam* temp = _impl_.tfrefinedet_param_;
  _impl_.tfrefinedet_param_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::vitis::ai::proto::TFRefineDetParam* DpuModelParam::unsafe_arena_release_tfrefinedet_param() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.DpuModelParam.tfrefinedet_param)
  
  ::vitis::ai::proto::TFRefineDetParam* temp = _impl_.tfrefinedet_param_;
  _impl_.tfrefinedet_param_ = nullptr;
  return temp;
}
inline ::vitis::ai::proto::TFRefineDetParam* DpuModelParam::_internal_mutable_tfrefinedet_param() {
  
  if (_impl_.tfrefinedet_param_ == nullptr) {
    auto* p = CreateMaybeMessage<::vitis::ai::proto::TFRefineDetParam>(GetArenaForAllocation());
    _impl_.tfrefinedet_param_ = p;
  }
  return _impl_.tfrefinedet_param_;
}
inline ::vitis::ai::proto::TFRefineDetParam* DpuModelParam::mutable_tfrefinedet_param() {
  ::vitis::ai::proto::TFRefineDetParam* _msg = _internal_mutable_tfrefinedet_param();
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.DpuModelParam.tfrefinedet_param)
  return _msg;
}
inline void DpuModelParam::set_allocated_tfrefinedet_param(::vitis::ai::proto::TFRefineDetParam* tfrefinedet_param) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete _impl_.tfrefinedet_param_;
  }
  if (tfrefinedet_param) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
        ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(tfrefinedet_param);
    if (message_arena != submessage_arena) {
      tfrefinedet_param = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, tfrefinedet_param, submessage_arena);
    }
    
  } else {
    
  }
  _impl_.tfrefinedet_param_ = tfrefinedet_param;
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.DpuModelParam.tfrefinedet_param)
}

// .vitis.ai.proto.PointPillarsNusParam pointpillars_nus_param = 26;
inline bool DpuModelParam::_internal_has_pointpillars_nus_param() const {
  return this != internal_default_instance() && _impl_.pointpillars_nus_param_ != nullptr;
}
inline bool DpuModelParam::has_pointpillars_nus_param() const {
  return _internal_has_pointpillars_nus_param();
}
inline void DpuModelParam::clear_pointpillars_nus_param() {
  if (GetArenaForAllocation() == nullptr && _impl_.pointpillars_nus_param_ != nullptr) {
    delete _impl_.pointpillars_nus_param_;
  }
  _impl_.pointpillars_nus_param_ = nullptr;
}
inline const ::vitis::ai::proto::PointPillarsNusParam& DpuModelParam::_internal_pointpillars_nus_param() const {
  const ::vitis::ai::proto::PointPillarsNusParam* p = _impl_.pointpillars_nus_param_;
  return p != nullptr ? *p : reinterpret_cast<const ::vitis::ai::proto::PointPillarsNusParam&>(
      ::vitis::ai::proto::_PointPillarsNusParam_default_instance_);
}
inline const ::vitis::ai::proto::PointPillarsNusParam& DpuModelParam::pointpillars_nus_param() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.DpuModelParam.pointpillars_nus_param)
  return _internal_pointpillars_nus_param();
}
inline void DpuModelParam::unsafe_arena_set_allocated_pointpillars_nus_param(
    ::vitis::ai::proto::PointPillarsNusParam* pointpillars_nus_param) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.pointpillars_nus_param_);
  }
  _impl_.pointpillars_nus_param_ = pointpillars_nus_param;
  if (pointpillars_nus_param) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:vitis.ai.proto.DpuModelParam.pointpillars_nus_param)
}
inline ::vitis::ai::proto::PointPillarsNusParam* DpuModelParam::release_pointpillars_nus_param() {
  
  ::vitis::ai::proto::PointPillarsNusParam* temp = _impl_.pointpillars_nus_param_;
  _impl_.pointpillars_nus_param_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::vitis::ai::proto::PointPillarsNusParam* DpuModelParam::unsafe_arena_release_pointpillars_nus_param() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.DpuModelParam.pointpillars_nus_param)
  
  ::vitis::ai::proto::PointPillarsNusParam* temp = _impl_.pointpillars_nus_param_;
  _impl_.pointpillars_nus_param_ = nullptr;
  return temp;
}
inline ::vitis::ai::proto::PointPillarsNusParam* DpuModelParam::_internal_mutable_pointpillars_nus_param() {
  
  if (_impl_.pointpillars_nus_param_ == nullptr) {
    auto* p = CreateMaybeMessage<::vitis::ai::proto::PointPillarsNusParam>(GetArenaForAllocation());
    _impl_.pointpillars_nus_param_ = p;
  }
  return _impl_.pointpillars_nus_param_;
}
inline ::vitis::ai::proto::PointPillarsNusParam* DpuModelParam::mutable_pointpillars_nus_param() {
  ::vitis::ai::proto::PointPillarsNusParam* _msg = _internal_mutable_pointpillars_nus_param();
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.DpuModelParam.pointpillars_nus_param)
  return _msg;
}
inline void DpuModelParam::set_allocated_pointpillars_nus_param(::vitis::ai::proto::PointPillarsNusParam* pointpillars_nus_param) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete _impl_.pointpillars_nus_param_;
  }
  if (pointpillars_nus_param) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
        ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(pointpillars_nus_param);
    if (message_arena != submessage_arena) {
      pointpillars_nus_param = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, pointpillars_nus_param, submessage_arena);
    }
    
  } else {
    
  }
  _impl_.pointpillars_nus_param_ = pointpillars_nus_param;
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.DpuModelParam.pointpillars_nus_param)
}

// .vitis.ai.proto.Segmentation3DParam segmentation_3d_param = 27;
inline bool DpuModelParam::_internal_has_segmentation_3d_param() const {
  return this != internal_default_instance() && _impl_.segmentation_3d_param_ != nullptr;
}
inline bool DpuModelParam::has_segmentation_3d_param() const {
  return _internal_has_segmentation_3d_param();
}
inline void DpuModelParam::clear_segmentation_3d_param() {
  if (GetArenaForAllocation() == nullptr && _impl_.segmentation_3d_param_ != nullptr) {
    delete _impl_.segmentation_3d_param_;
  }
  _impl_.segmentation_3d_param_ = nullptr;
}
inline const ::vitis::ai::proto::Segmentation3DParam& DpuModelParam::_internal_segmentation_3d_param() const {
  const ::vitis::ai::proto::Segmentation3DParam* p = _impl_.segmentation_3d_param_;
  return p != nullptr ? *p : reinterpret_cast<const ::vitis::ai::proto::Segmentation3DParam&>(
      ::vitis::ai::proto::_Segmentation3DParam_default_instance_);
}
inline const ::vitis::ai::proto::Segmentation3DParam& DpuModelParam::segmentation_3d_param() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.DpuModelParam.segmentation_3d_param)
  return _internal_segmentation_3d_param();
}
inline void DpuModelParam::unsafe_arena_set_allocated_segmentation_3d_param(
    ::vitis::ai::proto::Segmentation3DParam* segmentation_3d_param) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.segmentation_3d_param_);
  }
  _impl_.segmentation_3d_param_ = segmentation_3d_param;
  if (segmentation_3d_param) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:vitis.ai.proto.DpuModelParam.segmentation_3d_param)
}
inline ::vitis::ai::proto::Segmentation3DParam* DpuModelParam::release_segmentation_3d_param() {
  
  ::vitis::ai::proto::Segmentation3DParam* temp = _impl_.segmentation_3d_param_;
  _impl_.segmentation_3d_param_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::vitis::ai::proto::Segmentation3DParam* DpuModelParam::unsafe_arena_release_segmentation_3d_param() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.DpuModelParam.segmentation_3d_param)
  
  ::vitis::ai::proto::Segmentation3DParam* temp = _impl_.segmentation_3d_param_;
  _impl_.segmentation_3d_param_ = nullptr;
  return temp;
}
inline ::vitis::ai::proto::Segmentation3DParam* DpuModelParam::_internal_mutable_segmentation_3d_param() {
  
  if (_impl_.segmentation_3d_param_ == nullptr) {
    auto* p = CreateMaybeMessage<::vitis::ai::proto::Segmentation3DParam>(GetArenaForAllocation());
    _impl_.segmentation_3d_param_ = p;
  }
  return _impl_.segmentation_3d_param_;
}
inline ::vitis::ai::proto::Segmentation3DParam* DpuModelParam::mutable_segmentation_3d_param() {
  ::vitis::ai::proto::Segmentation3DParam* _msg = _internal_mutable_segmentation_3d_param();
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.DpuModelParam.segmentation_3d_param)
  return _msg;
}
inline void DpuModelParam::set_allocated_segmentation_3d_param(::vitis::ai::proto::Segmentation3DParam* segmentation_3d_param) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete _impl_.segmentation_3d_param_;
  }
  if (segmentation_3d_param) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
        ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(segmentation_3d_param);
    if (message_arena != submessage_arena) {
      segmentation_3d_param = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, segmentation_3d_param, submessage_arena);
    }
    
  } else {
    
  }
  _impl_.segmentation_3d_param_ = segmentation_3d_param;
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.DpuModelParam.segmentation_3d_param)
}

// .vitis.ai.proto.YoloV5Param yolo_v5_param = 29;
inline bool DpuModelParam::_internal_has_yolo_v5_param() const {
  return this != internal_default_instance() && _impl_.yolo_v5_param_ != nullptr;
}
inline bool DpuModelParam::has_yolo_v5_param() const {
  return _internal_has_yolo_v5_param();
}
inline void DpuModelParam::clear_yolo_v5_param() {
  if (GetArenaForAllocation() == nullptr && _impl_.yolo_v5_param_ != nullptr) {
    delete _impl_.yolo_v5_param_;
  }
  _impl_.yolo_v5_param_ = nullptr;
}
inline const ::vitis::ai::proto::YoloV5Param& DpuModelParam::_internal_yolo_v5_param() const {
  const ::vitis::ai::proto::YoloV5Param* p = _impl_.yolo_v5_param_;
  return p != nullptr ? *p : reinterpret_cast<const ::vitis::ai::proto::YoloV5Param&>(
      ::vitis::ai::proto::_YoloV5Param_default_instance_);
}
inline const ::vitis::ai::proto::YoloV5Param& DpuModelParam::yolo_v5_param() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.DpuModelParam.yolo_v5_param)
  return _internal_yolo_v5_param();
}
inline void DpuModelParam::unsafe_arena_set_allocated_yolo_v5_param(
    ::vitis::ai::proto::YoloV5Param* yolo_v5_param) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.yolo_v5_param_);
  }
  _impl_.yolo_v5_param_ = yolo_v5_param;
  if (yolo_v5_param) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:vitis.ai.proto.DpuModelParam.yolo_v5_param)
}
inline ::vitis::ai::proto::YoloV5Param* DpuModelParam::release_yolo_v5_param() {
  
  ::vitis::ai::proto::YoloV5Param* temp = _impl_.yolo_v5_param_;
  _impl_.yolo_v5_param_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::vitis::ai::proto::YoloV5Param* DpuModelParam::unsafe_arena_release_yolo_v5_param() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.DpuModelParam.yolo_v5_param)
  
  ::vitis::ai::proto::YoloV5Param* temp = _impl_.yolo_v5_param_;
  _impl_.yolo_v5_param_ = nullptr;
  return temp;
}
inline ::vitis::ai::proto::YoloV5Param* DpuModelParam::_internal_mutable_yolo_v5_param() {
  
  if (_impl_.yolo_v5_param_ == nullptr) {
    auto* p = CreateMaybeMessage<::vitis::ai::proto::YoloV5Param>(GetArenaForAllocation());
    _impl_.yolo_v5_param_ = p;
  }
  return _impl_.yolo_v5_param_;
}
inline ::vitis::ai::proto::YoloV5Param* DpuModelParam::mutable_yolo_v5_param() {
  ::vitis::ai::proto::YoloV5Param* _msg = _internal_mutable_yolo_v5_param();
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.DpuModelParam.yolo_v5_param)
  return _msg;
}
inline void DpuModelParam::set_allocated_yolo_v5_param(::vitis::ai::proto::YoloV5Param* yolo_v5_param) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete _impl_.yolo_v5_param_;
  }
  if (yolo_v5_param) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
        ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(yolo_v5_param);
    if (message_arena != submessage_arena) {
      yolo_v5_param = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, yolo_v5_param, submessage_arena);
    }
    
  } else {
    
  }
  _impl_.yolo_v5_param_ = yolo_v5_param;
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.DpuModelParam.yolo_v5_param)
}

// .vitis.ai.proto.BTSParam bts_param = 30;
inline bool DpuModelParam::_internal_has_bts_param() const {
  return this != internal_default_instance() && _impl_.bts_param_ != nullptr;
}
inline bool DpuModelParam::has_bts_param() const {
  return _internal_has_bts_param();
}
inline void DpuModelParam::clear_bts_param() {
  if (GetArenaForAllocation() == nullptr && _impl_.bts_param_ != nullptr) {
    delete _impl_.bts_param_;
  }
  _impl_.bts_param_ = nullptr;
}
inline const ::vitis::ai::proto::BTSParam& DpuModelParam::_internal_bts_param() const {
  const ::vitis::ai::proto::BTSParam* p = _impl_.bts_param_;
  return p != nullptr ? *p : reinterpret_cast<const ::vitis::ai::proto::BTSParam&>(
      ::vitis::ai::proto::_BTSParam_default_instance_);
}
inline const ::vitis::ai::proto::BTSParam& DpuModelParam::bts_param() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.DpuModelParam.bts_param)
  return _internal_bts_param();
}
inline void DpuModelParam::unsafe_arena_set_allocated_bts_param(
    ::vitis::ai::proto::BTSParam* bts_param) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.bts_param_);
  }
  _impl_.bts_param_ = bts_param;
  if (bts_param) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:vitis.ai.proto.DpuModelParam.bts_param)
}
inline ::vitis::ai::proto::BTSParam* DpuModelParam::release_bts_param() {
  
  ::vitis::ai::proto::BTSParam* temp = _impl_.bts_param_;
  _impl_.bts_param_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::vitis::ai::proto::BTSParam* DpuModelParam::unsafe_arena_release_bts_param() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.DpuModelParam.bts_param)
  
  ::vitis::ai::proto::BTSParam* temp = _impl_.bts_param_;
  _impl_.bts_param_ = nullptr;
  return temp;
}
inline ::vitis::ai::proto::BTSParam* DpuModelParam::_internal_mutable_bts_param() {
  
  if (_impl_.bts_param_ == nullptr) {
    auto* p = CreateMaybeMessage<::vitis::ai::proto::BTSParam>(GetArenaForAllocation());
    _impl_.bts_param_ = p;
  }
  return _impl_.bts_param_;
}
inline ::vitis::ai::proto::BTSParam* DpuModelParam::mutable_bts_param() {
  ::vitis::ai::proto::BTSParam* _msg = _internal_mutable_bts_param();
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.DpuModelParam.bts_param)
  return _msg;
}
inline void DpuModelParam::set_allocated_bts_param(::vitis::ai::proto::BTSParam* bts_param) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete _impl_.bts_param_;
  }
  if (bts_param) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
        ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(bts_param);
    if (message_arena != submessage_arena) {
      bts_param = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, bts_param, submessage_arena);
    }
    
  } else {
    
  }
  _impl_.bts_param_ = bts_param;
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.DpuModelParam.bts_param)
}

// .vitis.ai.proto.FairMotParam fair_mot_param = 31;
inline bool DpuModelParam::_internal_has_fair_mot_param() const {
  return this != internal_default_instance() && _impl_.fair_mot_param_ != nullptr;
}
inline bool DpuModelParam::has_fair_mot_param() const {
  return _internal_has_fair_mot_param();
}
inline void DpuModelParam::clear_fair_mot_param() {
  if (GetArenaForAllocation() == nullptr && _impl_.fair_mot_param_ != nullptr) {
    delete _impl_.fair_mot_param_;
  }
  _impl_.fair_mot_param_ = nullptr;
}
inline const ::vitis::ai::proto::FairMotParam& DpuModelParam::_internal_fair_mot_param() const {
  const ::vitis::ai::proto::FairMotParam* p = _impl_.fair_mot_param_;
  return p != nullptr ? *p : reinterpret_cast<const ::vitis::ai::proto::FairMotParam&>(
      ::vitis::ai::proto::_FairMotParam_default_instance_);
}
inline const ::vitis::ai::proto::FairMotParam& DpuModelParam::fair_mot_param() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.DpuModelParam.fair_mot_param)
  return _internal_fair_mot_param();
}
inline void DpuModelParam::unsafe_arena_set_allocated_fair_mot_param(
    ::vitis::ai::proto::FairMotParam* fair_mot_param) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.fair_mot_param_);
  }
  _impl_.fair_mot_param_ = fair_mot_param;
  if (fair_mot_param) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:vitis.ai.proto.DpuModelParam.fair_mot_param)
}
inline ::vitis::ai::proto::FairMotParam* DpuModelParam::release_fair_mot_param() {
  
  ::vitis::ai::proto::FairMotParam* temp = _impl_.fair_mot_param_;
  _impl_.fair_mot_param_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::vitis::ai::proto::FairMotParam* DpuModelParam::unsafe_arena_release_fair_mot_param() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.DpuModelParam.fair_mot_param)
  
  ::vitis::ai::proto::FairMotParam* temp = _impl_.fair_mot_param_;
  _impl_.fair_mot_param_ = nullptr;
  return temp;
}
inline ::vitis::ai::proto::FairMotParam* DpuModelParam::_internal_mutable_fair_mot_param() {
  
  if (_impl_.fair_mot_param_ == nullptr) {
    auto* p = CreateMaybeMessage<::vitis::ai::proto::FairMotParam>(GetArenaForAllocation());
    _impl_.fair_mot_param_ = p;
  }
  return _impl_.fair_mot_param_;
}
inline ::vitis::ai::proto::FairMotParam* DpuModelParam::mutable_fair_mot_param() {
  ::vitis::ai::proto::FairMotParam* _msg = _internal_mutable_fair_mot_param();
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.DpuModelParam.fair_mot_param)
  return _msg;
}
inline void DpuModelParam::set_allocated_fair_mot_param(::vitis::ai::proto::FairMotParam* fair_mot_param) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete _impl_.fair_mot_param_;
  }
  if (fair_mot_param) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
        ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(fair_mot_param);
    if (message_arena != submessage_arena) {
      fair_mot_param = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, fair_mot_param, submessage_arena);
    }
    
  } else {
    
  }
  _impl_.fair_mot_param_ = fair_mot_param;
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.DpuModelParam.fair_mot_param)
}

// .vitis.ai.proto.X_Autonomous3DParam x_autonomous3d_param = 32;
inline bool DpuModelParam::_internal_has_x_autonomous3d_param() const {
  return this != internal_default_instance() && _impl_.x_autonomous3d_param_ != nullptr;
}
inline bool DpuModelParam::has_x_autonomous3d_param() const {
  return _internal_has_x_autonomous3d_param();
}
inline void DpuModelParam::clear_x_autonomous3d_param() {
  if (GetArenaForAllocation() == nullptr && _impl_.x_autonomous3d_param_ != nullptr) {
    delete _impl_.x_autonomous3d_param_;
  }
  _impl_.x_autonomous3d_param_ = nullptr;
}
inline const ::vitis::ai::proto::X_Autonomous3DParam& DpuModelParam::_internal_x_autonomous3d_param() const {
  const ::vitis::ai::proto::X_Autonomous3DParam* p = _impl_.x_autonomous3d_param_;
  return p != nullptr ? *p : reinterpret_cast<const ::vitis::ai::proto::X_Autonomous3DParam&>(
      ::vitis::ai::proto::_X_Autonomous3DParam_default_instance_);
}
inline const ::vitis::ai::proto::X_Autonomous3DParam& DpuModelParam::x_autonomous3d_param() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.DpuModelParam.x_autonomous3d_param)
  return _internal_x_autonomous3d_param();
}
inline void DpuModelParam::unsafe_arena_set_allocated_x_autonomous3d_param(
    ::vitis::ai::proto::X_Autonomous3DParam* x_autonomous3d_param) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.x_autonomous3d_param_);
  }
  _impl_.x_autonomous3d_param_ = x_autonomous3d_param;
  if (x_autonomous3d_param) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:vitis.ai.proto.DpuModelParam.x_autonomous3d_param)
}
inline ::vitis::ai::proto::X_Autonomous3DParam* DpuModelParam::release_x_autonomous3d_param() {
  
  ::vitis::ai::proto::X_Autonomous3DParam* temp = _impl_.x_autonomous3d_param_;
  _impl_.x_autonomous3d_param_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::vitis::ai::proto::X_Autonomous3DParam* DpuModelParam::unsafe_arena_release_x_autonomous3d_param() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.DpuModelParam.x_autonomous3d_param)
  
  ::vitis::ai::proto::X_Autonomous3DParam* temp = _impl_.x_autonomous3d_param_;
  _impl_.x_autonomous3d_param_ = nullptr;
  return temp;
}
inline ::vitis::ai::proto::X_Autonomous3DParam* DpuModelParam::_internal_mutable_x_autonomous3d_param() {
  
  if (_impl_.x_autonomous3d_param_ == nullptr) {
    auto* p = CreateMaybeMessage<::vitis::ai::proto::X_Autonomous3DParam>(GetArenaForAllocation());
    _impl_.x_autonomous3d_param_ = p;
  }
  return _impl_.x_autonomous3d_param_;
}
inline ::vitis::ai::proto::X_Autonomous3DParam* DpuModelParam::mutable_x_autonomous3d_param() {
  ::vitis::ai::proto::X_Autonomous3DParam* _msg = _internal_mutable_x_autonomous3d_param();
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.DpuModelParam.x_autonomous3d_param)
  return _msg;
}
inline void DpuModelParam::set_allocated_x_autonomous3d_param(::vitis::ai::proto::X_Autonomous3DParam* x_autonomous3d_param) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete _impl_.x_autonomous3d_param_;
  }
  if (x_autonomous3d_param) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
        ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(x_autonomous3d_param);
    if (message_arena != submessage_arena) {
      x_autonomous3d_param = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, x_autonomous3d_param, submessage_arena);
    }
    
  } else {
    
  }
  _impl_.x_autonomous3d_param_ = x_autonomous3d_param;
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.DpuModelParam.x_autonomous3d_param)
}

// .vitis.ai.proto.PointPillarsKittiParam pointpillars_kitti_param = 33;
inline bool DpuModelParam::_internal_has_pointpillars_kitti_param() const {
  return this != internal_default_instance() && _impl_.pointpillars_kitti_param_ != nullptr;
}
inline bool DpuModelParam::has_pointpillars_kitti_param() const {
  return _internal_has_pointpillars_kitti_param();
}
inline void DpuModelParam::clear_pointpillars_kitti_param() {
  if (GetArenaForAllocation() == nullptr && _impl_.pointpillars_kitti_param_ != nullptr) {
    delete _impl_.pointpillars_kitti_param_;
  }
  _impl_.pointpillars_kitti_param_ = nullptr;
}
inline const ::vitis::ai::proto::PointPillarsKittiParam& DpuModelParam::_internal_pointpillars_kitti_param() const {
  const ::vitis::ai::proto::PointPillarsKittiParam* p = _impl_.pointpillars_kitti_param_;
  return p != nullptr ? *p : reinterpret_cast<const ::vitis::ai::proto::PointPillarsKittiParam&>(
      ::vitis::ai::proto::_PointPillarsKittiParam_default_instance_);
}
inline const ::vitis::ai::proto::PointPillarsKittiParam& DpuModelParam::pointpillars_kitti_param() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.DpuModelParam.pointpillars_kitti_param)
  return _internal_pointpillars_kitti_param();
}
inline void DpuModelParam::unsafe_arena_set_allocated_pointpillars_kitti_param(
    ::vitis::ai::proto::PointPillarsKittiParam* pointpillars_kitti_param) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.pointpillars_kitti_param_);
  }
  _impl_.pointpillars_kitti_param_ = pointpillars_kitti_param;
  if (pointpillars_kitti_param) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:vitis.ai.proto.DpuModelParam.pointpillars_kitti_param)
}
inline ::vitis::ai::proto::PointPillarsKittiParam* DpuModelParam::release_pointpillars_kitti_param() {
  
  ::vitis::ai::proto::PointPillarsKittiParam* temp = _impl_.pointpillars_kitti_param_;
  _impl_.pointpillars_kitti_param_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::vitis::ai::proto::PointPillarsKittiParam* DpuModelParam::unsafe_arena_release_pointpillars_kitti_param() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.DpuModelParam.pointpillars_kitti_param)
  
  ::vitis::ai::proto::PointPillarsKittiParam* temp = _impl_.pointpillars_kitti_param_;
  _impl_.pointpillars_kitti_param_ = nullptr;
  return temp;
}
inline ::vitis::ai::proto::PointPillarsKittiParam* DpuModelParam::_internal_mutable_pointpillars_kitti_param() {
  
  if (_impl_.pointpillars_kitti_param_ == nullptr) {
    auto* p = CreateMaybeMessage<::vitis::ai::proto::PointPillarsKittiParam>(GetArenaForAllocation());
    _impl_.pointpillars_kitti_param_ = p;
  }
  return _impl_.pointpillars_kitti_param_;
}
inline ::vitis::ai::proto::PointPillarsKittiParam* DpuModelParam::mutable_pointpillars_kitti_param() {
  ::vitis::ai::proto::PointPillarsKittiParam* _msg = _internal_mutable_pointpillars_kitti_param();
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.DpuModelParam.pointpillars_kitti_param)
  return _msg;
}
inline void DpuModelParam::set_allocated_pointpillars_kitti_param(::vitis::ai::proto::PointPillarsKittiParam* pointpillars_kitti_param) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete _impl_.pointpillars_kitti_param_;
  }
  if (pointpillars_kitti_param) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
        ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(pointpillars_kitti_param);
    if (message_arena != submessage_arena) {
      pointpillars_kitti_param = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, pointpillars_kitti_param, submessage_arena);
    }
    
  } else {
    
  }
  _impl_.pointpillars_kitti_param_ = pointpillars_kitti_param;
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.DpuModelParam.pointpillars_kitti_param)
}

// .vitis.ai.proto.SoloParam solo_param = 34;
inline bool DpuModelParam::_internal_has_solo_param() const {
  return this != internal_default_instance() && _impl_.solo_param_ != nullptr;
}
inline bool DpuModelParam::has_solo_param() const {
  return _internal_has_solo_param();
}
inline void DpuModelParam::clear_solo_param() {
  if (GetArenaForAllocation() == nullptr && _impl_.solo_param_ != nullptr) {
    delete _impl_.solo_param_;
  }
  _impl_.solo_param_ = nullptr;
}
inline const ::vitis::ai::proto::SoloParam& DpuModelParam::_internal_solo_param() const {
  const ::vitis::ai::proto::SoloParam* p = _impl_.solo_param_;
  return p != nullptr ? *p : reinterpret_cast<const ::vitis::ai::proto::SoloParam&>(
      ::vitis::ai::proto::_SoloParam_default_instance_);
}
inline const ::vitis::ai::proto::SoloParam& DpuModelParam::solo_param() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.DpuModelParam.solo_param)
  return _internal_solo_param();
}
inline void DpuModelParam::unsafe_arena_set_allocated_solo_param(
    ::vitis::ai::proto::SoloParam* solo_param) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.solo_param_);
  }
  _impl_.solo_param_ = solo_param;
  if (solo_param) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:vitis.ai.proto.DpuModelParam.solo_param)
}
inline ::vitis::ai::proto::SoloParam* DpuModelParam::release_solo_param() {
  
  ::vitis::ai::proto::SoloParam* temp = _impl_.solo_param_;
  _impl_.solo_param_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::vitis::ai::proto::SoloParam* DpuModelParam::unsafe_arena_release_solo_param() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.DpuModelParam.solo_param)
  
  ::vitis::ai::proto::SoloParam* temp = _impl_.solo_param_;
  _impl_.solo_param_ = nullptr;
  return temp;
}
inline ::vitis::ai::proto::SoloParam* DpuModelParam::_internal_mutable_solo_param() {
  
  if (_impl_.solo_param_ == nullptr) {
    auto* p = CreateMaybeMessage<::vitis::ai::proto::SoloParam>(GetArenaForAllocation());
    _impl_.solo_param_ = p;
  }
  return _impl_.solo_param_;
}
inline ::vitis::ai::proto::SoloParam* DpuModelParam::mutable_solo_param() {
  ::vitis::ai::proto::SoloParam* _msg = _internal_mutable_solo_param();
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.DpuModelParam.solo_param)
  return _msg;
}
inline void DpuModelParam::set_allocated_solo_param(::vitis::ai::proto::SoloParam* solo_param) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete _impl_.solo_param_;
  }
  if (solo_param) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
        ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(solo_param);
    if (message_arena != submessage_arena) {
      solo_param = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, solo_param, submessage_arena);
    }
    
  } else {
    
  }
  _impl_.solo_param_ = solo_param;
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.DpuModelParam.solo_param)
}

// repeated .vitis.ai.proto.SubgraphParam subgraph = 35;
inline int DpuModelParam::_internal_subgraph_size() const {
  return _impl_.subgraph_.size();
}
inline int DpuModelParam::subgraph_size() const {
  return _internal_subgraph_size();
}
inline void DpuModelParam::clear_subgraph() {
  _impl_.subgraph_.Clear();
}
inline ::vitis::ai::proto::SubgraphParam* DpuModelParam::mutable_subgraph(int index) {
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.DpuModelParam.subgraph)
  return _impl_.subgraph_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::SubgraphParam >*
DpuModelParam::mutable_subgraph() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.DpuModelParam.subgraph)
  return &_impl_.subgraph_;
}
inline const ::vitis::ai::proto::SubgraphParam& DpuModelParam::_internal_subgraph(int index) const {
  return _impl_.subgraph_.Get(index);
}
inline const ::vitis::ai::proto::SubgraphParam& DpuModelParam::subgraph(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.DpuModelParam.subgraph)
  return _internal_subgraph(index);
}
inline ::vitis::ai::proto::SubgraphParam* DpuModelParam::_internal_add_subgraph() {
  return _impl_.subgraph_.Add();
}
inline ::vitis::ai::proto::SubgraphParam* DpuModelParam::add_subgraph() {
  ::vitis::ai::proto::SubgraphParam* _add = _internal_add_subgraph();
  // @@protoc_insertion_point(field_add:vitis.ai.proto.DpuModelParam.subgraph)
  return _add;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::SubgraphParam >&
DpuModelParam::subgraph() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.DpuModelParam.subgraph)
  return _impl_.subgraph_;
}

// .vitis.ai.proto.ClassificationParam vehicleclassification_param = 36;
inline bool DpuModelParam::_internal_has_vehicleclassification_param() const {
  return this != internal_default_instance() && _impl_.vehicleclassification_param_ != nullptr;
}
inline bool DpuModelParam::has_vehicleclassification_param() const {
  return _internal_has_vehicleclassification_param();
}
inline void DpuModelParam::clear_vehicleclassification_param() {
  if (GetArenaForAllocation() == nullptr && _impl_.vehicleclassification_param_ != nullptr) {
    delete _impl_.vehicleclassification_param_;
  }
  _impl_.vehicleclassification_param_ = nullptr;
}
inline const ::vitis::ai::proto::ClassificationParam& DpuModelParam::_internal_vehicleclassification_param() const {
  const ::vitis::ai::proto::ClassificationParam* p = _impl_.vehicleclassification_param_;
  return p != nullptr ? *p : reinterpret_cast<const ::vitis::ai::proto::ClassificationParam&>(
      ::vitis::ai::proto::_ClassificationParam_default_instance_);
}
inline const ::vitis::ai::proto::ClassificationParam& DpuModelParam::vehicleclassification_param() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.DpuModelParam.vehicleclassification_param)
  return _internal_vehicleclassification_param();
}
inline void DpuModelParam::unsafe_arena_set_allocated_vehicleclassification_param(
    ::vitis::ai::proto::ClassificationParam* vehicleclassification_param) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.vehicleclassification_param_);
  }
  _impl_.vehicleclassification_param_ = vehicleclassification_param;
  if (vehicleclassification_param) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:vitis.ai.proto.DpuModelParam.vehicleclassification_param)
}
inline ::vitis::ai::proto::ClassificationParam* DpuModelParam::release_vehicleclassification_param() {
  
  ::vitis::ai::proto::ClassificationParam* temp = _impl_.vehicleclassification_param_;
  _impl_.vehicleclassification_param_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::vitis::ai::proto::ClassificationParam* DpuModelParam::unsafe_arena_release_vehicleclassification_param() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.DpuModelParam.vehicleclassification_param)
  
  ::vitis::ai::proto::ClassificationParam* temp = _impl_.vehicleclassification_param_;
  _impl_.vehicleclassification_param_ = nullptr;
  return temp;
}
inline ::vitis::ai::proto::ClassificationParam* DpuModelParam::_internal_mutable_vehicleclassification_param() {
  
  if (_impl_.vehicleclassification_param_ == nullptr) {
    auto* p = CreateMaybeMessage<::vitis::ai::proto::ClassificationParam>(GetArenaForAllocation());
    _impl_.vehicleclassification_param_ = p;
  }
  return _impl_.vehicleclassification_param_;
}
inline ::vitis::ai::proto::ClassificationParam* DpuModelParam::mutable_vehicleclassification_param() {
  ::vitis::ai::proto::ClassificationParam* _msg = _internal_mutable_vehicleclassification_param();
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.DpuModelParam.vehicleclassification_param)
  return _msg;
}
inline void DpuModelParam::set_allocated_vehicleclassification_param(::vitis::ai::proto::ClassificationParam* vehicleclassification_param) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete _impl_.vehicleclassification_param_;
  }
  if (vehicleclassification_param) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
        ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(vehicleclassification_param);
    if (message_arena != submessage_arena) {
      vehicleclassification_param = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, vehicleclassification_param, submessage_arena);
    }
    
  } else {
    
  }
  _impl_.vehicleclassification_param_ = vehicleclassification_param;
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.DpuModelParam.vehicleclassification_param)
}

// .vitis.ai.proto.EfficientDetD2Param efficientdet_d2_param = 37;
inline bool DpuModelParam::_internal_has_efficientdet_d2_param() const {
  return this != internal_default_instance() && _impl_.efficientdet_d2_param_ != nullptr;
}
inline bool DpuModelParam::has_efficientdet_d2_param() const {
  return _internal_has_efficientdet_d2_param();
}
inline void DpuModelParam::clear_efficientdet_d2_param() {
  if (GetArenaForAllocation() == nullptr && _impl_.efficientdet_d2_param_ != nullptr) {
    delete _impl_.efficientdet_d2_param_;
  }
  _impl_.efficientdet_d2_param_ = nullptr;
}
inline const ::vitis::ai::proto::EfficientDetD2Param& DpuModelParam::_internal_efficientdet_d2_param() const {
  const ::vitis::ai::proto::EfficientDetD2Param* p = _impl_.efficientdet_d2_param_;
  return p != nullptr ? *p : reinterpret_cast<const ::vitis::ai::proto::EfficientDetD2Param&>(
      ::vitis::ai::proto::_EfficientDetD2Param_default_instance_);
}
inline const ::vitis::ai::proto::EfficientDetD2Param& DpuModelParam::efficientdet_d2_param() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.DpuModelParam.efficientdet_d2_param)
  return _internal_efficientdet_d2_param();
}
inline void DpuModelParam::unsafe_arena_set_allocated_efficientdet_d2_param(
    ::vitis::ai::proto::EfficientDetD2Param* efficientdet_d2_param) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.efficientdet_d2_param_);
  }
  _impl_.efficientdet_d2_param_ = efficientdet_d2_param;
  if (efficientdet_d2_param) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:vitis.ai.proto.DpuModelParam.efficientdet_d2_param)
}
inline ::vitis::ai::proto::EfficientDetD2Param* DpuModelParam::release_efficientdet_d2_param() {
  
  ::vitis::ai::proto::EfficientDetD2Param* temp = _impl_.efficientdet_d2_param_;
  _impl_.efficientdet_d2_param_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::vitis::ai::proto::EfficientDetD2Param* DpuModelParam::unsafe_arena_release_efficientdet_d2_param() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.DpuModelParam.efficientdet_d2_param)
  
  ::vitis::ai::proto::EfficientDetD2Param* temp = _impl_.efficientdet_d2_param_;
  _impl_.efficientdet_d2_param_ = nullptr;
  return temp;
}
inline ::vitis::ai::proto::EfficientDetD2Param* DpuModelParam::_internal_mutable_efficientdet_d2_param() {
  
  if (_impl_.efficientdet_d2_param_ == nullptr) {
    auto* p = CreateMaybeMessage<::vitis::ai::proto::EfficientDetD2Param>(GetArenaForAllocation());
    _impl_.efficientdet_d2_param_ = p;
  }
  return _impl_.efficientdet_d2_param_;
}
inline ::vitis::ai::proto::EfficientDetD2Param* DpuModelParam::mutable_efficientdet_d2_param() {
  ::vitis::ai::proto::EfficientDetD2Param* _msg = _internal_mutable_efficientdet_d2_param();
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.DpuModelParam.efficientdet_d2_param)
  return _msg;
}
inline void DpuModelParam::set_allocated_efficientdet_d2_param(::vitis::ai::proto::EfficientDetD2Param* efficientdet_d2_param) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete _impl_.efficientdet_d2_param_;
  }
  if (efficientdet_d2_param) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
        ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(efficientdet_d2_param);
    if (message_arena != submessage_arena) {
      efficientdet_d2_param = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, efficientdet_d2_param, submessage_arena);
    }
    
  } else {
    
  }
  _impl_.efficientdet_d2_param_ = efficientdet_d2_param;
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.DpuModelParam.efficientdet_d2_param)
}

// .vitis.ai.proto.MovenetParam movenet_param = 38;
inline bool DpuModelParam::_internal_has_movenet_param() const {
  return this != internal_default_instance() && _impl_.movenet_param_ != nullptr;
}
inline bool DpuModelParam::has_movenet_param() const {
  return _internal_has_movenet_param();
}
inline void DpuModelParam::clear_movenet_param() {
  if (GetArenaForAllocation() == nullptr && _impl_.movenet_param_ != nullptr) {
    delete _impl_.movenet_param_;
  }
  _impl_.movenet_param_ = nullptr;
}
inline const ::vitis::ai::proto::MovenetParam& DpuModelParam::_internal_movenet_param() const {
  const ::vitis::ai::proto::MovenetParam* p = _impl_.movenet_param_;
  return p != nullptr ? *p : reinterpret_cast<const ::vitis::ai::proto::MovenetParam&>(
      ::vitis::ai::proto::_MovenetParam_default_instance_);
}
inline const ::vitis::ai::proto::MovenetParam& DpuModelParam::movenet_param() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.DpuModelParam.movenet_param)
  return _internal_movenet_param();
}
inline void DpuModelParam::unsafe_arena_set_allocated_movenet_param(
    ::vitis::ai::proto::MovenetParam* movenet_param) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.movenet_param_);
  }
  _impl_.movenet_param_ = movenet_param;
  if (movenet_param) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:vitis.ai.proto.DpuModelParam.movenet_param)
}
inline ::vitis::ai::proto::MovenetParam* DpuModelParam::release_movenet_param() {
  
  ::vitis::ai::proto::MovenetParam* temp = _impl_.movenet_param_;
  _impl_.movenet_param_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::vitis::ai::proto::MovenetParam* DpuModelParam::unsafe_arena_release_movenet_param() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.DpuModelParam.movenet_param)
  
  ::vitis::ai::proto::MovenetParam* temp = _impl_.movenet_param_;
  _impl_.movenet_param_ = nullptr;
  return temp;
}
inline ::vitis::ai::proto::MovenetParam* DpuModelParam::_internal_mutable_movenet_param() {
  
  if (_impl_.movenet_param_ == nullptr) {
    auto* p = CreateMaybeMessage<::vitis::ai::proto::MovenetParam>(GetArenaForAllocation());
    _impl_.movenet_param_ = p;
  }
  return _impl_.movenet_param_;
}
inline ::vitis::ai::proto::MovenetParam* DpuModelParam::mutable_movenet_param() {
  ::vitis::ai::proto::MovenetParam* _msg = _internal_mutable_movenet_param();
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.DpuModelParam.movenet_param)
  return _msg;
}
inline void DpuModelParam::set_allocated_movenet_param(::vitis::ai::proto::MovenetParam* movenet_param) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete _impl_.movenet_param_;
  }
  if (movenet_param) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
        ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(movenet_param);
    if (message_arena != submessage_arena) {
      movenet_param = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, movenet_param, submessage_arena);
    }
    
  } else {
    
  }
  _impl_.movenet_param_ = movenet_param;
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.DpuModelParam.movenet_param)
}

// .vitis.ai.proto.RcanParam rcan_param = 39;
inline bool DpuModelParam::_internal_has_rcan_param() const {
  return this != internal_default_instance() && _impl_.rcan_param_ != nullptr;
}
inline bool DpuModelParam::has_rcan_param() const {
  return _internal_has_rcan_param();
}
inline void DpuModelParam::clear_rcan_param() {
  if (GetArenaForAllocation() == nullptr && _impl_.rcan_param_ != nullptr) {
    delete _impl_.rcan_param_;
  }
  _impl_.rcan_param_ = nullptr;
}
inline const ::vitis::ai::proto::RcanParam& DpuModelParam::_internal_rcan_param() const {
  const ::vitis::ai::proto::RcanParam* p = _impl_.rcan_param_;
  return p != nullptr ? *p : reinterpret_cast<const ::vitis::ai::proto::RcanParam&>(
      ::vitis::ai::proto::_RcanParam_default_instance_);
}
inline const ::vitis::ai::proto::RcanParam& DpuModelParam::rcan_param() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.DpuModelParam.rcan_param)
  return _internal_rcan_param();
}
inline void DpuModelParam::unsafe_arena_set_allocated_rcan_param(
    ::vitis::ai::proto::RcanParam* rcan_param) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.rcan_param_);
  }
  _impl_.rcan_param_ = rcan_param;
  if (rcan_param) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:vitis.ai.proto.DpuModelParam.rcan_param)
}
inline ::vitis::ai::proto::RcanParam* DpuModelParam::release_rcan_param() {
  
  ::vitis::ai::proto::RcanParam* temp = _impl_.rcan_param_;
  _impl_.rcan_param_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::vitis::ai::proto::RcanParam* DpuModelParam::unsafe_arena_release_rcan_param() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.DpuModelParam.rcan_param)
  
  ::vitis::ai::proto::RcanParam* temp = _impl_.rcan_param_;
  _impl_.rcan_param_ = nullptr;
  return temp;
}
inline ::vitis::ai::proto::RcanParam* DpuModelParam::_internal_mutable_rcan_param() {
  
  if (_impl_.rcan_param_ == nullptr) {
    auto* p = CreateMaybeMessage<::vitis::ai::proto::RcanParam>(GetArenaForAllocation());
    _impl_.rcan_param_ = p;
  }
  return _impl_.rcan_param_;
}
inline ::vitis::ai::proto::RcanParam* DpuModelParam::mutable_rcan_param() {
  ::vitis::ai::proto::RcanParam* _msg = _internal_mutable_rcan_param();
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.DpuModelParam.rcan_param)
  return _msg;
}
inline void DpuModelParam::set_allocated_rcan_param(::vitis::ai::proto::RcanParam* rcan_param) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete _impl_.rcan_param_;
  }
  if (rcan_param) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
        ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(rcan_param);
    if (message_arena != submessage_arena) {
      rcan_param = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, rcan_param, submessage_arena);
    }
    
  } else {
    
  }
  _impl_.rcan_param_ = rcan_param;
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.DpuModelParam.rcan_param)
}

// .vitis.ai.proto.YoloV6Param yolo_v6_param = 40;
inline bool DpuModelParam::_internal_has_yolo_v6_param() const {
  return this != internal_default_instance() && _impl_.yolo_v6_param_ != nullptr;
}
inline bool DpuModelParam::has_yolo_v6_param() const {
  return _internal_has_yolo_v6_param();
}
inline void DpuModelParam::clear_yolo_v6_param() {
  if (GetArenaForAllocation() == nullptr && _impl_.yolo_v6_param_ != nullptr) {
    delete _impl_.yolo_v6_param_;
  }
  _impl_.yolo_v6_param_ = nullptr;
}
inline const ::vitis::ai::proto::YoloV6Param& DpuModelParam::_internal_yolo_v6_param() const {
  const ::vitis::ai::proto::YoloV6Param* p = _impl_.yolo_v6_param_;
  return p != nullptr ? *p : reinterpret_cast<const ::vitis::ai::proto::YoloV6Param&>(
      ::vitis::ai::proto::_YoloV6Param_default_instance_);
}
inline const ::vitis::ai::proto::YoloV6Param& DpuModelParam::yolo_v6_param() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.DpuModelParam.yolo_v6_param)
  return _internal_yolo_v6_param();
}
inline void DpuModelParam::unsafe_arena_set_allocated_yolo_v6_param(
    ::vitis::ai::proto::YoloV6Param* yolo_v6_param) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.yolo_v6_param_);
  }
  _impl_.yolo_v6_param_ = yolo_v6_param;
  if (yolo_v6_param) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:vitis.ai.proto.DpuModelParam.yolo_v6_param)
}
inline ::vitis::ai::proto::YoloV6Param* DpuModelParam::release_yolo_v6_param() {
  
  ::vitis::ai::proto::YoloV6Param* temp = _impl_.yolo_v6_param_;
  _impl_.yolo_v6_param_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::vitis::ai::proto::YoloV6Param* DpuModelParam::unsafe_arena_release_yolo_v6_param() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.DpuModelParam.yolo_v6_param)
  
  ::vitis::ai::proto::YoloV6Param* temp = _impl_.yolo_v6_param_;
  _impl_.yolo_v6_param_ = nullptr;
  return temp;
}
inline ::vitis::ai::proto::YoloV6Param* DpuModelParam::_internal_mutable_yolo_v6_param() {
  
  if (_impl_.yolo_v6_param_ == nullptr) {
    auto* p = CreateMaybeMessage<::vitis::ai::proto::YoloV6Param>(GetArenaForAllocation());
    _impl_.yolo_v6_param_ = p;
  }
  return _impl_.yolo_v6_param_;
}
inline ::vitis::ai::proto::YoloV6Param* DpuModelParam::mutable_yolo_v6_param() {
  ::vitis::ai::proto::YoloV6Param* _msg = _internal_mutable_yolo_v6_param();
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.DpuModelParam.yolo_v6_param)
  return _msg;
}
inline void DpuModelParam::set_allocated_yolo_v6_param(::vitis::ai::proto::YoloV6Param* yolo_v6_param) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete _impl_.yolo_v6_param_;
  }
  if (yolo_v6_param) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
        ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(yolo_v6_param);
    if (message_arena != submessage_arena) {
      yolo_v6_param = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, yolo_v6_param, submessage_arena);
    }
    
  } else {
    
  }
  _impl_.yolo_v6_param_ = yolo_v6_param;
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.DpuModelParam.yolo_v6_param)
}

// .vitis.ai.proto.FcosParam fcos_param = 41;
inline bool DpuModelParam::_internal_has_fcos_param() const {
  return this != internal_default_instance() && _impl_.fcos_param_ != nullptr;
}
inline bool DpuModelParam::has_fcos_param() const {
  return _internal_has_fcos_param();
}
inline void DpuModelParam::clear_fcos_param() {
  if (GetArenaForAllocation() == nullptr && _impl_.fcos_param_ != nullptr) {
    delete _impl_.fcos_param_;
  }
  _impl_.fcos_param_ = nullptr;
}
inline const ::vitis::ai::proto::FcosParam& DpuModelParam::_internal_fcos_param() const {
  const ::vitis::ai::proto::FcosParam* p = _impl_.fcos_param_;
  return p != nullptr ? *p : reinterpret_cast<const ::vitis::ai::proto::FcosParam&>(
      ::vitis::ai::proto::_FcosParam_default_instance_);
}
inline const ::vitis::ai::proto::FcosParam& DpuModelParam::fcos_param() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.DpuModelParam.fcos_param)
  return _internal_fcos_param();
}
inline void DpuModelParam::unsafe_arena_set_allocated_fcos_param(
    ::vitis::ai::proto::FcosParam* fcos_param) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.fcos_param_);
  }
  _impl_.fcos_param_ = fcos_param;
  if (fcos_param) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:vitis.ai.proto.DpuModelParam.fcos_param)
}
inline ::vitis::ai::proto::FcosParam* DpuModelParam::release_fcos_param() {
  
  ::vitis::ai::proto::FcosParam* temp = _impl_.fcos_param_;
  _impl_.fcos_param_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::vitis::ai::proto::FcosParam* DpuModelParam::unsafe_arena_release_fcos_param() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.DpuModelParam.fcos_param)
  
  ::vitis::ai::proto::FcosParam* temp = _impl_.fcos_param_;
  _impl_.fcos_param_ = nullptr;
  return temp;
}
inline ::vitis::ai::proto::FcosParam* DpuModelParam::_internal_mutable_fcos_param() {
  
  if (_impl_.fcos_param_ == nullptr) {
    auto* p = CreateMaybeMessage<::vitis::ai::proto::FcosParam>(GetArenaForAllocation());
    _impl_.fcos_param_ = p;
  }
  return _impl_.fcos_param_;
}
inline ::vitis::ai::proto::FcosParam* DpuModelParam::mutable_fcos_param() {
  ::vitis::ai::proto::FcosParam* _msg = _internal_mutable_fcos_param();
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.DpuModelParam.fcos_param)
  return _msg;
}
inline void DpuModelParam::set_allocated_fcos_param(::vitis::ai::proto::FcosParam* fcos_param) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete _impl_.fcos_param_;
  }
  if (fcos_param) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
        ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(fcos_param);
    if (message_arena != submessage_arena) {
      fcos_param = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, fcos_param, submessage_arena);
    }
    
  } else {
    
  }
  _impl_.fcos_param_ = fcos_param;
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.DpuModelParam.fcos_param)
}

// .vitis.ai.proto.YoloV8Param yolo_v8_param = 42;
inline bool DpuModelParam::_internal_has_yolo_v8_param() const {
  return this != internal_default_instance() && _impl_.yolo_v8_param_ != nullptr;
}
inline bool DpuModelParam::has_yolo_v8_param() const {
  return _internal_has_yolo_v8_param();
}
inline void DpuModelParam::clear_yolo_v8_param() {
  if (GetArenaForAllocation() == nullptr && _impl_.yolo_v8_param_ != nullptr) {
    delete _impl_.yolo_v8_param_;
  }
  _impl_.yolo_v8_param_ = nullptr;
}
inline const ::vitis::ai::proto::YoloV8Param& DpuModelParam::_internal_yolo_v8_param() const {
  const ::vitis::ai::proto::YoloV8Param* p = _impl_.yolo_v8_param_;
  return p != nullptr ? *p : reinterpret_cast<const ::vitis::ai::proto::YoloV8Param&>(
      ::vitis::ai::proto::_YoloV8Param_default_instance_);
}
inline const ::vitis::ai::proto::YoloV8Param& DpuModelParam::yolo_v8_param() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.DpuModelParam.yolo_v8_param)
  return _internal_yolo_v8_param();
}
inline void DpuModelParam::unsafe_arena_set_allocated_yolo_v8_param(
    ::vitis::ai::proto::YoloV8Param* yolo_v8_param) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.yolo_v8_param_);
  }
  _impl_.yolo_v8_param_ = yolo_v8_param;
  if (yolo_v8_param) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:vitis.ai.proto.DpuModelParam.yolo_v8_param)
}
inline ::vitis::ai::proto::YoloV8Param* DpuModelParam::release_yolo_v8_param() {
  
  ::vitis::ai::proto::YoloV8Param* temp = _impl_.yolo_v8_param_;
  _impl_.yolo_v8_param_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::vitis::ai::proto::YoloV8Param* DpuModelParam::unsafe_arena_release_yolo_v8_param() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.DpuModelParam.yolo_v8_param)
  
  ::vitis::ai::proto::YoloV8Param* temp = _impl_.yolo_v8_param_;
  _impl_.yolo_v8_param_ = nullptr;
  return temp;
}
inline ::vitis::ai::proto::YoloV8Param* DpuModelParam::_internal_mutable_yolo_v8_param() {
  
  if (_impl_.yolo_v8_param_ == nullptr) {
    auto* p = CreateMaybeMessage<::vitis::ai::proto::YoloV8Param>(GetArenaForAllocation());
    _impl_.yolo_v8_param_ = p;
  }
  return _impl_.yolo_v8_param_;
}
inline ::vitis::ai::proto::YoloV8Param* DpuModelParam::mutable_yolo_v8_param() {
  ::vitis::ai::proto::YoloV8Param* _msg = _internal_mutable_yolo_v8_param();
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.DpuModelParam.yolo_v8_param)
  return _msg;
}
inline void DpuModelParam::set_allocated_yolo_v8_param(::vitis::ai::proto::YoloV8Param* yolo_v8_param) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete _impl_.yolo_v8_param_;
  }
  if (yolo_v8_param) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
        ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(yolo_v8_param);
    if (message_arena != submessage_arena) {
      yolo_v8_param = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, yolo_v8_param, submessage_arena);
    }
    
  } else {
    
  }
  _impl_.yolo_v8_param_ = yolo_v8_param;
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.DpuModelParam.yolo_v8_param)
}

// .vitis.ai.proto.RetinaNetParam retinanet_param = 43;
inline bool DpuModelParam::_internal_has_retinanet_param() const {
  return this != internal_default_instance() && _impl_.retinanet_param_ != nullptr;
}
inline bool DpuModelParam::has_retinanet_param() const {
  return _internal_has_retinanet_param();
}
inline void DpuModelParam::clear_retinanet_param() {
  if (GetArenaForAllocation() == nullptr && _impl_.retinanet_param_ != nullptr) {
    delete _impl_.retinanet_param_;
  }
  _impl_.retinanet_param_ = nullptr;
}
inline const ::vitis::ai::proto::RetinaNetParam& DpuModelParam::_internal_retinanet_param() const {
  const ::vitis::ai::proto::RetinaNetParam* p = _impl_.retinanet_param_;
  return p != nullptr ? *p : reinterpret_cast<const ::vitis::ai::proto::RetinaNetParam&>(
      ::vitis::ai::proto::_RetinaNetParam_default_instance_);
}
inline const ::vitis::ai::proto::RetinaNetParam& DpuModelParam::retinanet_param() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.DpuModelParam.retinanet_param)
  return _internal_retinanet_param();
}
inline void DpuModelParam::unsafe_arena_set_allocated_retinanet_param(
    ::vitis::ai::proto::RetinaNetParam* retinanet_param) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.retinanet_param_);
  }
  _impl_.retinanet_param_ = retinanet_param;
  if (retinanet_param) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:vitis.ai.proto.DpuModelParam.retinanet_param)
}
inline ::vitis::ai::proto::RetinaNetParam* DpuModelParam::release_retinanet_param() {
  
  ::vitis::ai::proto::RetinaNetParam* temp = _impl_.retinanet_param_;
  _impl_.retinanet_param_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::vitis::ai::proto::RetinaNetParam* DpuModelParam::unsafe_arena_release_retinanet_param() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.DpuModelParam.retinanet_param)
  
  ::vitis::ai::proto::RetinaNetParam* temp = _impl_.retinanet_param_;
  _impl_.retinanet_param_ = nullptr;
  return temp;
}
inline ::vitis::ai::proto::RetinaNetParam* DpuModelParam::_internal_mutable_retinanet_param() {
  
  if (_impl_.retinanet_param_ == nullptr) {
    auto* p = CreateMaybeMessage<::vitis::ai::proto::RetinaNetParam>(GetArenaForAllocation());
    _impl_.retinanet_param_ = p;
  }
  return _impl_.retinanet_param_;
}
inline ::vitis::ai::proto::RetinaNetParam* DpuModelParam::mutable_retinanet_param() {
  ::vitis::ai::proto::RetinaNetParam* _msg = _internal_mutable_retinanet_param();
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.DpuModelParam.retinanet_param)
  return _msg;
}
inline void DpuModelParam::set_allocated_retinanet_param(::vitis::ai::proto::RetinaNetParam* retinanet_param) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete _impl_.retinanet_param_;
  }
  if (retinanet_param) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
        ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(retinanet_param);
    if (message_arena != submessage_arena) {
      retinanet_param = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, retinanet_param, submessage_arena);
    }
    
  } else {
    
  }
  _impl_.retinanet_param_ = retinanet_param;
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.DpuModelParam.retinanet_param)
}

// .vitis.ai.proto.YoloV7Param yolo_v7_param = 44;
inline bool DpuModelParam::_internal_has_yolo_v7_param() const {
  return this != internal_default_instance() && _impl_.yolo_v7_param_ != nullptr;
}
inline bool DpuModelParam::has_yolo_v7_param() const {
  return _internal_has_yolo_v7_param();
}
inline void DpuModelParam::clear_yolo_v7_param() {
  if (GetArenaForAllocation() == nullptr && _impl_.yolo_v7_param_ != nullptr) {
    delete _impl_.yolo_v7_param_;
  }
  _impl_.yolo_v7_param_ = nullptr;
}
inline const ::vitis::ai::proto::YoloV7Param& DpuModelParam::_internal_yolo_v7_param() const {
  const ::vitis::ai::proto::YoloV7Param* p = _impl_.yolo_v7_param_;
  return p != nullptr ? *p : reinterpret_cast<const ::vitis::ai::proto::YoloV7Param&>(
      ::vitis::ai::proto::_YoloV7Param_default_instance_);
}
inline const ::vitis::ai::proto::YoloV7Param& DpuModelParam::yolo_v7_param() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.DpuModelParam.yolo_v7_param)
  return _internal_yolo_v7_param();
}
inline void DpuModelParam::unsafe_arena_set_allocated_yolo_v7_param(
    ::vitis::ai::proto::YoloV7Param* yolo_v7_param) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.yolo_v7_param_);
  }
  _impl_.yolo_v7_param_ = yolo_v7_param;
  if (yolo_v7_param) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:vitis.ai.proto.DpuModelParam.yolo_v7_param)
}
inline ::vitis::ai::proto::YoloV7Param* DpuModelParam::release_yolo_v7_param() {
  
  ::vitis::ai::proto::YoloV7Param* temp = _impl_.yolo_v7_param_;
  _impl_.yolo_v7_param_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::vitis::ai::proto::YoloV7Param* DpuModelParam::unsafe_arena_release_yolo_v7_param() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.DpuModelParam.yolo_v7_param)
  
  ::vitis::ai::proto::YoloV7Param* temp = _impl_.yolo_v7_param_;
  _impl_.yolo_v7_param_ = nullptr;
  return temp;
}
inline ::vitis::ai::proto::YoloV7Param* DpuModelParam::_internal_mutable_yolo_v7_param() {
  
  if (_impl_.yolo_v7_param_ == nullptr) {
    auto* p = CreateMaybeMessage<::vitis::ai::proto::YoloV7Param>(GetArenaForAllocation());
    _impl_.yolo_v7_param_ = p;
  }
  return _impl_.yolo_v7_param_;
}
inline ::vitis::ai::proto::YoloV7Param* DpuModelParam::mutable_yolo_v7_param() {
  ::vitis::ai::proto::YoloV7Param* _msg = _internal_mutable_yolo_v7_param();
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.DpuModelParam.yolo_v7_param)
  return _msg;
}
inline void DpuModelParam::set_allocated_yolo_v7_param(::vitis::ai::proto::YoloV7Param* yolo_v7_param) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete _impl_.yolo_v7_param_;
  }
  if (yolo_v7_param) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
        ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(yolo_v7_param);
    if (message_arena != submessage_arena) {
      yolo_v7_param = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, yolo_v7_param, submessage_arena);
    }
    
  } else {
    
  }
  _impl_.yolo_v7_param_ = yolo_v7_param;
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.DpuModelParam.yolo_v7_param)
}

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

// DpuModelParamList

// repeated .vitis.ai.proto.DpuModelParam model = 1;
inline int DpuModelParamList::_internal_model_size() const {
  return _impl_.model_.size();
}
inline int DpuModelParamList::model_size() const {
  return _internal_model_size();
}
inline void DpuModelParamList::clear_model() {
  _impl_.model_.Clear();
}
inline ::vitis::ai::proto::DpuModelParam* DpuModelParamList::mutable_model(int index) {
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.DpuModelParamList.model)
  return _impl_.model_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::DpuModelParam >*
DpuModelParamList::mutable_model() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.DpuModelParamList.model)
  return &_impl_.model_;
}
inline const ::vitis::ai::proto::DpuModelParam& DpuModelParamList::_internal_model(int index) const {
  return _impl_.model_.Get(index);
}
inline const ::vitis::ai::proto::DpuModelParam& DpuModelParamList::model(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.DpuModelParamList.model)
  return _internal_model(index);
}
inline ::vitis::ai::proto::DpuModelParam* DpuModelParamList::_internal_add_model() {
  return _impl_.model_.Add();
}
inline ::vitis::ai::proto::DpuModelParam* DpuModelParamList::add_model() {
  ::vitis::ai::proto::DpuModelParam* _add = _internal_add_model();
  // @@protoc_insertion_point(field_add:vitis.ai.proto.DpuModelParamList.model)
  return _add;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::DpuModelParam >&
DpuModelParamList::model() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.DpuModelParamList.model)
  return _impl_.model_;
}

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

// Attribute

// string label = 1;
inline void Attribute::clear_label() {
  _impl_.label_.ClearToEmpty();
}
inline const std::string& Attribute::label() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.Attribute.label)
  return _internal_label();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void Attribute::set_label(ArgT0&& arg0, ArgT... args) {
 
 _impl_.label_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:vitis.ai.proto.Attribute.label)
}
inline std::string* Attribute::mutable_label() {
  std::string* _s = _internal_mutable_label();
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.Attribute.label)
  return _s;
}
inline const std::string& Attribute::_internal_label() const {
  return _impl_.label_.Get();
}
inline void Attribute::_internal_set_label(const std::string& value) {
  
  _impl_.label_.Set(value, GetArenaForAllocation());
}
inline std::string* Attribute::_internal_mutable_label() {
  
  return _impl_.label_.Mutable(GetArenaForAllocation());
}
inline std::string* Attribute::release_label() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.Attribute.label)
  return _impl_.label_.Release();
}
inline void Attribute::set_allocated_label(std::string* label) {
  if (label != nullptr) {
    
  } else {
    
  }
  _impl_.label_.SetAllocated(label, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (_impl_.label_.IsDefault()) {
    _impl_.label_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.Attribute.label)
}

// uint32 value = 2;
inline void Attribute::clear_value() {
  _impl_.value_ = 0u;
}
inline uint32_t Attribute::_internal_value() const {
  return _impl_.value_;
}
inline uint32_t Attribute::value() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.Attribute.value)
  return _internal_value();
}
inline void Attribute::_internal_set_value(uint32_t value) {
  
  _impl_.value_ = value;
}
inline void Attribute::set_value(uint32_t value) {
  _internal_set_value(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.Attribute.value)
}

// float score = 3;
inline void Attribute::clear_score() {
  _impl_.score_ = 0;
}
inline float Attribute::_internal_score() const {
  return _impl_.score_;
}
inline float Attribute::score() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.Attribute.score)
  return _internal_score();
}
inline void Attribute::_internal_set_score(float value) {
  
  _impl_.score_ = value;
}
inline void Attribute::set_score(float value) {
  _internal_set_score(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.Attribute.score)
}

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

// Point

// float x = 1;
inline void Point::clear_x() {
  _impl_.x_ = 0;
}
inline float Point::_internal_x() const {
  return _impl_.x_;
}
inline float Point::x() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.Point.x)
  return _internal_x();
}
inline void Point::_internal_set_x(float value) {
  
  _impl_.x_ = value;
}
inline void Point::set_x(float value) {
  _internal_set_x(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.Point.x)
}

// float y = 2;
inline void Point::clear_y() {
  _impl_.y_ = 0;
}
inline float Point::_internal_y() const {
  return _impl_.y_;
}
inline float Point::y() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.Point.y)
  return _internal_y();
}
inline void Point::_internal_set_y(float value) {
  
  _impl_.y_ = value;
}
inline void Point::set_y(float value) {
  _internal_set_y(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.Point.y)
}

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

// Size

// float width = 1;
inline void Size::clear_width() {
  _impl_.width_ = 0;
}
inline float Size::_internal_width() const {
  return _impl_.width_;
}
inline float Size::width() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.Size.width)
  return _internal_width();
}
inline void Size::_internal_set_width(float value) {
  
  _impl_.width_ = value;
}
inline void Size::set_width(float value) {
  _internal_set_width(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.Size.width)
}

// float height = 2;
inline void Size::clear_height() {
  _impl_.height_ = 0;
}
inline float Size::_internal_height() const {
  return _impl_.height_;
}
inline float Size::height() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.Size.height)
  return _internal_height();
}
inline void Size::_internal_set_height(float value) {
  
  _impl_.height_ = value;
}
inline void Size::set_height(float value) {
  _internal_set_height(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.Size.height)
}

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

// BoundingBox

// .vitis.ai.proto.ClassificationLabel label = 1;
inline bool BoundingBox::_internal_has_label() const {
  return this != internal_default_instance() && _impl_.label_ != nullptr;
}
inline bool BoundingBox::has_label() const {
  return _internal_has_label();
}
inline void BoundingBox::clear_label() {
  if (GetArenaForAllocation() == nullptr && _impl_.label_ != nullptr) {
    delete _impl_.label_;
  }
  _impl_.label_ = nullptr;
}
inline const ::vitis::ai::proto::ClassificationLabel& BoundingBox::_internal_label() const {
  const ::vitis::ai::proto::ClassificationLabel* p = _impl_.label_;
  return p != nullptr ? *p : reinterpret_cast<const ::vitis::ai::proto::ClassificationLabel&>(
      ::vitis::ai::proto::_ClassificationLabel_default_instance_);
}
inline const ::vitis::ai::proto::ClassificationLabel& BoundingBox::label() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.BoundingBox.label)
  return _internal_label();
}
inline void BoundingBox::unsafe_arena_set_allocated_label(
    ::vitis::ai::proto::ClassificationLabel* label) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.label_);
  }
  _impl_.label_ = label;
  if (label) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:vitis.ai.proto.BoundingBox.label)
}
inline ::vitis::ai::proto::ClassificationLabel* BoundingBox::release_label() {
  
  ::vitis::ai::proto::ClassificationLabel* temp = _impl_.label_;
  _impl_.label_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::vitis::ai::proto::ClassificationLabel* BoundingBox::unsafe_arena_release_label() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.BoundingBox.label)
  
  ::vitis::ai::proto::ClassificationLabel* temp = _impl_.label_;
  _impl_.label_ = nullptr;
  return temp;
}
inline ::vitis::ai::proto::ClassificationLabel* BoundingBox::_internal_mutable_label() {
  
  if (_impl_.label_ == nullptr) {
    auto* p = CreateMaybeMessage<::vitis::ai::proto::ClassificationLabel>(GetArenaForAllocation());
    _impl_.label_ = p;
  }
  return _impl_.label_;
}
inline ::vitis::ai::proto::ClassificationLabel* BoundingBox::mutable_label() {
  ::vitis::ai::proto::ClassificationLabel* _msg = _internal_mutable_label();
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.BoundingBox.label)
  return _msg;
}
inline void BoundingBox::set_allocated_label(::vitis::ai::proto::ClassificationLabel* label) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete _impl_.label_;
  }
  if (label) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
        ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(label);
    if (message_arena != submessage_arena) {
      label = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, label, submessage_arena);
    }
    
  } else {
    
  }
  _impl_.label_ = label;
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.BoundingBox.label)
}

// .vitis.ai.proto.Point top_left = 3;
inline bool BoundingBox::_internal_has_top_left() const {
  return this != internal_default_instance() && _impl_.top_left_ != nullptr;
}
inline bool BoundingBox::has_top_left() const {
  return _internal_has_top_left();
}
inline void BoundingBox::clear_top_left() {
  if (GetArenaForAllocation() == nullptr && _impl_.top_left_ != nullptr) {
    delete _impl_.top_left_;
  }
  _impl_.top_left_ = nullptr;
}
inline const ::vitis::ai::proto::Point& BoundingBox::_internal_top_left() const {
  const ::vitis::ai::proto::Point* p = _impl_.top_left_;
  return p != nullptr ? *p : reinterpret_cast<const ::vitis::ai::proto::Point&>(
      ::vitis::ai::proto::_Point_default_instance_);
}
inline const ::vitis::ai::proto::Point& BoundingBox::top_left() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.BoundingBox.top_left)
  return _internal_top_left();
}
inline void BoundingBox::unsafe_arena_set_allocated_top_left(
    ::vitis::ai::proto::Point* top_left) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.top_left_);
  }
  _impl_.top_left_ = top_left;
  if (top_left) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:vitis.ai.proto.BoundingBox.top_left)
}
inline ::vitis::ai::proto::Point* BoundingBox::release_top_left() {
  
  ::vitis::ai::proto::Point* temp = _impl_.top_left_;
  _impl_.top_left_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::vitis::ai::proto::Point* BoundingBox::unsafe_arena_release_top_left() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.BoundingBox.top_left)
  
  ::vitis::ai::proto::Point* temp = _impl_.top_left_;
  _impl_.top_left_ = nullptr;
  return temp;
}
inline ::vitis::ai::proto::Point* BoundingBox::_internal_mutable_top_left() {
  
  if (_impl_.top_left_ == nullptr) {
    auto* p = CreateMaybeMessage<::vitis::ai::proto::Point>(GetArenaForAllocation());
    _impl_.top_left_ = p;
  }
  return _impl_.top_left_;
}
inline ::vitis::ai::proto::Point* BoundingBox::mutable_top_left() {
  ::vitis::ai::proto::Point* _msg = _internal_mutable_top_left();
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.BoundingBox.top_left)
  return _msg;
}
inline void BoundingBox::set_allocated_top_left(::vitis::ai::proto::Point* top_left) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete _impl_.top_left_;
  }
  if (top_left) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
        ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(top_left);
    if (message_arena != submessage_arena) {
      top_left = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, top_left, submessage_arena);
    }
    
  } else {
    
  }
  _impl_.top_left_ = top_left;
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.BoundingBox.top_left)
}

// .vitis.ai.proto.Size size = 4;
inline bool BoundingBox::_internal_has_size() const {
  return this != internal_default_instance() && _impl_.size_ != nullptr;
}
inline bool BoundingBox::has_size() const {
  return _internal_has_size();
}
inline void BoundingBox::clear_size() {
  if (GetArenaForAllocation() == nullptr && _impl_.size_ != nullptr) {
    delete _impl_.size_;
  }
  _impl_.size_ = nullptr;
}
inline const ::vitis::ai::proto::Size& BoundingBox::_internal_size() const {
  const ::vitis::ai::proto::Size* p = _impl_.size_;
  return p != nullptr ? *p : reinterpret_cast<const ::vitis::ai::proto::Size&>(
      ::vitis::ai::proto::_Size_default_instance_);
}
inline const ::vitis::ai::proto::Size& BoundingBox::size() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.BoundingBox.size)
  return _internal_size();
}
inline void BoundingBox::unsafe_arena_set_allocated_size(
    ::vitis::ai::proto::Size* size) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.size_);
  }
  _impl_.size_ = size;
  if (size) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:vitis.ai.proto.BoundingBox.size)
}
inline ::vitis::ai::proto::Size* BoundingBox::release_size() {
  
  ::vitis::ai::proto::Size* temp = _impl_.size_;
  _impl_.size_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::vitis::ai::proto::Size* BoundingBox::unsafe_arena_release_size() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.BoundingBox.size)
  
  ::vitis::ai::proto::Size* temp = _impl_.size_;
  _impl_.size_ = nullptr;
  return temp;
}
inline ::vitis::ai::proto::Size* BoundingBox::_internal_mutable_size() {
  
  if (_impl_.size_ == nullptr) {
    auto* p = CreateMaybeMessage<::vitis::ai::proto::Size>(GetArenaForAllocation());
    _impl_.size_ = p;
  }
  return _impl_.size_;
}
inline ::vitis::ai::proto::Size* BoundingBox::mutable_size() {
  ::vitis::ai::proto::Size* _msg = _internal_mutable_size();
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.BoundingBox.size)
  return _msg;
}
inline void BoundingBox::set_allocated_size(::vitis::ai::proto::Size* size) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete _impl_.size_;
  }
  if (size) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
        ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(size);
    if (message_arena != submessage_arena) {
      size = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, size, submessage_arena);
    }
    
  } else {
    
  }
  _impl_.size_ = size;
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.BoundingBox.size)
}

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

// AttributeResult

// repeated .vitis.ai.proto.Attribute attribute = 1;
inline int AttributeResult::_internal_attribute_size() const {
  return _impl_.attribute_.size();
}
inline int AttributeResult::attribute_size() const {
  return _internal_attribute_size();
}
inline void AttributeResult::clear_attribute() {
  _impl_.attribute_.Clear();
}
inline ::vitis::ai::proto::Attribute* AttributeResult::mutable_attribute(int index) {
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.AttributeResult.attribute)
  return _impl_.attribute_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::Attribute >*
AttributeResult::mutable_attribute() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.AttributeResult.attribute)
  return &_impl_.attribute_;
}
inline const ::vitis::ai::proto::Attribute& AttributeResult::_internal_attribute(int index) const {
  return _impl_.attribute_.Get(index);
}
inline const ::vitis::ai::proto::Attribute& AttributeResult::attribute(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.AttributeResult.attribute)
  return _internal_attribute(index);
}
inline ::vitis::ai::proto::Attribute* AttributeResult::_internal_add_attribute() {
  return _impl_.attribute_.Add();
}
inline ::vitis::ai::proto::Attribute* AttributeResult::add_attribute() {
  ::vitis::ai::proto::Attribute* _add = _internal_add_attribute();
  // @@protoc_insertion_point(field_add:vitis.ai.proto.AttributeResult.attribute)
  return _add;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::Attribute >&
AttributeResult::attribute() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.AttributeResult.attribute)
  return _impl_.attribute_;
}

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

// LandmarkResult

// float score = 1;
inline void LandmarkResult::clear_score() {
  _impl_.score_ = 0;
}
inline float LandmarkResult::_internal_score() const {
  return _impl_.score_;
}
inline float LandmarkResult::score() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.LandmarkResult.score)
  return _internal_score();
}
inline void LandmarkResult::_internal_set_score(float value) {
  
  _impl_.score_ = value;
}
inline void LandmarkResult::set_score(float value) {
  _internal_set_score(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.LandmarkResult.score)
}

// repeated .vitis.ai.proto.Point point = 2;
inline int LandmarkResult::_internal_point_size() const {
  return _impl_.point_.size();
}
inline int LandmarkResult::point_size() const {
  return _internal_point_size();
}
inline void LandmarkResult::clear_point() {
  _impl_.point_.Clear();
}
inline ::vitis::ai::proto::Point* LandmarkResult::mutable_point(int index) {
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.LandmarkResult.point)
  return _impl_.point_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::Point >*
LandmarkResult::mutable_point() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.LandmarkResult.point)
  return &_impl_.point_;
}
inline const ::vitis::ai::proto::Point& LandmarkResult::_internal_point(int index) const {
  return _impl_.point_.Get(index);
}
inline const ::vitis::ai::proto::Point& LandmarkResult::point(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.LandmarkResult.point)
  return _internal_point(index);
}
inline ::vitis::ai::proto::Point* LandmarkResult::_internal_add_point() {
  return _impl_.point_.Add();
}
inline ::vitis::ai::proto::Point* LandmarkResult::add_point() {
  ::vitis::ai::proto::Point* _add = _internal_add_point();
  // @@protoc_insertion_point(field_add:vitis.ai.proto.LandmarkResult.point)
  return _add;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::Point >&
LandmarkResult::point() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.LandmarkResult.point)
  return _impl_.point_;
}

// uint32 gender = 3;
inline void LandmarkResult::clear_gender() {
  _impl_.gender_ = 0u;
}
inline uint32_t LandmarkResult::_internal_gender() const {
  return _impl_.gender_;
}
inline uint32_t LandmarkResult::gender() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.LandmarkResult.gender)
  return _internal_gender();
}
inline void LandmarkResult::_internal_set_gender(uint32_t value) {
  
  _impl_.gender_ = value;
}
inline void LandmarkResult::set_gender(uint32_t value) {
  _internal_set_gender(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.LandmarkResult.gender)
}

// uint32 age = 4;
inline void LandmarkResult::clear_age() {
  _impl_.age_ = 0u;
}
inline uint32_t LandmarkResult::_internal_age() const {
  return _impl_.age_;
}
inline uint32_t LandmarkResult::age() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.LandmarkResult.age)
  return _internal_age();
}
inline void LandmarkResult::_internal_set_age(uint32_t value) {
  
  _impl_.age_ = value;
}
inline void LandmarkResult::set_age(uint32_t value) {
  _internal_set_age(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.LandmarkResult.age)
}

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

// DetectResult

// repeated .vitis.ai.proto.BoundingBox bounding_box = 1;
inline int DetectResult::_internal_bounding_box_size() const {
  return _impl_.bounding_box_.size();
}
inline int DetectResult::bounding_box_size() const {
  return _internal_bounding_box_size();
}
inline void DetectResult::clear_bounding_box() {
  _impl_.bounding_box_.Clear();
}
inline ::vitis::ai::proto::BoundingBox* DetectResult::mutable_bounding_box(int index) {
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.DetectResult.bounding_box)
  return _impl_.bounding_box_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::BoundingBox >*
DetectResult::mutable_bounding_box() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.DetectResult.bounding_box)
  return &_impl_.bounding_box_;
}
inline const ::vitis::ai::proto::BoundingBox& DetectResult::_internal_bounding_box(int index) const {
  return _impl_.bounding_box_.Get(index);
}
inline const ::vitis::ai::proto::BoundingBox& DetectResult::bounding_box(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.DetectResult.bounding_box)
  return _internal_bounding_box(index);
}
inline ::vitis::ai::proto::BoundingBox* DetectResult::_internal_add_bounding_box() {
  return _impl_.bounding_box_.Add();
}
inline ::vitis::ai::proto::BoundingBox* DetectResult::add_bounding_box() {
  ::vitis::ai::proto::BoundingBox* _add = _internal_add_bounding_box();
  // @@protoc_insertion_point(field_add:vitis.ai.proto.DetectResult.bounding_box)
  return _add;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::BoundingBox >&
DetectResult::bounding_box() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.DetectResult.bounding_box)
  return _impl_.bounding_box_;
}

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

// LineAttribute

// int32 type = 1;
inline void LineAttribute::clear_type() {
  _impl_.type_ = 0;
}
inline int32_t LineAttribute::_internal_type() const {
  return _impl_.type_;
}
inline int32_t LineAttribute::type() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.LineAttribute.type)
  return _internal_type();
}
inline void LineAttribute::_internal_set_type(int32_t value) {
  
  _impl_.type_ = value;
}
inline void LineAttribute::set_type(int32_t value) {
  _internal_set_type(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.LineAttribute.type)
}

// repeated .vitis.ai.proto.Point point = 2;
inline int LineAttribute::_internal_point_size() const {
  return _impl_.point_.size();
}
inline int LineAttribute::point_size() const {
  return _internal_point_size();
}
inline void LineAttribute::clear_point() {
  _impl_.point_.Clear();
}
inline ::vitis::ai::proto::Point* LineAttribute::mutable_point(int index) {
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.LineAttribute.point)
  return _impl_.point_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::Point >*
LineAttribute::mutable_point() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.LineAttribute.point)
  return &_impl_.point_;
}
inline const ::vitis::ai::proto::Point& LineAttribute::_internal_point(int index) const {
  return _impl_.point_.Get(index);
}
inline const ::vitis::ai::proto::Point& LineAttribute::point(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.LineAttribute.point)
  return _internal_point(index);
}
inline ::vitis::ai::proto::Point* LineAttribute::_internal_add_point() {
  return _impl_.point_.Add();
}
inline ::vitis::ai::proto::Point* LineAttribute::add_point() {
  ::vitis::ai::proto::Point* _add = _internal_add_point();
  // @@protoc_insertion_point(field_add:vitis.ai.proto.LineAttribute.point)
  return _add;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::Point >&
LineAttribute::point() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.LineAttribute.point)
  return _impl_.point_;
}

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

// RoadlineResult

// repeated .vitis.ai.proto.LineAttribute line_attribute = 1;
inline int RoadlineResult::_internal_line_attribute_size() const {
  return _impl_.line_attribute_.size();
}
inline int RoadlineResult::line_attribute_size() const {
  return _internal_line_attribute_size();
}
inline void RoadlineResult::clear_line_attribute() {
  _impl_.line_attribute_.Clear();
}
inline ::vitis::ai::proto::LineAttribute* RoadlineResult::mutable_line_attribute(int index) {
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.RoadlineResult.line_attribute)
  return _impl_.line_attribute_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::LineAttribute >*
RoadlineResult::mutable_line_attribute() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.RoadlineResult.line_attribute)
  return &_impl_.line_attribute_;
}
inline const ::vitis::ai::proto::LineAttribute& RoadlineResult::_internal_line_attribute(int index) const {
  return _impl_.line_attribute_.Get(index);
}
inline const ::vitis::ai::proto::LineAttribute& RoadlineResult::line_attribute(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.RoadlineResult.line_attribute)
  return _internal_line_attribute(index);
}
inline ::vitis::ai::proto::LineAttribute* RoadlineResult::_internal_add_line_attribute() {
  return _impl_.line_attribute_.Add();
}
inline ::vitis::ai::proto::LineAttribute* RoadlineResult::add_line_attribute() {
  ::vitis::ai::proto::LineAttribute* _add = _internal_add_line_attribute();
  // @@protoc_insertion_point(field_add:vitis.ai.proto.RoadlineResult.line_attribute)
  return _add;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::LineAttribute >&
RoadlineResult::line_attribute() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.RoadlineResult.line_attribute)
  return _impl_.line_attribute_;
}

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

// Score

// int32 index = 1;
inline void Score::clear_index() {
  _impl_.index_ = 0;
}
inline int32_t Score::_internal_index() const {
  return _impl_.index_;
}
inline int32_t Score::index() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.Score.index)
  return _internal_index();
}
inline void Score::_internal_set_index(int32_t value) {
  
  _impl_.index_ = value;
}
inline void Score::set_index(int32_t value) {
  _internal_set_index(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.Score.index)
}

// float score = 2;
inline void Score::clear_score() {
  _impl_.score_ = 0;
}
inline float Score::_internal_score() const {
  return _impl_.score_;
}
inline float Score::score() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.Score.score)
  return _internal_score();
}
inline void Score::_internal_set_score(float value) {
  
  _impl_.score_ = value;
}
inline void Score::set_score(float value) {
  _internal_set_score(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.Score.score)
}

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

// ClassificationLabel

// string name = 1;
inline void ClassificationLabel::clear_name() {
  _impl_.name_.ClearToEmpty();
}
inline const std::string& ClassificationLabel::name() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.ClassificationLabel.name)
  return _internal_name();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void ClassificationLabel::set_name(ArgT0&& arg0, ArgT... args) {
 
 _impl_.name_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:vitis.ai.proto.ClassificationLabel.name)
}
inline std::string* ClassificationLabel::mutable_name() {
  std::string* _s = _internal_mutable_name();
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.ClassificationLabel.name)
  return _s;
}
inline const std::string& ClassificationLabel::_internal_name() const {
  return _impl_.name_.Get();
}
inline void ClassificationLabel::_internal_set_name(const std::string& value) {
  
  _impl_.name_.Set(value, GetArenaForAllocation());
}
inline std::string* ClassificationLabel::_internal_mutable_name() {
  
  return _impl_.name_.Mutable(GetArenaForAllocation());
}
inline std::string* ClassificationLabel::release_name() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.ClassificationLabel.name)
  return _impl_.name_.Release();
}
inline void ClassificationLabel::set_allocated_name(std::string* name) {
  if (name != nullptr) {
    
  } else {
    
  }
  _impl_.name_.SetAllocated(name, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (_impl_.name_.IsDefault()) {
    _impl_.name_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.ClassificationLabel.name)
}

// uint32 index = 2;
inline void ClassificationLabel::clear_index() {
  _impl_.index_ = 0u;
}
inline uint32_t ClassificationLabel::_internal_index() const {
  return _impl_.index_;
}
inline uint32_t ClassificationLabel::index() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.ClassificationLabel.index)
  return _internal_index();
}
inline void ClassificationLabel::_internal_set_index(uint32_t value) {
  
  _impl_.index_ = value;
}
inline void ClassificationLabel::set_index(uint32_t value) {
  _internal_set_index(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.ClassificationLabel.index)
}

// float score = 3;
inline void ClassificationLabel::clear_score() {
  _impl_.score_ = 0;
}
inline float ClassificationLabel::_internal_score() const {
  return _impl_.score_;
}
inline float ClassificationLabel::score() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.ClassificationLabel.score)
  return _internal_score();
}
inline void ClassificationLabel::_internal_set_score(float value) {
  
  _impl_.score_ = value;
}
inline void ClassificationLabel::set_score(float value) {
  _internal_set_score(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.ClassificationLabel.score)
}

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

// ClassificationResult

// repeated .vitis.ai.proto.ClassificationLabel topk = 1;
inline int ClassificationResult::_internal_topk_size() const {
  return _impl_.topk_.size();
}
inline int ClassificationResult::topk_size() const {
  return _internal_topk_size();
}
inline void ClassificationResult::clear_topk() {
  _impl_.topk_.Clear();
}
inline ::vitis::ai::proto::ClassificationLabel* ClassificationResult::mutable_topk(int index) {
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.ClassificationResult.topk)
  return _impl_.topk_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::ClassificationLabel >*
ClassificationResult::mutable_topk() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.ClassificationResult.topk)
  return &_impl_.topk_;
}
inline const ::vitis::ai::proto::ClassificationLabel& ClassificationResult::_internal_topk(int index) const {
  return _impl_.topk_.Get(index);
}
inline const ::vitis::ai::proto::ClassificationLabel& ClassificationResult::topk(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.ClassificationResult.topk)
  return _internal_topk(index);
}
inline ::vitis::ai::proto::ClassificationLabel* ClassificationResult::_internal_add_topk() {
  return _impl_.topk_.Add();
}
inline ::vitis::ai::proto::ClassificationLabel* ClassificationResult::add_topk() {
  ::vitis::ai::proto::ClassificationLabel* _add = _internal_add_topk();
  // @@protoc_insertion_point(field_add:vitis.ai.proto.ClassificationResult.topk)
  return _add;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::ClassificationLabel >&
ClassificationResult::topk() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.ClassificationResult.topk)
  return _impl_.topk_;
}

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

// FaceLandmarkResult

// repeated .vitis.ai.proto.Point point = 1;
inline int FaceLandmarkResult::_internal_point_size() const {
  return _impl_.point_.size();
}
inline int FaceLandmarkResult::point_size() const {
  return _internal_point_size();
}
inline void FaceLandmarkResult::clear_point() {
  _impl_.point_.Clear();
}
inline ::vitis::ai::proto::Point* FaceLandmarkResult::mutable_point(int index) {
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.FaceLandmarkResult.point)
  return _impl_.point_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::Point >*
FaceLandmarkResult::mutable_point() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.FaceLandmarkResult.point)
  return &_impl_.point_;
}
inline const ::vitis::ai::proto::Point& FaceLandmarkResult::_internal_point(int index) const {
  return _impl_.point_.Get(index);
}
inline const ::vitis::ai::proto::Point& FaceLandmarkResult::point(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.FaceLandmarkResult.point)
  return _internal_point(index);
}
inline ::vitis::ai::proto::Point* FaceLandmarkResult::_internal_add_point() {
  return _impl_.point_.Add();
}
inline ::vitis::ai::proto::Point* FaceLandmarkResult::add_point() {
  ::vitis::ai::proto::Point* _add = _internal_add_point();
  // @@protoc_insertion_point(field_add:vitis.ai.proto.FaceLandmarkResult.point)
  return _add;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::Point >&
FaceLandmarkResult::point() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.FaceLandmarkResult.point)
  return _impl_.point_;
}

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

// PlateDetectResult

// .vitis.ai.proto.BoundingBox bounding_box = 1;
inline bool PlateDetectResult::_internal_has_bounding_box() const {
  return this != internal_default_instance() && _impl_.bounding_box_ != nullptr;
}
inline bool PlateDetectResult::has_bounding_box() const {
  return _internal_has_bounding_box();
}
inline void PlateDetectResult::clear_bounding_box() {
  if (GetArenaForAllocation() == nullptr && _impl_.bounding_box_ != nullptr) {
    delete _impl_.bounding_box_;
  }
  _impl_.bounding_box_ = nullptr;
}
inline const ::vitis::ai::proto::BoundingBox& PlateDetectResult::_internal_bounding_box() const {
  const ::vitis::ai::proto::BoundingBox* p = _impl_.bounding_box_;
  return p != nullptr ? *p : reinterpret_cast<const ::vitis::ai::proto::BoundingBox&>(
      ::vitis::ai::proto::_BoundingBox_default_instance_);
}
inline const ::vitis::ai::proto::BoundingBox& PlateDetectResult::bounding_box() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.PlateDetectResult.bounding_box)
  return _internal_bounding_box();
}
inline void PlateDetectResult::unsafe_arena_set_allocated_bounding_box(
    ::vitis::ai::proto::BoundingBox* bounding_box) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.bounding_box_);
  }
  _impl_.bounding_box_ = bounding_box;
  if (bounding_box) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:vitis.ai.proto.PlateDetectResult.bounding_box)
}
inline ::vitis::ai::proto::BoundingBox* PlateDetectResult::release_bounding_box() {
  
  ::vitis::ai::proto::BoundingBox* temp = _impl_.bounding_box_;
  _impl_.bounding_box_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::vitis::ai::proto::BoundingBox* PlateDetectResult::unsafe_arena_release_bounding_box() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.PlateDetectResult.bounding_box)
  
  ::vitis::ai::proto::BoundingBox* temp = _impl_.bounding_box_;
  _impl_.bounding_box_ = nullptr;
  return temp;
}
inline ::vitis::ai::proto::BoundingBox* PlateDetectResult::_internal_mutable_bounding_box() {
  
  if (_impl_.bounding_box_ == nullptr) {
    auto* p = CreateMaybeMessage<::vitis::ai::proto::BoundingBox>(GetArenaForAllocation());
    _impl_.bounding_box_ = p;
  }
  return _impl_.bounding_box_;
}
inline ::vitis::ai::proto::BoundingBox* PlateDetectResult::mutable_bounding_box() {
  ::vitis::ai::proto::BoundingBox* _msg = _internal_mutable_bounding_box();
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.PlateDetectResult.bounding_box)
  return _msg;
}
inline void PlateDetectResult::set_allocated_bounding_box(::vitis::ai::proto::BoundingBox* bounding_box) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete _impl_.bounding_box_;
  }
  if (bounding_box) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
        ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(bounding_box);
    if (message_arena != submessage_arena) {
      bounding_box = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, bounding_box, submessage_arena);
    }
    
  } else {
    
  }
  _impl_.bounding_box_ = bounding_box;
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.PlateDetectResult.bounding_box)
}

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

// PlateNumberResult

// string plate_number = 1;
inline void PlateNumberResult::clear_plate_number() {
  _impl_.plate_number_.ClearToEmpty();
}
inline const std::string& PlateNumberResult::plate_number() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.PlateNumberResult.plate_number)
  return _internal_plate_number();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void PlateNumberResult::set_plate_number(ArgT0&& arg0, ArgT... args) {
 
 _impl_.plate_number_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:vitis.ai.proto.PlateNumberResult.plate_number)
}
inline std::string* PlateNumberResult::mutable_plate_number() {
  std::string* _s = _internal_mutable_plate_number();
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.PlateNumberResult.plate_number)
  return _s;
}
inline const std::string& PlateNumberResult::_internal_plate_number() const {
  return _impl_.plate_number_.Get();
}
inline void PlateNumberResult::_internal_set_plate_number(const std::string& value) {
  
  _impl_.plate_number_.Set(value, GetArenaForAllocation());
}
inline std::string* PlateNumberResult::_internal_mutable_plate_number() {
  
  return _impl_.plate_number_.Mutable(GetArenaForAllocation());
}
inline std::string* PlateNumberResult::release_plate_number() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.PlateNumberResult.plate_number)
  return _impl_.plate_number_.Release();
}
inline void PlateNumberResult::set_allocated_plate_number(std::string* plate_number) {
  if (plate_number != nullptr) {
    
  } else {
    
  }
  _impl_.plate_number_.SetAllocated(plate_number, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (_impl_.plate_number_.IsDefault()) {
    _impl_.plate_number_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.PlateNumberResult.plate_number)
}

// string plate_color = 2;
inline void PlateNumberResult::clear_plate_color() {
  _impl_.plate_color_.ClearToEmpty();
}
inline const std::string& PlateNumberResult::plate_color() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.PlateNumberResult.plate_color)
  return _internal_plate_color();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void PlateNumberResult::set_plate_color(ArgT0&& arg0, ArgT... args) {
 
 _impl_.plate_color_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:vitis.ai.proto.PlateNumberResult.plate_color)
}
inline std::string* PlateNumberResult::mutable_plate_color() {
  std::string* _s = _internal_mutable_plate_color();
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.PlateNumberResult.plate_color)
  return _s;
}
inline const std::string& PlateNumberResult::_internal_plate_color() const {
  return _impl_.plate_color_.Get();
}
inline void PlateNumberResult::_internal_set_plate_color(const std::string& value) {
  
  _impl_.plate_color_.Set(value, GetArenaForAllocation());
}
inline std::string* PlateNumberResult::_internal_mutable_plate_color() {
  
  return _impl_.plate_color_.Mutable(GetArenaForAllocation());
}
inline std::string* PlateNumberResult::release_plate_color() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.PlateNumberResult.plate_color)
  return _impl_.plate_color_.Release();
}
inline void PlateNumberResult::set_allocated_plate_color(std::string* plate_color) {
  if (plate_color != nullptr) {
    
  } else {
    
  }
  _impl_.plate_color_.SetAllocated(plate_color, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (_impl_.plate_color_.IsDefault()) {
    _impl_.plate_color_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.PlateNumberResult.plate_color)
}

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

// PlateRecogResult

// .vitis.ai.proto.BoundingBox bounding_box = 1;
inline bool PlateRecogResult::_internal_has_bounding_box() const {
  return this != internal_default_instance() && _impl_.bounding_box_ != nullptr;
}
inline bool PlateRecogResult::has_bounding_box() const {
  return _internal_has_bounding_box();
}
inline void PlateRecogResult::clear_bounding_box() {
  if (GetArenaForAllocation() == nullptr && _impl_.bounding_box_ != nullptr) {
    delete _impl_.bounding_box_;
  }
  _impl_.bounding_box_ = nullptr;
}
inline const ::vitis::ai::proto::BoundingBox& PlateRecogResult::_internal_bounding_box() const {
  const ::vitis::ai::proto::BoundingBox* p = _impl_.bounding_box_;
  return p != nullptr ? *p : reinterpret_cast<const ::vitis::ai::proto::BoundingBox&>(
      ::vitis::ai::proto::_BoundingBox_default_instance_);
}
inline const ::vitis::ai::proto::BoundingBox& PlateRecogResult::bounding_box() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.PlateRecogResult.bounding_box)
  return _internal_bounding_box();
}
inline void PlateRecogResult::unsafe_arena_set_allocated_bounding_box(
    ::vitis::ai::proto::BoundingBox* bounding_box) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.bounding_box_);
  }
  _impl_.bounding_box_ = bounding_box;
  if (bounding_box) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:vitis.ai.proto.PlateRecogResult.bounding_box)
}
inline ::vitis::ai::proto::BoundingBox* PlateRecogResult::release_bounding_box() {
  
  ::vitis::ai::proto::BoundingBox* temp = _impl_.bounding_box_;
  _impl_.bounding_box_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::vitis::ai::proto::BoundingBox* PlateRecogResult::unsafe_arena_release_bounding_box() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.PlateRecogResult.bounding_box)
  
  ::vitis::ai::proto::BoundingBox* temp = _impl_.bounding_box_;
  _impl_.bounding_box_ = nullptr;
  return temp;
}
inline ::vitis::ai::proto::BoundingBox* PlateRecogResult::_internal_mutable_bounding_box() {
  
  if (_impl_.bounding_box_ == nullptr) {
    auto* p = CreateMaybeMessage<::vitis::ai::proto::BoundingBox>(GetArenaForAllocation());
    _impl_.bounding_box_ = p;
  }
  return _impl_.bounding_box_;
}
inline ::vitis::ai::proto::BoundingBox* PlateRecogResult::mutable_bounding_box() {
  ::vitis::ai::proto::BoundingBox* _msg = _internal_mutable_bounding_box();
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.PlateRecogResult.bounding_box)
  return _msg;
}
inline void PlateRecogResult::set_allocated_bounding_box(::vitis::ai::proto::BoundingBox* bounding_box) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete _impl_.bounding_box_;
  }
  if (bounding_box) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
        ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(bounding_box);
    if (message_arena != submessage_arena) {
      bounding_box = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, bounding_box, submessage_arena);
    }
    
  } else {
    
  }
  _impl_.bounding_box_ = bounding_box;
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.PlateRecogResult.bounding_box)
}

// string plate_number = 2;
inline void PlateRecogResult::clear_plate_number() {
  _impl_.plate_number_.ClearToEmpty();
}
inline const std::string& PlateRecogResult::plate_number() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.PlateRecogResult.plate_number)
  return _internal_plate_number();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void PlateRecogResult::set_plate_number(ArgT0&& arg0, ArgT... args) {
 
 _impl_.plate_number_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:vitis.ai.proto.PlateRecogResult.plate_number)
}
inline std::string* PlateRecogResult::mutable_plate_number() {
  std::string* _s = _internal_mutable_plate_number();
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.PlateRecogResult.plate_number)
  return _s;
}
inline const std::string& PlateRecogResult::_internal_plate_number() const {
  return _impl_.plate_number_.Get();
}
inline void PlateRecogResult::_internal_set_plate_number(const std::string& value) {
  
  _impl_.plate_number_.Set(value, GetArenaForAllocation());
}
inline std::string* PlateRecogResult::_internal_mutable_plate_number() {
  
  return _impl_.plate_number_.Mutable(GetArenaForAllocation());
}
inline std::string* PlateRecogResult::release_plate_number() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.PlateRecogResult.plate_number)
  return _impl_.plate_number_.Release();
}
inline void PlateRecogResult::set_allocated_plate_number(std::string* plate_number) {
  if (plate_number != nullptr) {
    
  } else {
    
  }
  _impl_.plate_number_.SetAllocated(plate_number, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (_impl_.plate_number_.IsDefault()) {
    _impl_.plate_number_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.PlateRecogResult.plate_number)
}

// string plate_color = 3;
inline void PlateRecogResult::clear_plate_color() {
  _impl_.plate_color_.ClearToEmpty();
}
inline const std::string& PlateRecogResult::plate_color() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.PlateRecogResult.plate_color)
  return _internal_plate_color();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void PlateRecogResult::set_plate_color(ArgT0&& arg0, ArgT... args) {
 
 _impl_.plate_color_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:vitis.ai.proto.PlateRecogResult.plate_color)
}
inline std::string* PlateRecogResult::mutable_plate_color() {
  std::string* _s = _internal_mutable_plate_color();
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.PlateRecogResult.plate_color)
  return _s;
}
inline const std::string& PlateRecogResult::_internal_plate_color() const {
  return _impl_.plate_color_.Get();
}
inline void PlateRecogResult::_internal_set_plate_color(const std::string& value) {
  
  _impl_.plate_color_.Set(value, GetArenaForAllocation());
}
inline std::string* PlateRecogResult::_internal_mutable_plate_color() {
  
  return _impl_.plate_color_.Mutable(GetArenaForAllocation());
}
inline std::string* PlateRecogResult::release_plate_color() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.PlateRecogResult.plate_color)
  return _impl_.plate_color_.Release();
}
inline void PlateRecogResult::set_allocated_plate_color(std::string* plate_color) {
  if (plate_color != nullptr) {
    
  } else {
    
  }
  _impl_.plate_color_.SetAllocated(plate_color, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (_impl_.plate_color_.IsDefault()) {
    _impl_.plate_color_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.PlateRecogResult.plate_color)
}

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

// PoseDetectResult

// .vitis.ai.proto.Point right_shoulder = 1;
inline bool PoseDetectResult::_internal_has_right_shoulder() const {
  return this != internal_default_instance() && _impl_.right_shoulder_ != nullptr;
}
inline bool PoseDetectResult::has_right_shoulder() const {
  return _internal_has_right_shoulder();
}
inline void PoseDetectResult::clear_right_shoulder() {
  if (GetArenaForAllocation() == nullptr && _impl_.right_shoulder_ != nullptr) {
    delete _impl_.right_shoulder_;
  }
  _impl_.right_shoulder_ = nullptr;
}
inline const ::vitis::ai::proto::Point& PoseDetectResult::_internal_right_shoulder() const {
  const ::vitis::ai::proto::Point* p = _impl_.right_shoulder_;
  return p != nullptr ? *p : reinterpret_cast<const ::vitis::ai::proto::Point&>(
      ::vitis::ai::proto::_Point_default_instance_);
}
inline const ::vitis::ai::proto::Point& PoseDetectResult::right_shoulder() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.PoseDetectResult.right_shoulder)
  return _internal_right_shoulder();
}
inline void PoseDetectResult::unsafe_arena_set_allocated_right_shoulder(
    ::vitis::ai::proto::Point* right_shoulder) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.right_shoulder_);
  }
  _impl_.right_shoulder_ = right_shoulder;
  if (right_shoulder) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:vitis.ai.proto.PoseDetectResult.right_shoulder)
}
inline ::vitis::ai::proto::Point* PoseDetectResult::release_right_shoulder() {
  
  ::vitis::ai::proto::Point* temp = _impl_.right_shoulder_;
  _impl_.right_shoulder_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::vitis::ai::proto::Point* PoseDetectResult::unsafe_arena_release_right_shoulder() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.PoseDetectResult.right_shoulder)
  
  ::vitis::ai::proto::Point* temp = _impl_.right_shoulder_;
  _impl_.right_shoulder_ = nullptr;
  return temp;
}
inline ::vitis::ai::proto::Point* PoseDetectResult::_internal_mutable_right_shoulder() {
  
  if (_impl_.right_shoulder_ == nullptr) {
    auto* p = CreateMaybeMessage<::vitis::ai::proto::Point>(GetArenaForAllocation());
    _impl_.right_shoulder_ = p;
  }
  return _impl_.right_shoulder_;
}
inline ::vitis::ai::proto::Point* PoseDetectResult::mutable_right_shoulder() {
  ::vitis::ai::proto::Point* _msg = _internal_mutable_right_shoulder();
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.PoseDetectResult.right_shoulder)
  return _msg;
}
inline void PoseDetectResult::set_allocated_right_shoulder(::vitis::ai::proto::Point* right_shoulder) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete _impl_.right_shoulder_;
  }
  if (right_shoulder) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
        ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(right_shoulder);
    if (message_arena != submessage_arena) {
      right_shoulder = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, right_shoulder, submessage_arena);
    }
    
  } else {
    
  }
  _impl_.right_shoulder_ = right_shoulder;
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.PoseDetectResult.right_shoulder)
}

// .vitis.ai.proto.Point right_elbow = 2;
inline bool PoseDetectResult::_internal_has_right_elbow() const {
  return this != internal_default_instance() && _impl_.right_elbow_ != nullptr;
}
inline bool PoseDetectResult::has_right_elbow() const {
  return _internal_has_right_elbow();
}
inline void PoseDetectResult::clear_right_elbow() {
  if (GetArenaForAllocation() == nullptr && _impl_.right_elbow_ != nullptr) {
    delete _impl_.right_elbow_;
  }
  _impl_.right_elbow_ = nullptr;
}
inline const ::vitis::ai::proto::Point& PoseDetectResult::_internal_right_elbow() const {
  const ::vitis::ai::proto::Point* p = _impl_.right_elbow_;
  return p != nullptr ? *p : reinterpret_cast<const ::vitis::ai::proto::Point&>(
      ::vitis::ai::proto::_Point_default_instance_);
}
inline const ::vitis::ai::proto::Point& PoseDetectResult::right_elbow() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.PoseDetectResult.right_elbow)
  return _internal_right_elbow();
}
inline void PoseDetectResult::unsafe_arena_set_allocated_right_elbow(
    ::vitis::ai::proto::Point* right_elbow) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.right_elbow_);
  }
  _impl_.right_elbow_ = right_elbow;
  if (right_elbow) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:vitis.ai.proto.PoseDetectResult.right_elbow)
}
inline ::vitis::ai::proto::Point* PoseDetectResult::release_right_elbow() {
  
  ::vitis::ai::proto::Point* temp = _impl_.right_elbow_;
  _impl_.right_elbow_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::vitis::ai::proto::Point* PoseDetectResult::unsafe_arena_release_right_elbow() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.PoseDetectResult.right_elbow)
  
  ::vitis::ai::proto::Point* temp = _impl_.right_elbow_;
  _impl_.right_elbow_ = nullptr;
  return temp;
}
inline ::vitis::ai::proto::Point* PoseDetectResult::_internal_mutable_right_elbow() {
  
  if (_impl_.right_elbow_ == nullptr) {
    auto* p = CreateMaybeMessage<::vitis::ai::proto::Point>(GetArenaForAllocation());
    _impl_.right_elbow_ = p;
  }
  return _impl_.right_elbow_;
}
inline ::vitis::ai::proto::Point* PoseDetectResult::mutable_right_elbow() {
  ::vitis::ai::proto::Point* _msg = _internal_mutable_right_elbow();
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.PoseDetectResult.right_elbow)
  return _msg;
}
inline void PoseDetectResult::set_allocated_right_elbow(::vitis::ai::proto::Point* right_elbow) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete _impl_.right_elbow_;
  }
  if (right_elbow) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
        ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(right_elbow);
    if (message_arena != submessage_arena) {
      right_elbow = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, right_elbow, submessage_arena);
    }
    
  } else {
    
  }
  _impl_.right_elbow_ = right_elbow;
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.PoseDetectResult.right_elbow)
}

// .vitis.ai.proto.Point right_wrist = 3;
inline bool PoseDetectResult::_internal_has_right_wrist() const {
  return this != internal_default_instance() && _impl_.right_wrist_ != nullptr;
}
inline bool PoseDetectResult::has_right_wrist() const {
  return _internal_has_right_wrist();
}
inline void PoseDetectResult::clear_right_wrist() {
  if (GetArenaForAllocation() == nullptr && _impl_.right_wrist_ != nullptr) {
    delete _impl_.right_wrist_;
  }
  _impl_.right_wrist_ = nullptr;
}
inline const ::vitis::ai::proto::Point& PoseDetectResult::_internal_right_wrist() const {
  const ::vitis::ai::proto::Point* p = _impl_.right_wrist_;
  return p != nullptr ? *p : reinterpret_cast<const ::vitis::ai::proto::Point&>(
      ::vitis::ai::proto::_Point_default_instance_);
}
inline const ::vitis::ai::proto::Point& PoseDetectResult::right_wrist() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.PoseDetectResult.right_wrist)
  return _internal_right_wrist();
}
inline void PoseDetectResult::unsafe_arena_set_allocated_right_wrist(
    ::vitis::ai::proto::Point* right_wrist) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.right_wrist_);
  }
  _impl_.right_wrist_ = right_wrist;
  if (right_wrist) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:vitis.ai.proto.PoseDetectResult.right_wrist)
}
inline ::vitis::ai::proto::Point* PoseDetectResult::release_right_wrist() {
  
  ::vitis::ai::proto::Point* temp = _impl_.right_wrist_;
  _impl_.right_wrist_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::vitis::ai::proto::Point* PoseDetectResult::unsafe_arena_release_right_wrist() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.PoseDetectResult.right_wrist)
  
  ::vitis::ai::proto::Point* temp = _impl_.right_wrist_;
  _impl_.right_wrist_ = nullptr;
  return temp;
}
inline ::vitis::ai::proto::Point* PoseDetectResult::_internal_mutable_right_wrist() {
  
  if (_impl_.right_wrist_ == nullptr) {
    auto* p = CreateMaybeMessage<::vitis::ai::proto::Point>(GetArenaForAllocation());
    _impl_.right_wrist_ = p;
  }
  return _impl_.right_wrist_;
}
inline ::vitis::ai::proto::Point* PoseDetectResult::mutable_right_wrist() {
  ::vitis::ai::proto::Point* _msg = _internal_mutable_right_wrist();
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.PoseDetectResult.right_wrist)
  return _msg;
}
inline void PoseDetectResult::set_allocated_right_wrist(::vitis::ai::proto::Point* right_wrist) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete _impl_.right_wrist_;
  }
  if (right_wrist) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
        ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(right_wrist);
    if (message_arena != submessage_arena) {
      right_wrist = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, right_wrist, submessage_arena);
    }
    
  } else {
    
  }
  _impl_.right_wrist_ = right_wrist;
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.PoseDetectResult.right_wrist)
}

// .vitis.ai.proto.Point left_shoulder = 4;
inline bool PoseDetectResult::_internal_has_left_shoulder() const {
  return this != internal_default_instance() && _impl_.left_shoulder_ != nullptr;
}
inline bool PoseDetectResult::has_left_shoulder() const {
  return _internal_has_left_shoulder();
}
inline void PoseDetectResult::clear_left_shoulder() {
  if (GetArenaForAllocation() == nullptr && _impl_.left_shoulder_ != nullptr) {
    delete _impl_.left_shoulder_;
  }
  _impl_.left_shoulder_ = nullptr;
}
inline const ::vitis::ai::proto::Point& PoseDetectResult::_internal_left_shoulder() const {
  const ::vitis::ai::proto::Point* p = _impl_.left_shoulder_;
  return p != nullptr ? *p : reinterpret_cast<const ::vitis::ai::proto::Point&>(
      ::vitis::ai::proto::_Point_default_instance_);
}
inline const ::vitis::ai::proto::Point& PoseDetectResult::left_shoulder() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.PoseDetectResult.left_shoulder)
  return _internal_left_shoulder();
}
inline void PoseDetectResult::unsafe_arena_set_allocated_left_shoulder(
    ::vitis::ai::proto::Point* left_shoulder) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.left_shoulder_);
  }
  _impl_.left_shoulder_ = left_shoulder;
  if (left_shoulder) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:vitis.ai.proto.PoseDetectResult.left_shoulder)
}
inline ::vitis::ai::proto::Point* PoseDetectResult::release_left_shoulder() {
  
  ::vitis::ai::proto::Point* temp = _impl_.left_shoulder_;
  _impl_.left_shoulder_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::vitis::ai::proto::Point* PoseDetectResult::unsafe_arena_release_left_shoulder() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.PoseDetectResult.left_shoulder)
  
  ::vitis::ai::proto::Point* temp = _impl_.left_shoulder_;
  _impl_.left_shoulder_ = nullptr;
  return temp;
}
inline ::vitis::ai::proto::Point* PoseDetectResult::_internal_mutable_left_shoulder() {
  
  if (_impl_.left_shoulder_ == nullptr) {
    auto* p = CreateMaybeMessage<::vitis::ai::proto::Point>(GetArenaForAllocation());
    _impl_.left_shoulder_ = p;
  }
  return _impl_.left_shoulder_;
}
inline ::vitis::ai::proto::Point* PoseDetectResult::mutable_left_shoulder() {
  ::vitis::ai::proto::Point* _msg = _internal_mutable_left_shoulder();
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.PoseDetectResult.left_shoulder)
  return _msg;
}
inline void PoseDetectResult::set_allocated_left_shoulder(::vitis::ai::proto::Point* left_shoulder) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete _impl_.left_shoulder_;
  }
  if (left_shoulder) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
        ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(left_shoulder);
    if (message_arena != submessage_arena) {
      left_shoulder = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, left_shoulder, submessage_arena);
    }
    
  } else {
    
  }
  _impl_.left_shoulder_ = left_shoulder;
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.PoseDetectResult.left_shoulder)
}

// .vitis.ai.proto.Point left_elbow = 5;
inline bool PoseDetectResult::_internal_has_left_elbow() const {
  return this != internal_default_instance() && _impl_.left_elbow_ != nullptr;
}
inline bool PoseDetectResult::has_left_elbow() const {
  return _internal_has_left_elbow();
}
inline void PoseDetectResult::clear_left_elbow() {
  if (GetArenaForAllocation() == nullptr && _impl_.left_elbow_ != nullptr) {
    delete _impl_.left_elbow_;
  }
  _impl_.left_elbow_ = nullptr;
}
inline const ::vitis::ai::proto::Point& PoseDetectResult::_internal_left_elbow() const {
  const ::vitis::ai::proto::Point* p = _impl_.left_elbow_;
  return p != nullptr ? *p : reinterpret_cast<const ::vitis::ai::proto::Point&>(
      ::vitis::ai::proto::_Point_default_instance_);
}
inline const ::vitis::ai::proto::Point& PoseDetectResult::left_elbow() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.PoseDetectResult.left_elbow)
  return _internal_left_elbow();
}
inline void PoseDetectResult::unsafe_arena_set_allocated_left_elbow(
    ::vitis::ai::proto::Point* left_elbow) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.left_elbow_);
  }
  _impl_.left_elbow_ = left_elbow;
  if (left_elbow) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:vitis.ai.proto.PoseDetectResult.left_elbow)
}
inline ::vitis::ai::proto::Point* PoseDetectResult::release_left_elbow() {
  
  ::vitis::ai::proto::Point* temp = _impl_.left_elbow_;
  _impl_.left_elbow_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::vitis::ai::proto::Point* PoseDetectResult::unsafe_arena_release_left_elbow() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.PoseDetectResult.left_elbow)
  
  ::vitis::ai::proto::Point* temp = _impl_.left_elbow_;
  _impl_.left_elbow_ = nullptr;
  return temp;
}
inline ::vitis::ai::proto::Point* PoseDetectResult::_internal_mutable_left_elbow() {
  
  if (_impl_.left_elbow_ == nullptr) {
    auto* p = CreateMaybeMessage<::vitis::ai::proto::Point>(GetArenaForAllocation());
    _impl_.left_elbow_ = p;
  }
  return _impl_.left_elbow_;
}
inline ::vitis::ai::proto::Point* PoseDetectResult::mutable_left_elbow() {
  ::vitis::ai::proto::Point* _msg = _internal_mutable_left_elbow();
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.PoseDetectResult.left_elbow)
  return _msg;
}
inline void PoseDetectResult::set_allocated_left_elbow(::vitis::ai::proto::Point* left_elbow) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete _impl_.left_elbow_;
  }
  if (left_elbow) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
        ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(left_elbow);
    if (message_arena != submessage_arena) {
      left_elbow = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, left_elbow, submessage_arena);
    }
    
  } else {
    
  }
  _impl_.left_elbow_ = left_elbow;
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.PoseDetectResult.left_elbow)
}

// .vitis.ai.proto.Point left_wrist = 6;
inline bool PoseDetectResult::_internal_has_left_wrist() const {
  return this != internal_default_instance() && _impl_.left_wrist_ != nullptr;
}
inline bool PoseDetectResult::has_left_wrist() const {
  return _internal_has_left_wrist();
}
inline void PoseDetectResult::clear_left_wrist() {
  if (GetArenaForAllocation() == nullptr && _impl_.left_wrist_ != nullptr) {
    delete _impl_.left_wrist_;
  }
  _impl_.left_wrist_ = nullptr;
}
inline const ::vitis::ai::proto::Point& PoseDetectResult::_internal_left_wrist() const {
  const ::vitis::ai::proto::Point* p = _impl_.left_wrist_;
  return p != nullptr ? *p : reinterpret_cast<const ::vitis::ai::proto::Point&>(
      ::vitis::ai::proto::_Point_default_instance_);
}
inline const ::vitis::ai::proto::Point& PoseDetectResult::left_wrist() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.PoseDetectResult.left_wrist)
  return _internal_left_wrist();
}
inline void PoseDetectResult::unsafe_arena_set_allocated_left_wrist(
    ::vitis::ai::proto::Point* left_wrist) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.left_wrist_);
  }
  _impl_.left_wrist_ = left_wrist;
  if (left_wrist) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:vitis.ai.proto.PoseDetectResult.left_wrist)
}
inline ::vitis::ai::proto::Point* PoseDetectResult::release_left_wrist() {
  
  ::vitis::ai::proto::Point* temp = _impl_.left_wrist_;
  _impl_.left_wrist_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::vitis::ai::proto::Point* PoseDetectResult::unsafe_arena_release_left_wrist() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.PoseDetectResult.left_wrist)
  
  ::vitis::ai::proto::Point* temp = _impl_.left_wrist_;
  _impl_.left_wrist_ = nullptr;
  return temp;
}
inline ::vitis::ai::proto::Point* PoseDetectResult::_internal_mutable_left_wrist() {
  
  if (_impl_.left_wrist_ == nullptr) {
    auto* p = CreateMaybeMessage<::vitis::ai::proto::Point>(GetArenaForAllocation());
    _impl_.left_wrist_ = p;
  }
  return _impl_.left_wrist_;
}
inline ::vitis::ai::proto::Point* PoseDetectResult::mutable_left_wrist() {
  ::vitis::ai::proto::Point* _msg = _internal_mutable_left_wrist();
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.PoseDetectResult.left_wrist)
  return _msg;
}
inline void PoseDetectResult::set_allocated_left_wrist(::vitis::ai::proto::Point* left_wrist) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete _impl_.left_wrist_;
  }
  if (left_wrist) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
        ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(left_wrist);
    if (message_arena != submessage_arena) {
      left_wrist = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, left_wrist, submessage_arena);
    }
    
  } else {
    
  }
  _impl_.left_wrist_ = left_wrist;
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.PoseDetectResult.left_wrist)
}

// .vitis.ai.proto.Point right_hip = 7;
inline bool PoseDetectResult::_internal_has_right_hip() const {
  return this != internal_default_instance() && _impl_.right_hip_ != nullptr;
}
inline bool PoseDetectResult::has_right_hip() const {
  return _internal_has_right_hip();
}
inline void PoseDetectResult::clear_right_hip() {
  if (GetArenaForAllocation() == nullptr && _impl_.right_hip_ != nullptr) {
    delete _impl_.right_hip_;
  }
  _impl_.right_hip_ = nullptr;
}
inline const ::vitis::ai::proto::Point& PoseDetectResult::_internal_right_hip() const {
  const ::vitis::ai::proto::Point* p = _impl_.right_hip_;
  return p != nullptr ? *p : reinterpret_cast<const ::vitis::ai::proto::Point&>(
      ::vitis::ai::proto::_Point_default_instance_);
}
inline const ::vitis::ai::proto::Point& PoseDetectResult::right_hip() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.PoseDetectResult.right_hip)
  return _internal_right_hip();
}
inline void PoseDetectResult::unsafe_arena_set_allocated_right_hip(
    ::vitis::ai::proto::Point* right_hip) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.right_hip_);
  }
  _impl_.right_hip_ = right_hip;
  if (right_hip) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:vitis.ai.proto.PoseDetectResult.right_hip)
}
inline ::vitis::ai::proto::Point* PoseDetectResult::release_right_hip() {
  
  ::vitis::ai::proto::Point* temp = _impl_.right_hip_;
  _impl_.right_hip_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::vitis::ai::proto::Point* PoseDetectResult::unsafe_arena_release_right_hip() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.PoseDetectResult.right_hip)
  
  ::vitis::ai::proto::Point* temp = _impl_.right_hip_;
  _impl_.right_hip_ = nullptr;
  return temp;
}
inline ::vitis::ai::proto::Point* PoseDetectResult::_internal_mutable_right_hip() {
  
  if (_impl_.right_hip_ == nullptr) {
    auto* p = CreateMaybeMessage<::vitis::ai::proto::Point>(GetArenaForAllocation());
    _impl_.right_hip_ = p;
  }
  return _impl_.right_hip_;
}
inline ::vitis::ai::proto::Point* PoseDetectResult::mutable_right_hip() {
  ::vitis::ai::proto::Point* _msg = _internal_mutable_right_hip();
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.PoseDetectResult.right_hip)
  return _msg;
}
inline void PoseDetectResult::set_allocated_right_hip(::vitis::ai::proto::Point* right_hip) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete _impl_.right_hip_;
  }
  if (right_hip) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
        ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(right_hip);
    if (message_arena != submessage_arena) {
      right_hip = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, right_hip, submessage_arena);
    }
    
  } else {
    
  }
  _impl_.right_hip_ = right_hip;
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.PoseDetectResult.right_hip)
}

// .vitis.ai.proto.Point right_knee = 8;
inline bool PoseDetectResult::_internal_has_right_knee() const {
  return this != internal_default_instance() && _impl_.right_knee_ != nullptr;
}
inline bool PoseDetectResult::has_right_knee() const {
  return _internal_has_right_knee();
}
inline void PoseDetectResult::clear_right_knee() {
  if (GetArenaForAllocation() == nullptr && _impl_.right_knee_ != nullptr) {
    delete _impl_.right_knee_;
  }
  _impl_.right_knee_ = nullptr;
}
inline const ::vitis::ai::proto::Point& PoseDetectResult::_internal_right_knee() const {
  const ::vitis::ai::proto::Point* p = _impl_.right_knee_;
  return p != nullptr ? *p : reinterpret_cast<const ::vitis::ai::proto::Point&>(
      ::vitis::ai::proto::_Point_default_instance_);
}
inline const ::vitis::ai::proto::Point& PoseDetectResult::right_knee() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.PoseDetectResult.right_knee)
  return _internal_right_knee();
}
inline void PoseDetectResult::unsafe_arena_set_allocated_right_knee(
    ::vitis::ai::proto::Point* right_knee) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.right_knee_);
  }
  _impl_.right_knee_ = right_knee;
  if (right_knee) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:vitis.ai.proto.PoseDetectResult.right_knee)
}
inline ::vitis::ai::proto::Point* PoseDetectResult::release_right_knee() {
  
  ::vitis::ai::proto::Point* temp = _impl_.right_knee_;
  _impl_.right_knee_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::vitis::ai::proto::Point* PoseDetectResult::unsafe_arena_release_right_knee() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.PoseDetectResult.right_knee)
  
  ::vitis::ai::proto::Point* temp = _impl_.right_knee_;
  _impl_.right_knee_ = nullptr;
  return temp;
}
inline ::vitis::ai::proto::Point* PoseDetectResult::_internal_mutable_right_knee() {
  
  if (_impl_.right_knee_ == nullptr) {
    auto* p = CreateMaybeMessage<::vitis::ai::proto::Point>(GetArenaForAllocation());
    _impl_.right_knee_ = p;
  }
  return _impl_.right_knee_;
}
inline ::vitis::ai::proto::Point* PoseDetectResult::mutable_right_knee() {
  ::vitis::ai::proto::Point* _msg = _internal_mutable_right_knee();
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.PoseDetectResult.right_knee)
  return _msg;
}
inline void PoseDetectResult::set_allocated_right_knee(::vitis::ai::proto::Point* right_knee) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete _impl_.right_knee_;
  }
  if (right_knee) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
        ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(right_knee);
    if (message_arena != submessage_arena) {
      right_knee = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, right_knee, submessage_arena);
    }
    
  } else {
    
  }
  _impl_.right_knee_ = right_knee;
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.PoseDetectResult.right_knee)
}

// .vitis.ai.proto.Point right_ankle = 9;
inline bool PoseDetectResult::_internal_has_right_ankle() const {
  return this != internal_default_instance() && _impl_.right_ankle_ != nullptr;
}
inline bool PoseDetectResult::has_right_ankle() const {
  return _internal_has_right_ankle();
}
inline void PoseDetectResult::clear_right_ankle() {
  if (GetArenaForAllocation() == nullptr && _impl_.right_ankle_ != nullptr) {
    delete _impl_.right_ankle_;
  }
  _impl_.right_ankle_ = nullptr;
}
inline const ::vitis::ai::proto::Point& PoseDetectResult::_internal_right_ankle() const {
  const ::vitis::ai::proto::Point* p = _impl_.right_ankle_;
  return p != nullptr ? *p : reinterpret_cast<const ::vitis::ai::proto::Point&>(
      ::vitis::ai::proto::_Point_default_instance_);
}
inline const ::vitis::ai::proto::Point& PoseDetectResult::right_ankle() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.PoseDetectResult.right_ankle)
  return _internal_right_ankle();
}
inline void PoseDetectResult::unsafe_arena_set_allocated_right_ankle(
    ::vitis::ai::proto::Point* right_ankle) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.right_ankle_);
  }
  _impl_.right_ankle_ = right_ankle;
  if (right_ankle) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:vitis.ai.proto.PoseDetectResult.right_ankle)
}
inline ::vitis::ai::proto::Point* PoseDetectResult::release_right_ankle() {
  
  ::vitis::ai::proto::Point* temp = _impl_.right_ankle_;
  _impl_.right_ankle_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::vitis::ai::proto::Point* PoseDetectResult::unsafe_arena_release_right_ankle() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.PoseDetectResult.right_ankle)
  
  ::vitis::ai::proto::Point* temp = _impl_.right_ankle_;
  _impl_.right_ankle_ = nullptr;
  return temp;
}
inline ::vitis::ai::proto::Point* PoseDetectResult::_internal_mutable_right_ankle() {
  
  if (_impl_.right_ankle_ == nullptr) {
    auto* p = CreateMaybeMessage<::vitis::ai::proto::Point>(GetArenaForAllocation());
    _impl_.right_ankle_ = p;
  }
  return _impl_.right_ankle_;
}
inline ::vitis::ai::proto::Point* PoseDetectResult::mutable_right_ankle() {
  ::vitis::ai::proto::Point* _msg = _internal_mutable_right_ankle();
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.PoseDetectResult.right_ankle)
  return _msg;
}
inline void PoseDetectResult::set_allocated_right_ankle(::vitis::ai::proto::Point* right_ankle) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete _impl_.right_ankle_;
  }
  if (right_ankle) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
        ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(right_ankle);
    if (message_arena != submessage_arena) {
      right_ankle = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, right_ankle, submessage_arena);
    }
    
  } else {
    
  }
  _impl_.right_ankle_ = right_ankle;
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.PoseDetectResult.right_ankle)
}

// .vitis.ai.proto.Point left_hip = 10;
inline bool PoseDetectResult::_internal_has_left_hip() const {
  return this != internal_default_instance() && _impl_.left_hip_ != nullptr;
}
inline bool PoseDetectResult::has_left_hip() const {
  return _internal_has_left_hip();
}
inline void PoseDetectResult::clear_left_hip() {
  if (GetArenaForAllocation() == nullptr && _impl_.left_hip_ != nullptr) {
    delete _impl_.left_hip_;
  }
  _impl_.left_hip_ = nullptr;
}
inline const ::vitis::ai::proto::Point& PoseDetectResult::_internal_left_hip() const {
  const ::vitis::ai::proto::Point* p = _impl_.left_hip_;
  return p != nullptr ? *p : reinterpret_cast<const ::vitis::ai::proto::Point&>(
      ::vitis::ai::proto::_Point_default_instance_);
}
inline const ::vitis::ai::proto::Point& PoseDetectResult::left_hip() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.PoseDetectResult.left_hip)
  return _internal_left_hip();
}
inline void PoseDetectResult::unsafe_arena_set_allocated_left_hip(
    ::vitis::ai::proto::Point* left_hip) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.left_hip_);
  }
  _impl_.left_hip_ = left_hip;
  if (left_hip) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:vitis.ai.proto.PoseDetectResult.left_hip)
}
inline ::vitis::ai::proto::Point* PoseDetectResult::release_left_hip() {
  
  ::vitis::ai::proto::Point* temp = _impl_.left_hip_;
  _impl_.left_hip_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::vitis::ai::proto::Point* PoseDetectResult::unsafe_arena_release_left_hip() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.PoseDetectResult.left_hip)
  
  ::vitis::ai::proto::Point* temp = _impl_.left_hip_;
  _impl_.left_hip_ = nullptr;
  return temp;
}
inline ::vitis::ai::proto::Point* PoseDetectResult::_internal_mutable_left_hip() {
  
  if (_impl_.left_hip_ == nullptr) {
    auto* p = CreateMaybeMessage<::vitis::ai::proto::Point>(GetArenaForAllocation());
    _impl_.left_hip_ = p;
  }
  return _impl_.left_hip_;
}
inline ::vitis::ai::proto::Point* PoseDetectResult::mutable_left_hip() {
  ::vitis::ai::proto::Point* _msg = _internal_mutable_left_hip();
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.PoseDetectResult.left_hip)
  return _msg;
}
inline void PoseDetectResult::set_allocated_left_hip(::vitis::ai::proto::Point* left_hip) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete _impl_.left_hip_;
  }
  if (left_hip) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
        ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(left_hip);
    if (message_arena != submessage_arena) {
      left_hip = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, left_hip, submessage_arena);
    }
    
  } else {
    
  }
  _impl_.left_hip_ = left_hip;
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.PoseDetectResult.left_hip)
}

// .vitis.ai.proto.Point left_knee = 11;
inline bool PoseDetectResult::_internal_has_left_knee() const {
  return this != internal_default_instance() && _impl_.left_knee_ != nullptr;
}
inline bool PoseDetectResult::has_left_knee() const {
  return _internal_has_left_knee();
}
inline void PoseDetectResult::clear_left_knee() {
  if (GetArenaForAllocation() == nullptr && _impl_.left_knee_ != nullptr) {
    delete _impl_.left_knee_;
  }
  _impl_.left_knee_ = nullptr;
}
inline const ::vitis::ai::proto::Point& PoseDetectResult::_internal_left_knee() const {
  const ::vitis::ai::proto::Point* p = _impl_.left_knee_;
  return p != nullptr ? *p : reinterpret_cast<const ::vitis::ai::proto::Point&>(
      ::vitis::ai::proto::_Point_default_instance_);
}
inline const ::vitis::ai::proto::Point& PoseDetectResult::left_knee() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.PoseDetectResult.left_knee)
  return _internal_left_knee();
}
inline void PoseDetectResult::unsafe_arena_set_allocated_left_knee(
    ::vitis::ai::proto::Point* left_knee) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.left_knee_);
  }
  _impl_.left_knee_ = left_knee;
  if (left_knee) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:vitis.ai.proto.PoseDetectResult.left_knee)
}
inline ::vitis::ai::proto::Point* PoseDetectResult::release_left_knee() {
  
  ::vitis::ai::proto::Point* temp = _impl_.left_knee_;
  _impl_.left_knee_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::vitis::ai::proto::Point* PoseDetectResult::unsafe_arena_release_left_knee() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.PoseDetectResult.left_knee)
  
  ::vitis::ai::proto::Point* temp = _impl_.left_knee_;
  _impl_.left_knee_ = nullptr;
  return temp;
}
inline ::vitis::ai::proto::Point* PoseDetectResult::_internal_mutable_left_knee() {
  
  if (_impl_.left_knee_ == nullptr) {
    auto* p = CreateMaybeMessage<::vitis::ai::proto::Point>(GetArenaForAllocation());
    _impl_.left_knee_ = p;
  }
  return _impl_.left_knee_;
}
inline ::vitis::ai::proto::Point* PoseDetectResult::mutable_left_knee() {
  ::vitis::ai::proto::Point* _msg = _internal_mutable_left_knee();
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.PoseDetectResult.left_knee)
  return _msg;
}
inline void PoseDetectResult::set_allocated_left_knee(::vitis::ai::proto::Point* left_knee) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete _impl_.left_knee_;
  }
  if (left_knee) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
        ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(left_knee);
    if (message_arena != submessage_arena) {
      left_knee = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, left_knee, submessage_arena);
    }
    
  } else {
    
  }
  _impl_.left_knee_ = left_knee;
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.PoseDetectResult.left_knee)
}

// .vitis.ai.proto.Point left_ankle = 12;
inline bool PoseDetectResult::_internal_has_left_ankle() const {
  return this != internal_default_instance() && _impl_.left_ankle_ != nullptr;
}
inline bool PoseDetectResult::has_left_ankle() const {
  return _internal_has_left_ankle();
}
inline void PoseDetectResult::clear_left_ankle() {
  if (GetArenaForAllocation() == nullptr && _impl_.left_ankle_ != nullptr) {
    delete _impl_.left_ankle_;
  }
  _impl_.left_ankle_ = nullptr;
}
inline const ::vitis::ai::proto::Point& PoseDetectResult::_internal_left_ankle() const {
  const ::vitis::ai::proto::Point* p = _impl_.left_ankle_;
  return p != nullptr ? *p : reinterpret_cast<const ::vitis::ai::proto::Point&>(
      ::vitis::ai::proto::_Point_default_instance_);
}
inline const ::vitis::ai::proto::Point& PoseDetectResult::left_ankle() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.PoseDetectResult.left_ankle)
  return _internal_left_ankle();
}
inline void PoseDetectResult::unsafe_arena_set_allocated_left_ankle(
    ::vitis::ai::proto::Point* left_ankle) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.left_ankle_);
  }
  _impl_.left_ankle_ = left_ankle;
  if (left_ankle) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:vitis.ai.proto.PoseDetectResult.left_ankle)
}
inline ::vitis::ai::proto::Point* PoseDetectResult::release_left_ankle() {
  
  ::vitis::ai::proto::Point* temp = _impl_.left_ankle_;
  _impl_.left_ankle_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::vitis::ai::proto::Point* PoseDetectResult::unsafe_arena_release_left_ankle() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.PoseDetectResult.left_ankle)
  
  ::vitis::ai::proto::Point* temp = _impl_.left_ankle_;
  _impl_.left_ankle_ = nullptr;
  return temp;
}
inline ::vitis::ai::proto::Point* PoseDetectResult::_internal_mutable_left_ankle() {
  
  if (_impl_.left_ankle_ == nullptr) {
    auto* p = CreateMaybeMessage<::vitis::ai::proto::Point>(GetArenaForAllocation());
    _impl_.left_ankle_ = p;
  }
  return _impl_.left_ankle_;
}
inline ::vitis::ai::proto::Point* PoseDetectResult::mutable_left_ankle() {
  ::vitis::ai::proto::Point* _msg = _internal_mutable_left_ankle();
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.PoseDetectResult.left_ankle)
  return _msg;
}
inline void PoseDetectResult::set_allocated_left_ankle(::vitis::ai::proto::Point* left_ankle) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete _impl_.left_ankle_;
  }
  if (left_ankle) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
        ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(left_ankle);
    if (message_arena != submessage_arena) {
      left_ankle = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, left_ankle, submessage_arena);
    }
    
  } else {
    
  }
  _impl_.left_ankle_ = left_ankle;
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.PoseDetectResult.left_ankle)
}

// .vitis.ai.proto.Point head = 13;
inline bool PoseDetectResult::_internal_has_head() const {
  return this != internal_default_instance() && _impl_.head_ != nullptr;
}
inline bool PoseDetectResult::has_head() const {
  return _internal_has_head();
}
inline void PoseDetectResult::clear_head() {
  if (GetArenaForAllocation() == nullptr && _impl_.head_ != nullptr) {
    delete _impl_.head_;
  }
  _impl_.head_ = nullptr;
}
inline const ::vitis::ai::proto::Point& PoseDetectResult::_internal_head() const {
  const ::vitis::ai::proto::Point* p = _impl_.head_;
  return p != nullptr ? *p : reinterpret_cast<const ::vitis::ai::proto::Point&>(
      ::vitis::ai::proto::_Point_default_instance_);
}
inline const ::vitis::ai::proto::Point& PoseDetectResult::head() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.PoseDetectResult.head)
  return _internal_head();
}
inline void PoseDetectResult::unsafe_arena_set_allocated_head(
    ::vitis::ai::proto::Point* head) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.head_);
  }
  _impl_.head_ = head;
  if (head) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:vitis.ai.proto.PoseDetectResult.head)
}
inline ::vitis::ai::proto::Point* PoseDetectResult::release_head() {
  
  ::vitis::ai::proto::Point* temp = _impl_.head_;
  _impl_.head_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::vitis::ai::proto::Point* PoseDetectResult::unsafe_arena_release_head() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.PoseDetectResult.head)
  
  ::vitis::ai::proto::Point* temp = _impl_.head_;
  _impl_.head_ = nullptr;
  return temp;
}
inline ::vitis::ai::proto::Point* PoseDetectResult::_internal_mutable_head() {
  
  if (_impl_.head_ == nullptr) {
    auto* p = CreateMaybeMessage<::vitis::ai::proto::Point>(GetArenaForAllocation());
    _impl_.head_ = p;
  }
  return _impl_.head_;
}
inline ::vitis::ai::proto::Point* PoseDetectResult::mutable_head() {
  ::vitis::ai::proto::Point* _msg = _internal_mutable_head();
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.PoseDetectResult.head)
  return _msg;
}
inline void PoseDetectResult::set_allocated_head(::vitis::ai::proto::Point* head) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete _impl_.head_;
  }
  if (head) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
        ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(head);
    if (message_arena != submessage_arena) {
      head = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, head, submessage_arena);
    }
    
  } else {
    
  }
  _impl_.head_ = head;
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.PoseDetectResult.head)
}

// .vitis.ai.proto.Point neck = 14;
inline bool PoseDetectResult::_internal_has_neck() const {
  return this != internal_default_instance() && _impl_.neck_ != nullptr;
}
inline bool PoseDetectResult::has_neck() const {
  return _internal_has_neck();
}
inline void PoseDetectResult::clear_neck() {
  if (GetArenaForAllocation() == nullptr && _impl_.neck_ != nullptr) {
    delete _impl_.neck_;
  }
  _impl_.neck_ = nullptr;
}
inline const ::vitis::ai::proto::Point& PoseDetectResult::_internal_neck() const {
  const ::vitis::ai::proto::Point* p = _impl_.neck_;
  return p != nullptr ? *p : reinterpret_cast<const ::vitis::ai::proto::Point&>(
      ::vitis::ai::proto::_Point_default_instance_);
}
inline const ::vitis::ai::proto::Point& PoseDetectResult::neck() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.PoseDetectResult.neck)
  return _internal_neck();
}
inline void PoseDetectResult::unsafe_arena_set_allocated_neck(
    ::vitis::ai::proto::Point* neck) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.neck_);
  }
  _impl_.neck_ = neck;
  if (neck) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:vitis.ai.proto.PoseDetectResult.neck)
}
inline ::vitis::ai::proto::Point* PoseDetectResult::release_neck() {
  
  ::vitis::ai::proto::Point* temp = _impl_.neck_;
  _impl_.neck_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::vitis::ai::proto::Point* PoseDetectResult::unsafe_arena_release_neck() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.PoseDetectResult.neck)
  
  ::vitis::ai::proto::Point* temp = _impl_.neck_;
  _impl_.neck_ = nullptr;
  return temp;
}
inline ::vitis::ai::proto::Point* PoseDetectResult::_internal_mutable_neck() {
  
  if (_impl_.neck_ == nullptr) {
    auto* p = CreateMaybeMessage<::vitis::ai::proto::Point>(GetArenaForAllocation());
    _impl_.neck_ = p;
  }
  return _impl_.neck_;
}
inline ::vitis::ai::proto::Point* PoseDetectResult::mutable_neck() {
  ::vitis::ai::proto::Point* _msg = _internal_mutable_neck();
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.PoseDetectResult.neck)
  return _msg;
}
inline void PoseDetectResult::set_allocated_neck(::vitis::ai::proto::Point* neck) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete _impl_.neck_;
  }
  if (neck) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
        ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(neck);
    if (message_arena != submessage_arena) {
      neck = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, neck, submessage_arena);
    }
    
  } else {
    
  }
  _impl_.neck_ = neck;
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.PoseDetectResult.neck)
}

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

// FaceFeatureResult

// repeated float float_vec = 1;
inline int FaceFeatureResult::_internal_float_vec_size() const {
  return _impl_.float_vec_.size();
}
inline int FaceFeatureResult::float_vec_size() const {
  return _internal_float_vec_size();
}
inline void FaceFeatureResult::clear_float_vec() {
  _impl_.float_vec_.Clear();
}
inline float FaceFeatureResult::_internal_float_vec(int index) const {
  return _impl_.float_vec_.Get(index);
}
inline float FaceFeatureResult::float_vec(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.FaceFeatureResult.float_vec)
  return _internal_float_vec(index);
}
inline void FaceFeatureResult::set_float_vec(int index, float value) {
  _impl_.float_vec_.Set(index, value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.FaceFeatureResult.float_vec)
}
inline void FaceFeatureResult::_internal_add_float_vec(float value) {
  _impl_.float_vec_.Add(value);
}
inline void FaceFeatureResult::add_float_vec(float value) {
  _internal_add_float_vec(value);
  // @@protoc_insertion_point(field_add:vitis.ai.proto.FaceFeatureResult.float_vec)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
FaceFeatureResult::_internal_float_vec() const {
  return _impl_.float_vec_;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >&
FaceFeatureResult::float_vec() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.FaceFeatureResult.float_vec)
  return _internal_float_vec();
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
FaceFeatureResult::_internal_mutable_float_vec() {
  return &_impl_.float_vec_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< float >*
FaceFeatureResult::mutable_float_vec() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.FaceFeatureResult.float_vec)
  return _internal_mutable_float_vec();
}

// bytes fix_vec = 2;
inline void FaceFeatureResult::clear_fix_vec() {
  _impl_.fix_vec_.ClearToEmpty();
}
inline const std::string& FaceFeatureResult::fix_vec() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.FaceFeatureResult.fix_vec)
  return _internal_fix_vec();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void FaceFeatureResult::set_fix_vec(ArgT0&& arg0, ArgT... args) {
 
 _impl_.fix_vec_.SetBytes(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:vitis.ai.proto.FaceFeatureResult.fix_vec)
}
inline std::string* FaceFeatureResult::mutable_fix_vec() {
  std::string* _s = _internal_mutable_fix_vec();
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.FaceFeatureResult.fix_vec)
  return _s;
}
inline const std::string& FaceFeatureResult::_internal_fix_vec() const {
  return _impl_.fix_vec_.Get();
}
inline void FaceFeatureResult::_internal_set_fix_vec(const std::string& value) {
  
  _impl_.fix_vec_.Set(value, GetArenaForAllocation());
}
inline std::string* FaceFeatureResult::_internal_mutable_fix_vec() {
  
  return _impl_.fix_vec_.Mutable(GetArenaForAllocation());
}
inline std::string* FaceFeatureResult::release_fix_vec() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.FaceFeatureResult.fix_vec)
  return _impl_.fix_vec_.Release();
}
inline void FaceFeatureResult::set_allocated_fix_vec(std::string* fix_vec) {
  if (fix_vec != nullptr) {
    
  } else {
    
  }
  _impl_.fix_vec_.SetAllocated(fix_vec, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (_impl_.fix_vec_.IsDefault()) {
    _impl_.fix_vec_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.FaceFeatureResult.fix_vec)
}

// float scale = 3;
inline void FaceFeatureResult::clear_scale() {
  _impl_.scale_ = 0;
}
inline float FaceFeatureResult::_internal_scale() const {
  return _impl_.scale_;
}
inline float FaceFeatureResult::scale() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.FaceFeatureResult.scale)
  return _internal_scale();
}
inline void FaceFeatureResult::_internal_set_scale(float value) {
  
  _impl_.scale_ = value;
}
inline void FaceFeatureResult::set_scale(float value) {
  _internal_set_scale(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.FaceFeatureResult.scale)
}

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

// FaceDetectRecogResult

// repeated .vitis.ai.proto.BoundingBox bounding_box = 1;
inline int FaceDetectRecogResult::_internal_bounding_box_size() const {
  return _impl_.bounding_box_.size();
}
inline int FaceDetectRecogResult::bounding_box_size() const {
  return _internal_bounding_box_size();
}
inline void FaceDetectRecogResult::clear_bounding_box() {
  _impl_.bounding_box_.Clear();
}
inline ::vitis::ai::proto::BoundingBox* FaceDetectRecogResult::mutable_bounding_box(int index) {
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.FaceDetectRecogResult.bounding_box)
  return _impl_.bounding_box_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::BoundingBox >*
FaceDetectRecogResult::mutable_bounding_box() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.FaceDetectRecogResult.bounding_box)
  return &_impl_.bounding_box_;
}
inline const ::vitis::ai::proto::BoundingBox& FaceDetectRecogResult::_internal_bounding_box(int index) const {
  return _impl_.bounding_box_.Get(index);
}
inline const ::vitis::ai::proto::BoundingBox& FaceDetectRecogResult::bounding_box(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.FaceDetectRecogResult.bounding_box)
  return _internal_bounding_box(index);
}
inline ::vitis::ai::proto::BoundingBox* FaceDetectRecogResult::_internal_add_bounding_box() {
  return _impl_.bounding_box_.Add();
}
inline ::vitis::ai::proto::BoundingBox* FaceDetectRecogResult::add_bounding_box() {
  ::vitis::ai::proto::BoundingBox* _add = _internal_add_bounding_box();
  // @@protoc_insertion_point(field_add:vitis.ai.proto.FaceDetectRecogResult.bounding_box)
  return _add;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::BoundingBox >&
FaceDetectRecogResult::bounding_box() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.FaceDetectRecogResult.bounding_box)
  return _impl_.bounding_box_;
}

// repeated .vitis.ai.proto.FaceFeatureResult feature = 2;
inline int FaceDetectRecogResult::_internal_feature_size() const {
  return _impl_.feature_.size();
}
inline int FaceDetectRecogResult::feature_size() const {
  return _internal_feature_size();
}
inline void FaceDetectRecogResult::clear_feature() {
  _impl_.feature_.Clear();
}
inline ::vitis::ai::proto::FaceFeatureResult* FaceDetectRecogResult::mutable_feature(int index) {
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.FaceDetectRecogResult.feature)
  return _impl_.feature_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::FaceFeatureResult >*
FaceDetectRecogResult::mutable_feature() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.FaceDetectRecogResult.feature)
  return &_impl_.feature_;
}
inline const ::vitis::ai::proto::FaceFeatureResult& FaceDetectRecogResult::_internal_feature(int index) const {
  return _impl_.feature_.Get(index);
}
inline const ::vitis::ai::proto::FaceFeatureResult& FaceDetectRecogResult::feature(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.FaceDetectRecogResult.feature)
  return _internal_feature(index);
}
inline ::vitis::ai::proto::FaceFeatureResult* FaceDetectRecogResult::_internal_add_feature() {
  return _impl_.feature_.Add();
}
inline ::vitis::ai::proto::FaceFeatureResult* FaceDetectRecogResult::add_feature() {
  ::vitis::ai::proto::FaceFeatureResult* _add = _internal_add_feature();
  // @@protoc_insertion_point(field_add:vitis.ai.proto.FaceDetectRecogResult.feature)
  return _add;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::FaceFeatureResult >&
FaceDetectRecogResult::feature() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.FaceDetectRecogResult.feature)
  return _impl_.feature_;
}

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

// SegmetationResult

// repeated uint32 data = 1;
inline int SegmetationResult::_internal_data_size() const {
  return _impl_.data_.size();
}
inline int SegmetationResult::data_size() const {
  return _internal_data_size();
}
inline void SegmetationResult::clear_data() {
  _impl_.data_.Clear();
}
inline uint32_t SegmetationResult::_internal_data(int index) const {
  return _impl_.data_.Get(index);
}
inline uint32_t SegmetationResult::data(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.SegmetationResult.data)
  return _internal_data(index);
}
inline void SegmetationResult::set_data(int index, uint32_t value) {
  _impl_.data_.Set(index, value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.SegmetationResult.data)
}
inline void SegmetationResult::_internal_add_data(uint32_t value) {
  _impl_.data_.Add(value);
}
inline void SegmetationResult::add_data(uint32_t value) {
  _internal_add_data(value);
  // @@protoc_insertion_point(field_add:vitis.ai.proto.SegmetationResult.data)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< uint32_t >&
SegmetationResult::_internal_data() const {
  return _impl_.data_;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< uint32_t >&
SegmetationResult::data() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.SegmetationResult.data)
  return _internal_data();
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< uint32_t >*
SegmetationResult::_internal_mutable_data() {
  return &_impl_.data_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< uint32_t >*
SegmetationResult::mutable_data() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.SegmetationResult.data)
  return _internal_mutable_data();
}

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

// MedicalSegmetationResult

// repeated .vitis.ai.proto.SegmetationResult segmentation = 1;
inline int MedicalSegmetationResult::_internal_segmentation_size() const {
  return _impl_.segmentation_.size();
}
inline int MedicalSegmetationResult::segmentation_size() const {
  return _internal_segmentation_size();
}
inline void MedicalSegmetationResult::clear_segmentation() {
  _impl_.segmentation_.Clear();
}
inline ::vitis::ai::proto::SegmetationResult* MedicalSegmetationResult::mutable_segmentation(int index) {
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.MedicalSegmetationResult.segmentation)
  return _impl_.segmentation_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::SegmetationResult >*
MedicalSegmetationResult::mutable_segmentation() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.MedicalSegmetationResult.segmentation)
  return &_impl_.segmentation_;
}
inline const ::vitis::ai::proto::SegmetationResult& MedicalSegmetationResult::_internal_segmentation(int index) const {
  return _impl_.segmentation_.Get(index);
}
inline const ::vitis::ai::proto::SegmetationResult& MedicalSegmetationResult::segmentation(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.MedicalSegmetationResult.segmentation)
  return _internal_segmentation(index);
}
inline ::vitis::ai::proto::SegmetationResult* MedicalSegmetationResult::_internal_add_segmentation() {
  return _impl_.segmentation_.Add();
}
inline ::vitis::ai::proto::SegmetationResult* MedicalSegmetationResult::add_segmentation() {
  ::vitis::ai::proto::SegmetationResult* _add = _internal_add_segmentation();
  // @@protoc_insertion_point(field_add:vitis.ai.proto.MedicalSegmetationResult.segmentation)
  return _add;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::SegmetationResult >&
MedicalSegmetationResult::segmentation() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.MedicalSegmetationResult.segmentation)
  return _impl_.segmentation_;
}

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

// VehicleResult

// int32 label = 1;
inline void VehicleResult::clear_label() {
  _impl_.label_ = 0;
}
inline int32_t VehicleResult::_internal_label() const {
  return _impl_.label_;
}
inline int32_t VehicleResult::label() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.VehicleResult.label)
  return _internal_label();
}
inline void VehicleResult::_internal_set_label(int32_t value) {
  
  _impl_.label_ = value;
}
inline void VehicleResult::set_label(int32_t value) {
  _internal_set_label(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.VehicleResult.label)
}

// float score = 2;
inline void VehicleResult::clear_score() {
  _impl_.score_ = 0;
}
inline float VehicleResult::_internal_score() const {
  return _impl_.score_;
}
inline float VehicleResult::score() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.VehicleResult.score)
  return _internal_score();
}
inline void VehicleResult::_internal_set_score(float value) {
  
  _impl_.score_ = value;
}
inline void VehicleResult::set_score(float value) {
  _internal_set_score(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.VehicleResult.score)
}

// float x = 3;
inline void VehicleResult::clear_x() {
  _impl_.x_ = 0;
}
inline float VehicleResult::_internal_x() const {
  return _impl_.x_;
}
inline float VehicleResult::x() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.VehicleResult.x)
  return _internal_x();
}
inline void VehicleResult::_internal_set_x(float value) {
  
  _impl_.x_ = value;
}
inline void VehicleResult::set_x(float value) {
  _internal_set_x(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.VehicleResult.x)
}

// float y = 4;
inline void VehicleResult::clear_y() {
  _impl_.y_ = 0;
}
inline float VehicleResult::_internal_y() const {
  return _impl_.y_;
}
inline float VehicleResult::y() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.VehicleResult.y)
  return _internal_y();
}
inline void VehicleResult::_internal_set_y(float value) {
  
  _impl_.y_ = value;
}
inline void VehicleResult::set_y(float value) {
  _internal_set_y(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.VehicleResult.y)
}

// float width = 5;
inline void VehicleResult::clear_width() {
  _impl_.width_ = 0;
}
inline float VehicleResult::_internal_width() const {
  return _impl_.width_;
}
inline float VehicleResult::width() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.VehicleResult.width)
  return _internal_width();
}
inline void VehicleResult::_internal_set_width(float value) {
  
  _impl_.width_ = value;
}
inline void VehicleResult::set_width(float value) {
  _internal_set_width(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.VehicleResult.width)
}

// float height = 6;
inline void VehicleResult::clear_height() {
  _impl_.height_ = 0;
}
inline float VehicleResult::_internal_height() const {
  return _impl_.height_;
}
inline float VehicleResult::height() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.VehicleResult.height)
  return _internal_height();
}
inline void VehicleResult::_internal_set_height(float value) {
  
  _impl_.height_ = value;
}
inline void VehicleResult::set_height(float value) {
  _internal_set_height(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.VehicleResult.height)
}

// float angle = 7;
inline void VehicleResult::clear_angle() {
  _impl_.angle_ = 0;
}
inline float VehicleResult::_internal_angle() const {
  return _impl_.angle_;
}
inline float VehicleResult::angle() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.VehicleResult.angle)
  return _internal_angle();
}
inline void VehicleResult::_internal_set_angle(float value) {
  
  _impl_.angle_ = value;
}
inline void VehicleResult::set_angle(float value) {
  _internal_set_angle(value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.VehicleResult.angle)
}

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

// MultiTaskResult

// .vitis.ai.proto.SegmetationResult segmentation = 1;
inline bool MultiTaskResult::_internal_has_segmentation() const {
  return this != internal_default_instance() && _impl_.segmentation_ != nullptr;
}
inline bool MultiTaskResult::has_segmentation() const {
  return _internal_has_segmentation();
}
inline void MultiTaskResult::clear_segmentation() {
  if (GetArenaForAllocation() == nullptr && _impl_.segmentation_ != nullptr) {
    delete _impl_.segmentation_;
  }
  _impl_.segmentation_ = nullptr;
}
inline const ::vitis::ai::proto::SegmetationResult& MultiTaskResult::_internal_segmentation() const {
  const ::vitis::ai::proto::SegmetationResult* p = _impl_.segmentation_;
  return p != nullptr ? *p : reinterpret_cast<const ::vitis::ai::proto::SegmetationResult&>(
      ::vitis::ai::proto::_SegmetationResult_default_instance_);
}
inline const ::vitis::ai::proto::SegmetationResult& MultiTaskResult::segmentation() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.MultiTaskResult.segmentation)
  return _internal_segmentation();
}
inline void MultiTaskResult::unsafe_arena_set_allocated_segmentation(
    ::vitis::ai::proto::SegmetationResult* segmentation) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.segmentation_);
  }
  _impl_.segmentation_ = segmentation;
  if (segmentation) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:vitis.ai.proto.MultiTaskResult.segmentation)
}
inline ::vitis::ai::proto::SegmetationResult* MultiTaskResult::release_segmentation() {
  
  ::vitis::ai::proto::SegmetationResult* temp = _impl_.segmentation_;
  _impl_.segmentation_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::vitis::ai::proto::SegmetationResult* MultiTaskResult::unsafe_arena_release_segmentation() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.MultiTaskResult.segmentation)
  
  ::vitis::ai::proto::SegmetationResult* temp = _impl_.segmentation_;
  _impl_.segmentation_ = nullptr;
  return temp;
}
inline ::vitis::ai::proto::SegmetationResult* MultiTaskResult::_internal_mutable_segmentation() {
  
  if (_impl_.segmentation_ == nullptr) {
    auto* p = CreateMaybeMessage<::vitis::ai::proto::SegmetationResult>(GetArenaForAllocation());
    _impl_.segmentation_ = p;
  }
  return _impl_.segmentation_;
}
inline ::vitis::ai::proto::SegmetationResult* MultiTaskResult::mutable_segmentation() {
  ::vitis::ai::proto::SegmetationResult* _msg = _internal_mutable_segmentation();
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.MultiTaskResult.segmentation)
  return _msg;
}
inline void MultiTaskResult::set_allocated_segmentation(::vitis::ai::proto::SegmetationResult* segmentation) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete _impl_.segmentation_;
  }
  if (segmentation) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
        ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(segmentation);
    if (message_arena != submessage_arena) {
      segmentation = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, segmentation, submessage_arena);
    }
    
  } else {
    
  }
  _impl_.segmentation_ = segmentation;
  // @@protoc_insertion_point(field_set_allocated:vitis.ai.proto.MultiTaskResult.segmentation)
}

// repeated .vitis.ai.proto.VehicleResult vehicle_reuslt = 2;
inline int MultiTaskResult::_internal_vehicle_reuslt_size() const {
  return _impl_.vehicle_reuslt_.size();
}
inline int MultiTaskResult::vehicle_reuslt_size() const {
  return _internal_vehicle_reuslt_size();
}
inline void MultiTaskResult::clear_vehicle_reuslt() {
  _impl_.vehicle_reuslt_.Clear();
}
inline ::vitis::ai::proto::VehicleResult* MultiTaskResult::mutable_vehicle_reuslt(int index) {
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.MultiTaskResult.vehicle_reuslt)
  return _impl_.vehicle_reuslt_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::VehicleResult >*
MultiTaskResult::mutable_vehicle_reuslt() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.MultiTaskResult.vehicle_reuslt)
  return &_impl_.vehicle_reuslt_;
}
inline const ::vitis::ai::proto::VehicleResult& MultiTaskResult::_internal_vehicle_reuslt(int index) const {
  return _impl_.vehicle_reuslt_.Get(index);
}
inline const ::vitis::ai::proto::VehicleResult& MultiTaskResult::vehicle_reuslt(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.MultiTaskResult.vehicle_reuslt)
  return _internal_vehicle_reuslt(index);
}
inline ::vitis::ai::proto::VehicleResult* MultiTaskResult::_internal_add_vehicle_reuslt() {
  return _impl_.vehicle_reuslt_.Add();
}
inline ::vitis::ai::proto::VehicleResult* MultiTaskResult::add_vehicle_reuslt() {
  ::vitis::ai::proto::VehicleResult* _add = _internal_add_vehicle_reuslt();
  // @@protoc_insertion_point(field_add:vitis.ai.proto.MultiTaskResult.vehicle_reuslt)
  return _add;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::vitis::ai::proto::VehicleResult >&
MultiTaskResult::vehicle_reuslt() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.MultiTaskResult.vehicle_reuslt)
  return _impl_.vehicle_reuslt_;
}

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

// ReidResult

// repeated uint32 data = 1;
inline int ReidResult::_internal_data_size() const {
  return _impl_.data_.size();
}
inline int ReidResult::data_size() const {
  return _internal_data_size();
}
inline void ReidResult::clear_data() {
  _impl_.data_.Clear();
}
inline uint32_t ReidResult::_internal_data(int index) const {
  return _impl_.data_.Get(index);
}
inline uint32_t ReidResult::data(int index) const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.ReidResult.data)
  return _internal_data(index);
}
inline void ReidResult::set_data(int index, uint32_t value) {
  _impl_.data_.Set(index, value);
  // @@protoc_insertion_point(field_set:vitis.ai.proto.ReidResult.data)
}
inline void ReidResult::_internal_add_data(uint32_t value) {
  _impl_.data_.Add(value);
}
inline void ReidResult::add_data(uint32_t value) {
  _internal_add_data(value);
  // @@protoc_insertion_point(field_add:vitis.ai.proto.ReidResult.data)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< uint32_t >&
ReidResult::_internal_data() const {
  return _impl_.data_;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< uint32_t >&
ReidResult::data() const {
  // @@protoc_insertion_point(field_list:vitis.ai.proto.ReidResult.data)
  return _internal_data();
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< uint32_t >*
ReidResult::_internal_mutable_data() {
  return &_impl_.data_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< uint32_t >*
ReidResult::mutable_data() {
  // @@protoc_insertion_point(field_mutable_list:vitis.ai.proto.ReidResult.data)
  return _internal_mutable_data();
}

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

// DpuModelResult

// .vitis.ai.proto.LandmarkResult landmark_result = 1;
inline bool DpuModelResult::_internal_has_landmark_result() const {
  return dpu_model_result_case() == kLandmarkResult;
}
inline bool DpuModelResult::has_landmark_result() const {
  return _internal_has_landmark_result();
}
inline void DpuModelResult::set_has_landmark_result() {
  _impl_._oneof_case_[0] = kLandmarkResult;
}
inline void DpuModelResult::clear_landmark_result() {
  if (_internal_has_landmark_result()) {
    if (GetArenaForAllocation() == nullptr) {
      delete _impl_.dpu_model_result_.landmark_result_;
    }
    clear_has_dpu_model_result();
  }
}
inline ::vitis::ai::proto::LandmarkResult* DpuModelResult::release_landmark_result() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.DpuModelResult.landmark_result)
  if (_internal_has_landmark_result()) {
    clear_has_dpu_model_result();
    ::vitis::ai::proto::LandmarkResult* temp = _impl_.dpu_model_result_.landmark_result_;
    if (GetArenaForAllocation() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    _impl_.dpu_model_result_.landmark_result_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::vitis::ai::proto::LandmarkResult& DpuModelResult::_internal_landmark_result() const {
  return _internal_has_landmark_result()
      ? *_impl_.dpu_model_result_.landmark_result_
      : reinterpret_cast< ::vitis::ai::proto::LandmarkResult&>(::vitis::ai::proto::_LandmarkResult_default_instance_);
}
inline const ::vitis::ai::proto::LandmarkResult& DpuModelResult::landmark_result() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.DpuModelResult.landmark_result)
  return _internal_landmark_result();
}
inline ::vitis::ai::proto::LandmarkResult* DpuModelResult::unsafe_arena_release_landmark_result() {
  // @@protoc_insertion_point(field_unsafe_arena_release:vitis.ai.proto.DpuModelResult.landmark_result)
  if (_internal_has_landmark_result()) {
    clear_has_dpu_model_result();
    ::vitis::ai::proto::LandmarkResult* temp = _impl_.dpu_model_result_.landmark_result_;
    _impl_.dpu_model_result_.landmark_result_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void DpuModelResult::unsafe_arena_set_allocated_landmark_result(::vitis::ai::proto::LandmarkResult* landmark_result) {
  clear_dpu_model_result();
  if (landmark_result) {
    set_has_landmark_result();
    _impl_.dpu_model_result_.landmark_result_ = landmark_result;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:vitis.ai.proto.DpuModelResult.landmark_result)
}
inline ::vitis::ai::proto::LandmarkResult* DpuModelResult::_internal_mutable_landmark_result() {
  if (!_internal_has_landmark_result()) {
    clear_dpu_model_result();
    set_has_landmark_result();
    _impl_.dpu_model_result_.landmark_result_ = CreateMaybeMessage< ::vitis::ai::proto::LandmarkResult >(GetArenaForAllocation());
  }
  return _impl_.dpu_model_result_.landmark_result_;
}
inline ::vitis::ai::proto::LandmarkResult* DpuModelResult::mutable_landmark_result() {
  ::vitis::ai::proto::LandmarkResult* _msg = _internal_mutable_landmark_result();
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.DpuModelResult.landmark_result)
  return _msg;
}

// .vitis.ai.proto.DetectResult detect_result = 2;
inline bool DpuModelResult::_internal_has_detect_result() const {
  return dpu_model_result_case() == kDetectResult;
}
inline bool DpuModelResult::has_detect_result() const {
  return _internal_has_detect_result();
}
inline void DpuModelResult::set_has_detect_result() {
  _impl_._oneof_case_[0] = kDetectResult;
}
inline void DpuModelResult::clear_detect_result() {
  if (_internal_has_detect_result()) {
    if (GetArenaForAllocation() == nullptr) {
      delete _impl_.dpu_model_result_.detect_result_;
    }
    clear_has_dpu_model_result();
  }
}
inline ::vitis::ai::proto::DetectResult* DpuModelResult::release_detect_result() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.DpuModelResult.detect_result)
  if (_internal_has_detect_result()) {
    clear_has_dpu_model_result();
    ::vitis::ai::proto::DetectResult* temp = _impl_.dpu_model_result_.detect_result_;
    if (GetArenaForAllocation() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    _impl_.dpu_model_result_.detect_result_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::vitis::ai::proto::DetectResult& DpuModelResult::_internal_detect_result() const {
  return _internal_has_detect_result()
      ? *_impl_.dpu_model_result_.detect_result_
      : reinterpret_cast< ::vitis::ai::proto::DetectResult&>(::vitis::ai::proto::_DetectResult_default_instance_);
}
inline const ::vitis::ai::proto::DetectResult& DpuModelResult::detect_result() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.DpuModelResult.detect_result)
  return _internal_detect_result();
}
inline ::vitis::ai::proto::DetectResult* DpuModelResult::unsafe_arena_release_detect_result() {
  // @@protoc_insertion_point(field_unsafe_arena_release:vitis.ai.proto.DpuModelResult.detect_result)
  if (_internal_has_detect_result()) {
    clear_has_dpu_model_result();
    ::vitis::ai::proto::DetectResult* temp = _impl_.dpu_model_result_.detect_result_;
    _impl_.dpu_model_result_.detect_result_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void DpuModelResult::unsafe_arena_set_allocated_detect_result(::vitis::ai::proto::DetectResult* detect_result) {
  clear_dpu_model_result();
  if (detect_result) {
    set_has_detect_result();
    _impl_.dpu_model_result_.detect_result_ = detect_result;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:vitis.ai.proto.DpuModelResult.detect_result)
}
inline ::vitis::ai::proto::DetectResult* DpuModelResult::_internal_mutable_detect_result() {
  if (!_internal_has_detect_result()) {
    clear_dpu_model_result();
    set_has_detect_result();
    _impl_.dpu_model_result_.detect_result_ = CreateMaybeMessage< ::vitis::ai::proto::DetectResult >(GetArenaForAllocation());
  }
  return _impl_.dpu_model_result_.detect_result_;
}
inline ::vitis::ai::proto::DetectResult* DpuModelResult::mutable_detect_result() {
  ::vitis::ai::proto::DetectResult* _msg = _internal_mutable_detect_result();
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.DpuModelResult.detect_result)
  return _msg;
}

// .vitis.ai.proto.AttributeResult attribute_result = 3;
inline bool DpuModelResult::_internal_has_attribute_result() const {
  return dpu_model_result_case() == kAttributeResult;
}
inline bool DpuModelResult::has_attribute_result() const {
  return _internal_has_attribute_result();
}
inline void DpuModelResult::set_has_attribute_result() {
  _impl_._oneof_case_[0] = kAttributeResult;
}
inline void DpuModelResult::clear_attribute_result() {
  if (_internal_has_attribute_result()) {
    if (GetArenaForAllocation() == nullptr) {
      delete _impl_.dpu_model_result_.attribute_result_;
    }
    clear_has_dpu_model_result();
  }
}
inline ::vitis::ai::proto::AttributeResult* DpuModelResult::release_attribute_result() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.DpuModelResult.attribute_result)
  if (_internal_has_attribute_result()) {
    clear_has_dpu_model_result();
    ::vitis::ai::proto::AttributeResult* temp = _impl_.dpu_model_result_.attribute_result_;
    if (GetArenaForAllocation() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    _impl_.dpu_model_result_.attribute_result_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::vitis::ai::proto::AttributeResult& DpuModelResult::_internal_attribute_result() const {
  return _internal_has_attribute_result()
      ? *_impl_.dpu_model_result_.attribute_result_
      : reinterpret_cast< ::vitis::ai::proto::AttributeResult&>(::vitis::ai::proto::_AttributeResult_default_instance_);
}
inline const ::vitis::ai::proto::AttributeResult& DpuModelResult::attribute_result() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.DpuModelResult.attribute_result)
  return _internal_attribute_result();
}
inline ::vitis::ai::proto::AttributeResult* DpuModelResult::unsafe_arena_release_attribute_result() {
  // @@protoc_insertion_point(field_unsafe_arena_release:vitis.ai.proto.DpuModelResult.attribute_result)
  if (_internal_has_attribute_result()) {
    clear_has_dpu_model_result();
    ::vitis::ai::proto::AttributeResult* temp = _impl_.dpu_model_result_.attribute_result_;
    _impl_.dpu_model_result_.attribute_result_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void DpuModelResult::unsafe_arena_set_allocated_attribute_result(::vitis::ai::proto::AttributeResult* attribute_result) {
  clear_dpu_model_result();
  if (attribute_result) {
    set_has_attribute_result();
    _impl_.dpu_model_result_.attribute_result_ = attribute_result;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:vitis.ai.proto.DpuModelResult.attribute_result)
}
inline ::vitis::ai::proto::AttributeResult* DpuModelResult::_internal_mutable_attribute_result() {
  if (!_internal_has_attribute_result()) {
    clear_dpu_model_result();
    set_has_attribute_result();
    _impl_.dpu_model_result_.attribute_result_ = CreateMaybeMessage< ::vitis::ai::proto::AttributeResult >(GetArenaForAllocation());
  }
  return _impl_.dpu_model_result_.attribute_result_;
}
inline ::vitis::ai::proto::AttributeResult* DpuModelResult::mutable_attribute_result() {
  ::vitis::ai::proto::AttributeResult* _msg = _internal_mutable_attribute_result();
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.DpuModelResult.attribute_result)
  return _msg;
}

// .vitis.ai.proto.DetectResult refine_det_result = 4;
inline bool DpuModelResult::_internal_has_refine_det_result() const {
  return dpu_model_result_case() == kRefineDetResult;
}
inline bool DpuModelResult::has_refine_det_result() const {
  return _internal_has_refine_det_result();
}
inline void DpuModelResult::set_has_refine_det_result() {
  _impl_._oneof_case_[0] = kRefineDetResult;
}
inline void DpuModelResult::clear_refine_det_result() {
  if (_internal_has_refine_det_result()) {
    if (GetArenaForAllocation() == nullptr) {
      delete _impl_.dpu_model_result_.refine_det_result_;
    }
    clear_has_dpu_model_result();
  }
}
inline ::vitis::ai::proto::DetectResult* DpuModelResult::release_refine_det_result() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.DpuModelResult.refine_det_result)
  if (_internal_has_refine_det_result()) {
    clear_has_dpu_model_result();
    ::vitis::ai::proto::DetectResult* temp = _impl_.dpu_model_result_.refine_det_result_;
    if (GetArenaForAllocation() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    _impl_.dpu_model_result_.refine_det_result_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::vitis::ai::proto::DetectResult& DpuModelResult::_internal_refine_det_result() const {
  return _internal_has_refine_det_result()
      ? *_impl_.dpu_model_result_.refine_det_result_
      : reinterpret_cast< ::vitis::ai::proto::DetectResult&>(::vitis::ai::proto::_DetectResult_default_instance_);
}
inline const ::vitis::ai::proto::DetectResult& DpuModelResult::refine_det_result() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.DpuModelResult.refine_det_result)
  return _internal_refine_det_result();
}
inline ::vitis::ai::proto::DetectResult* DpuModelResult::unsafe_arena_release_refine_det_result() {
  // @@protoc_insertion_point(field_unsafe_arena_release:vitis.ai.proto.DpuModelResult.refine_det_result)
  if (_internal_has_refine_det_result()) {
    clear_has_dpu_model_result();
    ::vitis::ai::proto::DetectResult* temp = _impl_.dpu_model_result_.refine_det_result_;
    _impl_.dpu_model_result_.refine_det_result_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void DpuModelResult::unsafe_arena_set_allocated_refine_det_result(::vitis::ai::proto::DetectResult* refine_det_result) {
  clear_dpu_model_result();
  if (refine_det_result) {
    set_has_refine_det_result();
    _impl_.dpu_model_result_.refine_det_result_ = refine_det_result;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:vitis.ai.proto.DpuModelResult.refine_det_result)
}
inline ::vitis::ai::proto::DetectResult* DpuModelResult::_internal_mutable_refine_det_result() {
  if (!_internal_has_refine_det_result()) {
    clear_dpu_model_result();
    set_has_refine_det_result();
    _impl_.dpu_model_result_.refine_det_result_ = CreateMaybeMessage< ::vitis::ai::proto::DetectResult >(GetArenaForAllocation());
  }
  return _impl_.dpu_model_result_.refine_det_result_;
}
inline ::vitis::ai::proto::DetectResult* DpuModelResult::mutable_refine_det_result() {
  ::vitis::ai::proto::DetectResult* _msg = _internal_mutable_refine_det_result();
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.DpuModelResult.refine_det_result)
  return _msg;
}

// .vitis.ai.proto.ClassificationResult classification_result = 5;
inline bool DpuModelResult::_internal_has_classification_result() const {
  return dpu_model_result_case() == kClassificationResult;
}
inline bool DpuModelResult::has_classification_result() const {
  return _internal_has_classification_result();
}
inline void DpuModelResult::set_has_classification_result() {
  _impl_._oneof_case_[0] = kClassificationResult;
}
inline void DpuModelResult::clear_classification_result() {
  if (_internal_has_classification_result()) {
    if (GetArenaForAllocation() == nullptr) {
      delete _impl_.dpu_model_result_.classification_result_;
    }
    clear_has_dpu_model_result();
  }
}
inline ::vitis::ai::proto::ClassificationResult* DpuModelResult::release_classification_result() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.DpuModelResult.classification_result)
  if (_internal_has_classification_result()) {
    clear_has_dpu_model_result();
    ::vitis::ai::proto::ClassificationResult* temp = _impl_.dpu_model_result_.classification_result_;
    if (GetArenaForAllocation() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    _impl_.dpu_model_result_.classification_result_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::vitis::ai::proto::ClassificationResult& DpuModelResult::_internal_classification_result() const {
  return _internal_has_classification_result()
      ? *_impl_.dpu_model_result_.classification_result_
      : reinterpret_cast< ::vitis::ai::proto::ClassificationResult&>(::vitis::ai::proto::_ClassificationResult_default_instance_);
}
inline const ::vitis::ai::proto::ClassificationResult& DpuModelResult::classification_result() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.DpuModelResult.classification_result)
  return _internal_classification_result();
}
inline ::vitis::ai::proto::ClassificationResult* DpuModelResult::unsafe_arena_release_classification_result() {
  // @@protoc_insertion_point(field_unsafe_arena_release:vitis.ai.proto.DpuModelResult.classification_result)
  if (_internal_has_classification_result()) {
    clear_has_dpu_model_result();
    ::vitis::ai::proto::ClassificationResult* temp = _impl_.dpu_model_result_.classification_result_;
    _impl_.dpu_model_result_.classification_result_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void DpuModelResult::unsafe_arena_set_allocated_classification_result(::vitis::ai::proto::ClassificationResult* classification_result) {
  clear_dpu_model_result();
  if (classification_result) {
    set_has_classification_result();
    _impl_.dpu_model_result_.classification_result_ = classification_result;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:vitis.ai.proto.DpuModelResult.classification_result)
}
inline ::vitis::ai::proto::ClassificationResult* DpuModelResult::_internal_mutable_classification_result() {
  if (!_internal_has_classification_result()) {
    clear_dpu_model_result();
    set_has_classification_result();
    _impl_.dpu_model_result_.classification_result_ = CreateMaybeMessage< ::vitis::ai::proto::ClassificationResult >(GetArenaForAllocation());
  }
  return _impl_.dpu_model_result_.classification_result_;
}
inline ::vitis::ai::proto::ClassificationResult* DpuModelResult::mutable_classification_result() {
  ::vitis::ai::proto::ClassificationResult* _msg = _internal_mutable_classification_result();
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.DpuModelResult.classification_result)
  return _msg;
}

// .vitis.ai.proto.RoadlineResult roadline_result = 6;
inline bool DpuModelResult::_internal_has_roadline_result() const {
  return dpu_model_result_case() == kRoadlineResult;
}
inline bool DpuModelResult::has_roadline_result() const {
  return _internal_has_roadline_result();
}
inline void DpuModelResult::set_has_roadline_result() {
  _impl_._oneof_case_[0] = kRoadlineResult;
}
inline void DpuModelResult::clear_roadline_result() {
  if (_internal_has_roadline_result()) {
    if (GetArenaForAllocation() == nullptr) {
      delete _impl_.dpu_model_result_.roadline_result_;
    }
    clear_has_dpu_model_result();
  }
}
inline ::vitis::ai::proto::RoadlineResult* DpuModelResult::release_roadline_result() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.DpuModelResult.roadline_result)
  if (_internal_has_roadline_result()) {
    clear_has_dpu_model_result();
    ::vitis::ai::proto::RoadlineResult* temp = _impl_.dpu_model_result_.roadline_result_;
    if (GetArenaForAllocation() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    _impl_.dpu_model_result_.roadline_result_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::vitis::ai::proto::RoadlineResult& DpuModelResult::_internal_roadline_result() const {
  return _internal_has_roadline_result()
      ? *_impl_.dpu_model_result_.roadline_result_
      : reinterpret_cast< ::vitis::ai::proto::RoadlineResult&>(::vitis::ai::proto::_RoadlineResult_default_instance_);
}
inline const ::vitis::ai::proto::RoadlineResult& DpuModelResult::roadline_result() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.DpuModelResult.roadline_result)
  return _internal_roadline_result();
}
inline ::vitis::ai::proto::RoadlineResult* DpuModelResult::unsafe_arena_release_roadline_result() {
  // @@protoc_insertion_point(field_unsafe_arena_release:vitis.ai.proto.DpuModelResult.roadline_result)
  if (_internal_has_roadline_result()) {
    clear_has_dpu_model_result();
    ::vitis::ai::proto::RoadlineResult* temp = _impl_.dpu_model_result_.roadline_result_;
    _impl_.dpu_model_result_.roadline_result_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void DpuModelResult::unsafe_arena_set_allocated_roadline_result(::vitis::ai::proto::RoadlineResult* roadline_result) {
  clear_dpu_model_result();
  if (roadline_result) {
    set_has_roadline_result();
    _impl_.dpu_model_result_.roadline_result_ = roadline_result;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:vitis.ai.proto.DpuModelResult.roadline_result)
}
inline ::vitis::ai::proto::RoadlineResult* DpuModelResult::_internal_mutable_roadline_result() {
  if (!_internal_has_roadline_result()) {
    clear_dpu_model_result();
    set_has_roadline_result();
    _impl_.dpu_model_result_.roadline_result_ = CreateMaybeMessage< ::vitis::ai::proto::RoadlineResult >(GetArenaForAllocation());
  }
  return _impl_.dpu_model_result_.roadline_result_;
}
inline ::vitis::ai::proto::RoadlineResult* DpuModelResult::mutable_roadline_result() {
  ::vitis::ai::proto::RoadlineResult* _msg = _internal_mutable_roadline_result();
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.DpuModelResult.roadline_result)
  return _msg;
}

// .vitis.ai.proto.FaceLandmarkResult facelandmark_result = 7;
inline bool DpuModelResult::_internal_has_facelandmark_result() const {
  return dpu_model_result_case() == kFacelandmarkResult;
}
inline bool DpuModelResult::has_facelandmark_result() const {
  return _internal_has_facelandmark_result();
}
inline void DpuModelResult::set_has_facelandmark_result() {
  _impl_._oneof_case_[0] = kFacelandmarkResult;
}
inline void DpuModelResult::clear_facelandmark_result() {
  if (_internal_has_facelandmark_result()) {
    if (GetArenaForAllocation() == nullptr) {
      delete _impl_.dpu_model_result_.facelandmark_result_;
    }
    clear_has_dpu_model_result();
  }
}
inline ::vitis::ai::proto::FaceLandmarkResult* DpuModelResult::release_facelandmark_result() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.DpuModelResult.facelandmark_result)
  if (_internal_has_facelandmark_result()) {
    clear_has_dpu_model_result();
    ::vitis::ai::proto::FaceLandmarkResult* temp = _impl_.dpu_model_result_.facelandmark_result_;
    if (GetArenaForAllocation() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    _impl_.dpu_model_result_.facelandmark_result_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::vitis::ai::proto::FaceLandmarkResult& DpuModelResult::_internal_facelandmark_result() const {
  return _internal_has_facelandmark_result()
      ? *_impl_.dpu_model_result_.facelandmark_result_
      : reinterpret_cast< ::vitis::ai::proto::FaceLandmarkResult&>(::vitis::ai::proto::_FaceLandmarkResult_default_instance_);
}
inline const ::vitis::ai::proto::FaceLandmarkResult& DpuModelResult::facelandmark_result() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.DpuModelResult.facelandmark_result)
  return _internal_facelandmark_result();
}
inline ::vitis::ai::proto::FaceLandmarkResult* DpuModelResult::unsafe_arena_release_facelandmark_result() {
  // @@protoc_insertion_point(field_unsafe_arena_release:vitis.ai.proto.DpuModelResult.facelandmark_result)
  if (_internal_has_facelandmark_result()) {
    clear_has_dpu_model_result();
    ::vitis::ai::proto::FaceLandmarkResult* temp = _impl_.dpu_model_result_.facelandmark_result_;
    _impl_.dpu_model_result_.facelandmark_result_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void DpuModelResult::unsafe_arena_set_allocated_facelandmark_result(::vitis::ai::proto::FaceLandmarkResult* facelandmark_result) {
  clear_dpu_model_result();
  if (facelandmark_result) {
    set_has_facelandmark_result();
    _impl_.dpu_model_result_.facelandmark_result_ = facelandmark_result;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:vitis.ai.proto.DpuModelResult.facelandmark_result)
}
inline ::vitis::ai::proto::FaceLandmarkResult* DpuModelResult::_internal_mutable_facelandmark_result() {
  if (!_internal_has_facelandmark_result()) {
    clear_dpu_model_result();
    set_has_facelandmark_result();
    _impl_.dpu_model_result_.facelandmark_result_ = CreateMaybeMessage< ::vitis::ai::proto::FaceLandmarkResult >(GetArenaForAllocation());
  }
  return _impl_.dpu_model_result_.facelandmark_result_;
}
inline ::vitis::ai::proto::FaceLandmarkResult* DpuModelResult::mutable_facelandmark_result() {
  ::vitis::ai::proto::FaceLandmarkResult* _msg = _internal_mutable_facelandmark_result();
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.DpuModelResult.facelandmark_result)
  return _msg;
}

// .vitis.ai.proto.PlateDetectResult plate_detect_result = 8;
inline bool DpuModelResult::_internal_has_plate_detect_result() const {
  return dpu_model_result_case() == kPlateDetectResult;
}
inline bool DpuModelResult::has_plate_detect_result() const {
  return _internal_has_plate_detect_result();
}
inline void DpuModelResult::set_has_plate_detect_result() {
  _impl_._oneof_case_[0] = kPlateDetectResult;
}
inline void DpuModelResult::clear_plate_detect_result() {
  if (_internal_has_plate_detect_result()) {
    if (GetArenaForAllocation() == nullptr) {
      delete _impl_.dpu_model_result_.plate_detect_result_;
    }
    clear_has_dpu_model_result();
  }
}
inline ::vitis::ai::proto::PlateDetectResult* DpuModelResult::release_plate_detect_result() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.DpuModelResult.plate_detect_result)
  if (_internal_has_plate_detect_result()) {
    clear_has_dpu_model_result();
    ::vitis::ai::proto::PlateDetectResult* temp = _impl_.dpu_model_result_.plate_detect_result_;
    if (GetArenaForAllocation() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    _impl_.dpu_model_result_.plate_detect_result_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::vitis::ai::proto::PlateDetectResult& DpuModelResult::_internal_plate_detect_result() const {
  return _internal_has_plate_detect_result()
      ? *_impl_.dpu_model_result_.plate_detect_result_
      : reinterpret_cast< ::vitis::ai::proto::PlateDetectResult&>(::vitis::ai::proto::_PlateDetectResult_default_instance_);
}
inline const ::vitis::ai::proto::PlateDetectResult& DpuModelResult::plate_detect_result() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.DpuModelResult.plate_detect_result)
  return _internal_plate_detect_result();
}
inline ::vitis::ai::proto::PlateDetectResult* DpuModelResult::unsafe_arena_release_plate_detect_result() {
  // @@protoc_insertion_point(field_unsafe_arena_release:vitis.ai.proto.DpuModelResult.plate_detect_result)
  if (_internal_has_plate_detect_result()) {
    clear_has_dpu_model_result();
    ::vitis::ai::proto::PlateDetectResult* temp = _impl_.dpu_model_result_.plate_detect_result_;
    _impl_.dpu_model_result_.plate_detect_result_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void DpuModelResult::unsafe_arena_set_allocated_plate_detect_result(::vitis::ai::proto::PlateDetectResult* plate_detect_result) {
  clear_dpu_model_result();
  if (plate_detect_result) {
    set_has_plate_detect_result();
    _impl_.dpu_model_result_.plate_detect_result_ = plate_detect_result;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:vitis.ai.proto.DpuModelResult.plate_detect_result)
}
inline ::vitis::ai::proto::PlateDetectResult* DpuModelResult::_internal_mutable_plate_detect_result() {
  if (!_internal_has_plate_detect_result()) {
    clear_dpu_model_result();
    set_has_plate_detect_result();
    _impl_.dpu_model_result_.plate_detect_result_ = CreateMaybeMessage< ::vitis::ai::proto::PlateDetectResult >(GetArenaForAllocation());
  }
  return _impl_.dpu_model_result_.plate_detect_result_;
}
inline ::vitis::ai::proto::PlateDetectResult* DpuModelResult::mutable_plate_detect_result() {
  ::vitis::ai::proto::PlateDetectResult* _msg = _internal_mutable_plate_detect_result();
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.DpuModelResult.plate_detect_result)
  return _msg;
}

// .vitis.ai.proto.PlateNumberResult plate_number_result = 9;
inline bool DpuModelResult::_internal_has_plate_number_result() const {
  return dpu_model_result_case() == kPlateNumberResult;
}
inline bool DpuModelResult::has_plate_number_result() const {
  return _internal_has_plate_number_result();
}
inline void DpuModelResult::set_has_plate_number_result() {
  _impl_._oneof_case_[0] = kPlateNumberResult;
}
inline void DpuModelResult::clear_plate_number_result() {
  if (_internal_has_plate_number_result()) {
    if (GetArenaForAllocation() == nullptr) {
      delete _impl_.dpu_model_result_.plate_number_result_;
    }
    clear_has_dpu_model_result();
  }
}
inline ::vitis::ai::proto::PlateNumberResult* DpuModelResult::release_plate_number_result() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.DpuModelResult.plate_number_result)
  if (_internal_has_plate_number_result()) {
    clear_has_dpu_model_result();
    ::vitis::ai::proto::PlateNumberResult* temp = _impl_.dpu_model_result_.plate_number_result_;
    if (GetArenaForAllocation() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    _impl_.dpu_model_result_.plate_number_result_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::vitis::ai::proto::PlateNumberResult& DpuModelResult::_internal_plate_number_result() const {
  return _internal_has_plate_number_result()
      ? *_impl_.dpu_model_result_.plate_number_result_
      : reinterpret_cast< ::vitis::ai::proto::PlateNumberResult&>(::vitis::ai::proto::_PlateNumberResult_default_instance_);
}
inline const ::vitis::ai::proto::PlateNumberResult& DpuModelResult::plate_number_result() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.DpuModelResult.plate_number_result)
  return _internal_plate_number_result();
}
inline ::vitis::ai::proto::PlateNumberResult* DpuModelResult::unsafe_arena_release_plate_number_result() {
  // @@protoc_insertion_point(field_unsafe_arena_release:vitis.ai.proto.DpuModelResult.plate_number_result)
  if (_internal_has_plate_number_result()) {
    clear_has_dpu_model_result();
    ::vitis::ai::proto::PlateNumberResult* temp = _impl_.dpu_model_result_.plate_number_result_;
    _impl_.dpu_model_result_.plate_number_result_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void DpuModelResult::unsafe_arena_set_allocated_plate_number_result(::vitis::ai::proto::PlateNumberResult* plate_number_result) {
  clear_dpu_model_result();
  if (plate_number_result) {
    set_has_plate_number_result();
    _impl_.dpu_model_result_.plate_number_result_ = plate_number_result;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:vitis.ai.proto.DpuModelResult.plate_number_result)
}
inline ::vitis::ai::proto::PlateNumberResult* DpuModelResult::_internal_mutable_plate_number_result() {
  if (!_internal_has_plate_number_result()) {
    clear_dpu_model_result();
    set_has_plate_number_result();
    _impl_.dpu_model_result_.plate_number_result_ = CreateMaybeMessage< ::vitis::ai::proto::PlateNumberResult >(GetArenaForAllocation());
  }
  return _impl_.dpu_model_result_.plate_number_result_;
}
inline ::vitis::ai::proto::PlateNumberResult* DpuModelResult::mutable_plate_number_result() {
  ::vitis::ai::proto::PlateNumberResult* _msg = _internal_mutable_plate_number_result();
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.DpuModelResult.plate_number_result)
  return _msg;
}

// .vitis.ai.proto.PlateRecogResult plate_recog_result = 10;
inline bool DpuModelResult::_internal_has_plate_recog_result() const {
  return dpu_model_result_case() == kPlateRecogResult;
}
inline bool DpuModelResult::has_plate_recog_result() const {
  return _internal_has_plate_recog_result();
}
inline void DpuModelResult::set_has_plate_recog_result() {
  _impl_._oneof_case_[0] = kPlateRecogResult;
}
inline void DpuModelResult::clear_plate_recog_result() {
  if (_internal_has_plate_recog_result()) {
    if (GetArenaForAllocation() == nullptr) {
      delete _impl_.dpu_model_result_.plate_recog_result_;
    }
    clear_has_dpu_model_result();
  }
}
inline ::vitis::ai::proto::PlateRecogResult* DpuModelResult::release_plate_recog_result() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.DpuModelResult.plate_recog_result)
  if (_internal_has_plate_recog_result()) {
    clear_has_dpu_model_result();
    ::vitis::ai::proto::PlateRecogResult* temp = _impl_.dpu_model_result_.plate_recog_result_;
    if (GetArenaForAllocation() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    _impl_.dpu_model_result_.plate_recog_result_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::vitis::ai::proto::PlateRecogResult& DpuModelResult::_internal_plate_recog_result() const {
  return _internal_has_plate_recog_result()
      ? *_impl_.dpu_model_result_.plate_recog_result_
      : reinterpret_cast< ::vitis::ai::proto::PlateRecogResult&>(::vitis::ai::proto::_PlateRecogResult_default_instance_);
}
inline const ::vitis::ai::proto::PlateRecogResult& DpuModelResult::plate_recog_result() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.DpuModelResult.plate_recog_result)
  return _internal_plate_recog_result();
}
inline ::vitis::ai::proto::PlateRecogResult* DpuModelResult::unsafe_arena_release_plate_recog_result() {
  // @@protoc_insertion_point(field_unsafe_arena_release:vitis.ai.proto.DpuModelResult.plate_recog_result)
  if (_internal_has_plate_recog_result()) {
    clear_has_dpu_model_result();
    ::vitis::ai::proto::PlateRecogResult* temp = _impl_.dpu_model_result_.plate_recog_result_;
    _impl_.dpu_model_result_.plate_recog_result_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void DpuModelResult::unsafe_arena_set_allocated_plate_recog_result(::vitis::ai::proto::PlateRecogResult* plate_recog_result) {
  clear_dpu_model_result();
  if (plate_recog_result) {
    set_has_plate_recog_result();
    _impl_.dpu_model_result_.plate_recog_result_ = plate_recog_result;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:vitis.ai.proto.DpuModelResult.plate_recog_result)
}
inline ::vitis::ai::proto::PlateRecogResult* DpuModelResult::_internal_mutable_plate_recog_result() {
  if (!_internal_has_plate_recog_result()) {
    clear_dpu_model_result();
    set_has_plate_recog_result();
    _impl_.dpu_model_result_.plate_recog_result_ = CreateMaybeMessage< ::vitis::ai::proto::PlateRecogResult >(GetArenaForAllocation());
  }
  return _impl_.dpu_model_result_.plate_recog_result_;
}
inline ::vitis::ai::proto::PlateRecogResult* DpuModelResult::mutable_plate_recog_result() {
  ::vitis::ai::proto::PlateRecogResult* _msg = _internal_mutable_plate_recog_result();
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.DpuModelResult.plate_recog_result)
  return _msg;
}

// .vitis.ai.proto.PoseDetectResult pose_detect_result = 11;
inline bool DpuModelResult::_internal_has_pose_detect_result() const {
  return dpu_model_result_case() == kPoseDetectResult;
}
inline bool DpuModelResult::has_pose_detect_result() const {
  return _internal_has_pose_detect_result();
}
inline void DpuModelResult::set_has_pose_detect_result() {
  _impl_._oneof_case_[0] = kPoseDetectResult;
}
inline void DpuModelResult::clear_pose_detect_result() {
  if (_internal_has_pose_detect_result()) {
    if (GetArenaForAllocation() == nullptr) {
      delete _impl_.dpu_model_result_.pose_detect_result_;
    }
    clear_has_dpu_model_result();
  }
}
inline ::vitis::ai::proto::PoseDetectResult* DpuModelResult::release_pose_detect_result() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.DpuModelResult.pose_detect_result)
  if (_internal_has_pose_detect_result()) {
    clear_has_dpu_model_result();
    ::vitis::ai::proto::PoseDetectResult* temp = _impl_.dpu_model_result_.pose_detect_result_;
    if (GetArenaForAllocation() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    _impl_.dpu_model_result_.pose_detect_result_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::vitis::ai::proto::PoseDetectResult& DpuModelResult::_internal_pose_detect_result() const {
  return _internal_has_pose_detect_result()
      ? *_impl_.dpu_model_result_.pose_detect_result_
      : reinterpret_cast< ::vitis::ai::proto::PoseDetectResult&>(::vitis::ai::proto::_PoseDetectResult_default_instance_);
}
inline const ::vitis::ai::proto::PoseDetectResult& DpuModelResult::pose_detect_result() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.DpuModelResult.pose_detect_result)
  return _internal_pose_detect_result();
}
inline ::vitis::ai::proto::PoseDetectResult* DpuModelResult::unsafe_arena_release_pose_detect_result() {
  // @@protoc_insertion_point(field_unsafe_arena_release:vitis.ai.proto.DpuModelResult.pose_detect_result)
  if (_internal_has_pose_detect_result()) {
    clear_has_dpu_model_result();
    ::vitis::ai::proto::PoseDetectResult* temp = _impl_.dpu_model_result_.pose_detect_result_;
    _impl_.dpu_model_result_.pose_detect_result_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void DpuModelResult::unsafe_arena_set_allocated_pose_detect_result(::vitis::ai::proto::PoseDetectResult* pose_detect_result) {
  clear_dpu_model_result();
  if (pose_detect_result) {
    set_has_pose_detect_result();
    _impl_.dpu_model_result_.pose_detect_result_ = pose_detect_result;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:vitis.ai.proto.DpuModelResult.pose_detect_result)
}
inline ::vitis::ai::proto::PoseDetectResult* DpuModelResult::_internal_mutable_pose_detect_result() {
  if (!_internal_has_pose_detect_result()) {
    clear_dpu_model_result();
    set_has_pose_detect_result();
    _impl_.dpu_model_result_.pose_detect_result_ = CreateMaybeMessage< ::vitis::ai::proto::PoseDetectResult >(GetArenaForAllocation());
  }
  return _impl_.dpu_model_result_.pose_detect_result_;
}
inline ::vitis::ai::proto::PoseDetectResult* DpuModelResult::mutable_pose_detect_result() {
  ::vitis::ai::proto::PoseDetectResult* _msg = _internal_mutable_pose_detect_result();
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.DpuModelResult.pose_detect_result)
  return _msg;
}

// .vitis.ai.proto.FaceFeatureResult face_feature_result = 12;
inline bool DpuModelResult::_internal_has_face_feature_result() const {
  return dpu_model_result_case() == kFaceFeatureResult;
}
inline bool DpuModelResult::has_face_feature_result() const {
  return _internal_has_face_feature_result();
}
inline void DpuModelResult::set_has_face_feature_result() {
  _impl_._oneof_case_[0] = kFaceFeatureResult;
}
inline void DpuModelResult::clear_face_feature_result() {
  if (_internal_has_face_feature_result()) {
    if (GetArenaForAllocation() == nullptr) {
      delete _impl_.dpu_model_result_.face_feature_result_;
    }
    clear_has_dpu_model_result();
  }
}
inline ::vitis::ai::proto::FaceFeatureResult* DpuModelResult::release_face_feature_result() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.DpuModelResult.face_feature_result)
  if (_internal_has_face_feature_result()) {
    clear_has_dpu_model_result();
    ::vitis::ai::proto::FaceFeatureResult* temp = _impl_.dpu_model_result_.face_feature_result_;
    if (GetArenaForAllocation() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    _impl_.dpu_model_result_.face_feature_result_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::vitis::ai::proto::FaceFeatureResult& DpuModelResult::_internal_face_feature_result() const {
  return _internal_has_face_feature_result()
      ? *_impl_.dpu_model_result_.face_feature_result_
      : reinterpret_cast< ::vitis::ai::proto::FaceFeatureResult&>(::vitis::ai::proto::_FaceFeatureResult_default_instance_);
}
inline const ::vitis::ai::proto::FaceFeatureResult& DpuModelResult::face_feature_result() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.DpuModelResult.face_feature_result)
  return _internal_face_feature_result();
}
inline ::vitis::ai::proto::FaceFeatureResult* DpuModelResult::unsafe_arena_release_face_feature_result() {
  // @@protoc_insertion_point(field_unsafe_arena_release:vitis.ai.proto.DpuModelResult.face_feature_result)
  if (_internal_has_face_feature_result()) {
    clear_has_dpu_model_result();
    ::vitis::ai::proto::FaceFeatureResult* temp = _impl_.dpu_model_result_.face_feature_result_;
    _impl_.dpu_model_result_.face_feature_result_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void DpuModelResult::unsafe_arena_set_allocated_face_feature_result(::vitis::ai::proto::FaceFeatureResult* face_feature_result) {
  clear_dpu_model_result();
  if (face_feature_result) {
    set_has_face_feature_result();
    _impl_.dpu_model_result_.face_feature_result_ = face_feature_result;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:vitis.ai.proto.DpuModelResult.face_feature_result)
}
inline ::vitis::ai::proto::FaceFeatureResult* DpuModelResult::_internal_mutable_face_feature_result() {
  if (!_internal_has_face_feature_result()) {
    clear_dpu_model_result();
    set_has_face_feature_result();
    _impl_.dpu_model_result_.face_feature_result_ = CreateMaybeMessage< ::vitis::ai::proto::FaceFeatureResult >(GetArenaForAllocation());
  }
  return _impl_.dpu_model_result_.face_feature_result_;
}
inline ::vitis::ai::proto::FaceFeatureResult* DpuModelResult::mutable_face_feature_result() {
  ::vitis::ai::proto::FaceFeatureResult* _msg = _internal_mutable_face_feature_result();
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.DpuModelResult.face_feature_result)
  return _msg;
}

// .vitis.ai.proto.SegmetationResult segmentation_result = 13;
inline bool DpuModelResult::_internal_has_segmentation_result() const {
  return dpu_model_result_case() == kSegmentationResult;
}
inline bool DpuModelResult::has_segmentation_result() const {
  return _internal_has_segmentation_result();
}
inline void DpuModelResult::set_has_segmentation_result() {
  _impl_._oneof_case_[0] = kSegmentationResult;
}
inline void DpuModelResult::clear_segmentation_result() {
  if (_internal_has_segmentation_result()) {
    if (GetArenaForAllocation() == nullptr) {
      delete _impl_.dpu_model_result_.segmentation_result_;
    }
    clear_has_dpu_model_result();
  }
}
inline ::vitis::ai::proto::SegmetationResult* DpuModelResult::release_segmentation_result() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.DpuModelResult.segmentation_result)
  if (_internal_has_segmentation_result()) {
    clear_has_dpu_model_result();
    ::vitis::ai::proto::SegmetationResult* temp = _impl_.dpu_model_result_.segmentation_result_;
    if (GetArenaForAllocation() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    _impl_.dpu_model_result_.segmentation_result_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::vitis::ai::proto::SegmetationResult& DpuModelResult::_internal_segmentation_result() const {
  return _internal_has_segmentation_result()
      ? *_impl_.dpu_model_result_.segmentation_result_
      : reinterpret_cast< ::vitis::ai::proto::SegmetationResult&>(::vitis::ai::proto::_SegmetationResult_default_instance_);
}
inline const ::vitis::ai::proto::SegmetationResult& DpuModelResult::segmentation_result() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.DpuModelResult.segmentation_result)
  return _internal_segmentation_result();
}
inline ::vitis::ai::proto::SegmetationResult* DpuModelResult::unsafe_arena_release_segmentation_result() {
  // @@protoc_insertion_point(field_unsafe_arena_release:vitis.ai.proto.DpuModelResult.segmentation_result)
  if (_internal_has_segmentation_result()) {
    clear_has_dpu_model_result();
    ::vitis::ai::proto::SegmetationResult* temp = _impl_.dpu_model_result_.segmentation_result_;
    _impl_.dpu_model_result_.segmentation_result_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void DpuModelResult::unsafe_arena_set_allocated_segmentation_result(::vitis::ai::proto::SegmetationResult* segmentation_result) {
  clear_dpu_model_result();
  if (segmentation_result) {
    set_has_segmentation_result();
    _impl_.dpu_model_result_.segmentation_result_ = segmentation_result;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:vitis.ai.proto.DpuModelResult.segmentation_result)
}
inline ::vitis::ai::proto::SegmetationResult* DpuModelResult::_internal_mutable_segmentation_result() {
  if (!_internal_has_segmentation_result()) {
    clear_dpu_model_result();
    set_has_segmentation_result();
    _impl_.dpu_model_result_.segmentation_result_ = CreateMaybeMessage< ::vitis::ai::proto::SegmetationResult >(GetArenaForAllocation());
  }
  return _impl_.dpu_model_result_.segmentation_result_;
}
inline ::vitis::ai::proto::SegmetationResult* DpuModelResult::mutable_segmentation_result() {
  ::vitis::ai::proto::SegmetationResult* _msg = _internal_mutable_segmentation_result();
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.DpuModelResult.segmentation_result)
  return _msg;
}

// .vitis.ai.proto.MedicalSegmetationResult medical_segmentation_result = 14;
inline bool DpuModelResult::_internal_has_medical_segmentation_result() const {
  return dpu_model_result_case() == kMedicalSegmentationResult;
}
inline bool DpuModelResult::has_medical_segmentation_result() const {
  return _internal_has_medical_segmentation_result();
}
inline void DpuModelResult::set_has_medical_segmentation_result() {
  _impl_._oneof_case_[0] = kMedicalSegmentationResult;
}
inline void DpuModelResult::clear_medical_segmentation_result() {
  if (_internal_has_medical_segmentation_result()) {
    if (GetArenaForAllocation() == nullptr) {
      delete _impl_.dpu_model_result_.medical_segmentation_result_;
    }
    clear_has_dpu_model_result();
  }
}
inline ::vitis::ai::proto::MedicalSegmetationResult* DpuModelResult::release_medical_segmentation_result() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.DpuModelResult.medical_segmentation_result)
  if (_internal_has_medical_segmentation_result()) {
    clear_has_dpu_model_result();
    ::vitis::ai::proto::MedicalSegmetationResult* temp = _impl_.dpu_model_result_.medical_segmentation_result_;
    if (GetArenaForAllocation() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    _impl_.dpu_model_result_.medical_segmentation_result_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::vitis::ai::proto::MedicalSegmetationResult& DpuModelResult::_internal_medical_segmentation_result() const {
  return _internal_has_medical_segmentation_result()
      ? *_impl_.dpu_model_result_.medical_segmentation_result_
      : reinterpret_cast< ::vitis::ai::proto::MedicalSegmetationResult&>(::vitis::ai::proto::_MedicalSegmetationResult_default_instance_);
}
inline const ::vitis::ai::proto::MedicalSegmetationResult& DpuModelResult::medical_segmentation_result() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.DpuModelResult.medical_segmentation_result)
  return _internal_medical_segmentation_result();
}
inline ::vitis::ai::proto::MedicalSegmetationResult* DpuModelResult::unsafe_arena_release_medical_segmentation_result() {
  // @@protoc_insertion_point(field_unsafe_arena_release:vitis.ai.proto.DpuModelResult.medical_segmentation_result)
  if (_internal_has_medical_segmentation_result()) {
    clear_has_dpu_model_result();
    ::vitis::ai::proto::MedicalSegmetationResult* temp = _impl_.dpu_model_result_.medical_segmentation_result_;
    _impl_.dpu_model_result_.medical_segmentation_result_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void DpuModelResult::unsafe_arena_set_allocated_medical_segmentation_result(::vitis::ai::proto::MedicalSegmetationResult* medical_segmentation_result) {
  clear_dpu_model_result();
  if (medical_segmentation_result) {
    set_has_medical_segmentation_result();
    _impl_.dpu_model_result_.medical_segmentation_result_ = medical_segmentation_result;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:vitis.ai.proto.DpuModelResult.medical_segmentation_result)
}
inline ::vitis::ai::proto::MedicalSegmetationResult* DpuModelResult::_internal_mutable_medical_segmentation_result() {
  if (!_internal_has_medical_segmentation_result()) {
    clear_dpu_model_result();
    set_has_medical_segmentation_result();
    _impl_.dpu_model_result_.medical_segmentation_result_ = CreateMaybeMessage< ::vitis::ai::proto::MedicalSegmetationResult >(GetArenaForAllocation());
  }
  return _impl_.dpu_model_result_.medical_segmentation_result_;
}
inline ::vitis::ai::proto::MedicalSegmetationResult* DpuModelResult::mutable_medical_segmentation_result() {
  ::vitis::ai::proto::MedicalSegmetationResult* _msg = _internal_mutable_medical_segmentation_result();
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.DpuModelResult.medical_segmentation_result)
  return _msg;
}

// .vitis.ai.proto.MultiTaskResult multitask_result = 15;
inline bool DpuModelResult::_internal_has_multitask_result() const {
  return dpu_model_result_case() == kMultitaskResult;
}
inline bool DpuModelResult::has_multitask_result() const {
  return _internal_has_multitask_result();
}
inline void DpuModelResult::set_has_multitask_result() {
  _impl_._oneof_case_[0] = kMultitaskResult;
}
inline void DpuModelResult::clear_multitask_result() {
  if (_internal_has_multitask_result()) {
    if (GetArenaForAllocation() == nullptr) {
      delete _impl_.dpu_model_result_.multitask_result_;
    }
    clear_has_dpu_model_result();
  }
}
inline ::vitis::ai::proto::MultiTaskResult* DpuModelResult::release_multitask_result() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.DpuModelResult.multitask_result)
  if (_internal_has_multitask_result()) {
    clear_has_dpu_model_result();
    ::vitis::ai::proto::MultiTaskResult* temp = _impl_.dpu_model_result_.multitask_result_;
    if (GetArenaForAllocation() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    _impl_.dpu_model_result_.multitask_result_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::vitis::ai::proto::MultiTaskResult& DpuModelResult::_internal_multitask_result() const {
  return _internal_has_multitask_result()
      ? *_impl_.dpu_model_result_.multitask_result_
      : reinterpret_cast< ::vitis::ai::proto::MultiTaskResult&>(::vitis::ai::proto::_MultiTaskResult_default_instance_);
}
inline const ::vitis::ai::proto::MultiTaskResult& DpuModelResult::multitask_result() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.DpuModelResult.multitask_result)
  return _internal_multitask_result();
}
inline ::vitis::ai::proto::MultiTaskResult* DpuModelResult::unsafe_arena_release_multitask_result() {
  // @@protoc_insertion_point(field_unsafe_arena_release:vitis.ai.proto.DpuModelResult.multitask_result)
  if (_internal_has_multitask_result()) {
    clear_has_dpu_model_result();
    ::vitis::ai::proto::MultiTaskResult* temp = _impl_.dpu_model_result_.multitask_result_;
    _impl_.dpu_model_result_.multitask_result_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void DpuModelResult::unsafe_arena_set_allocated_multitask_result(::vitis::ai::proto::MultiTaskResult* multitask_result) {
  clear_dpu_model_result();
  if (multitask_result) {
    set_has_multitask_result();
    _impl_.dpu_model_result_.multitask_result_ = multitask_result;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:vitis.ai.proto.DpuModelResult.multitask_result)
}
inline ::vitis::ai::proto::MultiTaskResult* DpuModelResult::_internal_mutable_multitask_result() {
  if (!_internal_has_multitask_result()) {
    clear_dpu_model_result();
    set_has_multitask_result();
    _impl_.dpu_model_result_.multitask_result_ = CreateMaybeMessage< ::vitis::ai::proto::MultiTaskResult >(GetArenaForAllocation());
  }
  return _impl_.dpu_model_result_.multitask_result_;
}
inline ::vitis::ai::proto::MultiTaskResult* DpuModelResult::mutable_multitask_result() {
  ::vitis::ai::proto::MultiTaskResult* _msg = _internal_mutable_multitask_result();
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.DpuModelResult.multitask_result)
  return _msg;
}

// .vitis.ai.proto.ReidResult reid_result = 16;
inline bool DpuModelResult::_internal_has_reid_result() const {
  return dpu_model_result_case() == kReidResult;
}
inline bool DpuModelResult::has_reid_result() const {
  return _internal_has_reid_result();
}
inline void DpuModelResult::set_has_reid_result() {
  _impl_._oneof_case_[0] = kReidResult;
}
inline void DpuModelResult::clear_reid_result() {
  if (_internal_has_reid_result()) {
    if (GetArenaForAllocation() == nullptr) {
      delete _impl_.dpu_model_result_.reid_result_;
    }
    clear_has_dpu_model_result();
  }
}
inline ::vitis::ai::proto::ReidResult* DpuModelResult::release_reid_result() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.DpuModelResult.reid_result)
  if (_internal_has_reid_result()) {
    clear_has_dpu_model_result();
    ::vitis::ai::proto::ReidResult* temp = _impl_.dpu_model_result_.reid_result_;
    if (GetArenaForAllocation() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    _impl_.dpu_model_result_.reid_result_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::vitis::ai::proto::ReidResult& DpuModelResult::_internal_reid_result() const {
  return _internal_has_reid_result()
      ? *_impl_.dpu_model_result_.reid_result_
      : reinterpret_cast< ::vitis::ai::proto::ReidResult&>(::vitis::ai::proto::_ReidResult_default_instance_);
}
inline const ::vitis::ai::proto::ReidResult& DpuModelResult::reid_result() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.DpuModelResult.reid_result)
  return _internal_reid_result();
}
inline ::vitis::ai::proto::ReidResult* DpuModelResult::unsafe_arena_release_reid_result() {
  // @@protoc_insertion_point(field_unsafe_arena_release:vitis.ai.proto.DpuModelResult.reid_result)
  if (_internal_has_reid_result()) {
    clear_has_dpu_model_result();
    ::vitis::ai::proto::ReidResult* temp = _impl_.dpu_model_result_.reid_result_;
    _impl_.dpu_model_result_.reid_result_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void DpuModelResult::unsafe_arena_set_allocated_reid_result(::vitis::ai::proto::ReidResult* reid_result) {
  clear_dpu_model_result();
  if (reid_result) {
    set_has_reid_result();
    _impl_.dpu_model_result_.reid_result_ = reid_result;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:vitis.ai.proto.DpuModelResult.reid_result)
}
inline ::vitis::ai::proto::ReidResult* DpuModelResult::_internal_mutable_reid_result() {
  if (!_internal_has_reid_result()) {
    clear_dpu_model_result();
    set_has_reid_result();
    _impl_.dpu_model_result_.reid_result_ = CreateMaybeMessage< ::vitis::ai::proto::ReidResult >(GetArenaForAllocation());
  }
  return _impl_.dpu_model_result_.reid_result_;
}
inline ::vitis::ai::proto::ReidResult* DpuModelResult::mutable_reid_result() {
  ::vitis::ai::proto::ReidResult* _msg = _internal_mutable_reid_result();
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.DpuModelResult.reid_result)
  return _msg;
}

// .vitis.ai.proto.FaceDetectRecogResult face_detect_recog_result = 17;
inline bool DpuModelResult::_internal_has_face_detect_recog_result() const {
  return dpu_model_result_case() == kFaceDetectRecogResult;
}
inline bool DpuModelResult::has_face_detect_recog_result() const {
  return _internal_has_face_detect_recog_result();
}
inline void DpuModelResult::set_has_face_detect_recog_result() {
  _impl_._oneof_case_[0] = kFaceDetectRecogResult;
}
inline void DpuModelResult::clear_face_detect_recog_result() {
  if (_internal_has_face_detect_recog_result()) {
    if (GetArenaForAllocation() == nullptr) {
      delete _impl_.dpu_model_result_.face_detect_recog_result_;
    }
    clear_has_dpu_model_result();
  }
}
inline ::vitis::ai::proto::FaceDetectRecogResult* DpuModelResult::release_face_detect_recog_result() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.DpuModelResult.face_detect_recog_result)
  if (_internal_has_face_detect_recog_result()) {
    clear_has_dpu_model_result();
    ::vitis::ai::proto::FaceDetectRecogResult* temp = _impl_.dpu_model_result_.face_detect_recog_result_;
    if (GetArenaForAllocation() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    _impl_.dpu_model_result_.face_detect_recog_result_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::vitis::ai::proto::FaceDetectRecogResult& DpuModelResult::_internal_face_detect_recog_result() const {
  return _internal_has_face_detect_recog_result()
      ? *_impl_.dpu_model_result_.face_detect_recog_result_
      : reinterpret_cast< ::vitis::ai::proto::FaceDetectRecogResult&>(::vitis::ai::proto::_FaceDetectRecogResult_default_instance_);
}
inline const ::vitis::ai::proto::FaceDetectRecogResult& DpuModelResult::face_detect_recog_result() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.DpuModelResult.face_detect_recog_result)
  return _internal_face_detect_recog_result();
}
inline ::vitis::ai::proto::FaceDetectRecogResult* DpuModelResult::unsafe_arena_release_face_detect_recog_result() {
  // @@protoc_insertion_point(field_unsafe_arena_release:vitis.ai.proto.DpuModelResult.face_detect_recog_result)
  if (_internal_has_face_detect_recog_result()) {
    clear_has_dpu_model_result();
    ::vitis::ai::proto::FaceDetectRecogResult* temp = _impl_.dpu_model_result_.face_detect_recog_result_;
    _impl_.dpu_model_result_.face_detect_recog_result_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void DpuModelResult::unsafe_arena_set_allocated_face_detect_recog_result(::vitis::ai::proto::FaceDetectRecogResult* face_detect_recog_result) {
  clear_dpu_model_result();
  if (face_detect_recog_result) {
    set_has_face_detect_recog_result();
    _impl_.dpu_model_result_.face_detect_recog_result_ = face_detect_recog_result;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:vitis.ai.proto.DpuModelResult.face_detect_recog_result)
}
inline ::vitis::ai::proto::FaceDetectRecogResult* DpuModelResult::_internal_mutable_face_detect_recog_result() {
  if (!_internal_has_face_detect_recog_result()) {
    clear_dpu_model_result();
    set_has_face_detect_recog_result();
    _impl_.dpu_model_result_.face_detect_recog_result_ = CreateMaybeMessage< ::vitis::ai::proto::FaceDetectRecogResult >(GetArenaForAllocation());
  }
  return _impl_.dpu_model_result_.face_detect_recog_result_;
}
inline ::vitis::ai::proto::FaceDetectRecogResult* DpuModelResult::mutable_face_detect_recog_result() {
  ::vitis::ai::proto::FaceDetectRecogResult* _msg = _internal_mutable_face_detect_recog_result();
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.DpuModelResult.face_detect_recog_result)
  return _msg;
}

// .vitis.ai.proto.ClassificationResult vehicleclassification_result = 18;
inline bool DpuModelResult::_internal_has_vehicleclassification_result() const {
  return dpu_model_result_case() == kVehicleclassificationResult;
}
inline bool DpuModelResult::has_vehicleclassification_result() const {
  return _internal_has_vehicleclassification_result();
}
inline void DpuModelResult::set_has_vehicleclassification_result() {
  _impl_._oneof_case_[0] = kVehicleclassificationResult;
}
inline void DpuModelResult::clear_vehicleclassification_result() {
  if (_internal_has_vehicleclassification_result()) {
    if (GetArenaForAllocation() == nullptr) {
      delete _impl_.dpu_model_result_.vehicleclassification_result_;
    }
    clear_has_dpu_model_result();
  }
}
inline ::vitis::ai::proto::ClassificationResult* DpuModelResult::release_vehicleclassification_result() {
  // @@protoc_insertion_point(field_release:vitis.ai.proto.DpuModelResult.vehicleclassification_result)
  if (_internal_has_vehicleclassification_result()) {
    clear_has_dpu_model_result();
    ::vitis::ai::proto::ClassificationResult* temp = _impl_.dpu_model_result_.vehicleclassification_result_;
    if (GetArenaForAllocation() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    _impl_.dpu_model_result_.vehicleclassification_result_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::vitis::ai::proto::ClassificationResult& DpuModelResult::_internal_vehicleclassification_result() const {
  return _internal_has_vehicleclassification_result()
      ? *_impl_.dpu_model_result_.vehicleclassification_result_
      : reinterpret_cast< ::vitis::ai::proto::ClassificationResult&>(::vitis::ai::proto::_ClassificationResult_default_instance_);
}
inline const ::vitis::ai::proto::ClassificationResult& DpuModelResult::vehicleclassification_result() const {
  // @@protoc_insertion_point(field_get:vitis.ai.proto.DpuModelResult.vehicleclassification_result)
  return _internal_vehicleclassification_result();
}
inline ::vitis::ai::proto::ClassificationResult* DpuModelResult::unsafe_arena_release_vehicleclassification_result() {
  // @@protoc_insertion_point(field_unsafe_arena_release:vitis.ai.proto.DpuModelResult.vehicleclassification_result)
  if (_internal_has_vehicleclassification_result()) {
    clear_has_dpu_model_result();
    ::vitis::ai::proto::ClassificationResult* temp = _impl_.dpu_model_result_.vehicleclassification_result_;
    _impl_.dpu_model_result_.vehicleclassification_result_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void DpuModelResult::unsafe_arena_set_allocated_vehicleclassification_result(::vitis::ai::proto::ClassificationResult* vehicleclassification_result) {
  clear_dpu_model_result();
  if (vehicleclassification_result) {
    set_has_vehicleclassification_result();
    _impl_.dpu_model_result_.vehicleclassification_result_ = vehicleclassification_result;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:vitis.ai.proto.DpuModelResult.vehicleclassification_result)
}
inline ::vitis::ai::proto::ClassificationResult* DpuModelResult::_internal_mutable_vehicleclassification_result() {
  if (!_internal_has_vehicleclassification_result()) {
    clear_dpu_model_result();
    set_has_vehicleclassification_result();
    _impl_.dpu_model_result_.vehicleclassification_result_ = CreateMaybeMessage< ::vitis::ai::proto::ClassificationResult >(GetArenaForAllocation());
  }
  return _impl_.dpu_model_result_.vehicleclassification_result_;
}
inline ::vitis::ai::proto::ClassificationResult* DpuModelResult::mutable_vehicleclassification_result() {
  ::vitis::ai::proto::ClassificationResult* _msg = _internal_mutable_vehicleclassification_result();
  // @@protoc_insertion_point(field_mutable:vitis.ai.proto.DpuModelResult.vehicleclassification_result)
  return _msg;
}

inline bool DpuModelResult::has_dpu_model_result() const {
  return dpu_model_result_case() != DPU_MODEL_RESULT_NOT_SET;
}
inline void DpuModelResult::clear_has_dpu_model_result() {
  _impl_._oneof_case_[0] = DPU_MODEL_RESULT_NOT_SET;
}
inline DpuModelResult::DpuModelResultCase DpuModelResult::dpu_model_result_case() const {
  return DpuModelResult::DpuModelResultCase(_impl_._oneof_case_[0]);
}
#ifdef __GNUC__
  #pragma GCC diagnostic pop
#endif  // __GNUC__
// -------------------------------------------------------------------

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


// @@protoc_insertion_point(namespace_scope)

}  // namespace proto
}  // namespace ai
}  // namespace vitis

PROTOBUF_NAMESPACE_OPEN

template <> struct is_proto_enum< ::vitis::ai::proto::YoloV3Param_Type> : ::std::true_type {};
template <>
inline const EnumDescriptor* GetEnumDescriptor< ::vitis::ai::proto::YoloV3Param_Type>() {
  return ::vitis::ai::proto::YoloV3Param_Type_descriptor();
}
template <> struct is_proto_enum< ::vitis::ai::proto::SSDParam_OutputType> : ::std::true_type {};
template <>
inline const EnumDescriptor* GetEnumDescriptor< ::vitis::ai::proto::SSDParam_OutputType>() {
  return ::vitis::ai::proto::SSDParam_OutputType_descriptor();
}
template <> struct is_proto_enum< ::vitis::ai::proto::MedicalRefineDetParam_OutputType> : ::std::true_type {};
template <>
inline const EnumDescriptor* GetEnumDescriptor< ::vitis::ai::proto::MedicalRefineDetParam_OutputType>() {
  return ::vitis::ai::proto::MedicalRefineDetParam_OutputType_descriptor();
}
template <> struct is_proto_enum< ::vitis::ai::proto::ClassificationParam_PreprocessType> : ::std::true_type {};
template <>
inline const EnumDescriptor* GetEnumDescriptor< ::vitis::ai::proto::ClassificationParam_PreprocessType>() {
  return ::vitis::ai::proto::ClassificationParam_PreprocessType_descriptor();
}
template <> struct is_proto_enum< ::vitis::ai::proto::RetinaFaceParam_OutputType> : ::std::true_type {};
template <>
inline const EnumDescriptor* GetEnumDescriptor< ::vitis::ai::proto::RetinaFaceParam_OutputType>() {
  return ::vitis::ai::proto::RetinaFaceParam_OutputType_descriptor();
}
template <> struct is_proto_enum< ::vitis::ai::proto::RetinaFaceParam_AnchorType> : ::std::true_type {};
template <>
inline const EnumDescriptor* GetEnumDescriptor< ::vitis::ai::proto::RetinaFaceParam_AnchorType>() {
  return ::vitis::ai::proto::RetinaFaceParam_AnchorType_descriptor();
}
template <> struct is_proto_enum< ::vitis::ai::proto::TfssdParam_OutputType> : ::std::true_type {};
template <>
inline const EnumDescriptor* GetEnumDescriptor< ::vitis::ai::proto::TfssdParam_OutputType>() {
  return ::vitis::ai::proto::TfssdParam_OutputType_descriptor();
}
template <> struct is_proto_enum< ::vitis::ai::proto::EfficientDetD2Param_OutputType> : ::std::true_type {};
template <>
inline const EnumDescriptor* GetEnumDescriptor< ::vitis::ai::proto::EfficientDetD2Param_OutputType>() {
  return ::vitis::ai::proto::EfficientDetD2Param_OutputType_descriptor();
}
template <> struct is_proto_enum< ::vitis::ai::proto::DpuModelParam_ModelType> : ::std::true_type {};
template <>
inline const EnumDescriptor* GetEnumDescriptor< ::vitis::ai::proto::DpuModelParam_ModelType>() {
  return ::vitis::ai::proto::DpuModelParam_ModelType_descriptor();
}
template <> struct is_proto_enum< ::vitis::ai::proto::DpuModelParam_OrderType> : ::std::true_type {};
template <>
inline const EnumDescriptor* GetEnumDescriptor< ::vitis::ai::proto::DpuModelParam_OrderType>() {
  return ::vitis::ai::proto::DpuModelParam_OrderType_descriptor();
}

PROTOBUF_NAMESPACE_CLOSE

// @@protoc_insertion_point(global_scope)

#include <google/protobuf/port_undef.inc>
#endif  // GOOGLE_PROTOBUF_INCLUDED_GOOGLE_PROTOBUF_INCLUDED_vitis_2fai_2fproto_2fdpu_5fmodel_5fparam_2eproto
