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

#include "config.pb.h"

#include <algorithm>
#include <type_traits>
#include "google/protobuf/io/coded_stream.h"
#include "google/protobuf/generated_message_tctable_impl.h"
#include "google/protobuf/internal_visibility.h"
#include "google/protobuf/extension_set.h"
#include "google/protobuf/generated_message_util.h"
#include "google/protobuf/wire_format_lite.h"
#include "google/protobuf/descriptor.h"
#include "google/protobuf/generated_message_reflection.h"
#include "google/protobuf/reflection_ops.h"
#include "google/protobuf/wire_format.h"
// @@protoc_insertion_point(includes)

// Must be included last.
#include "google/protobuf/port_def.inc"
PROTOBUF_PRAGMA_INIT_SEG
namespace _pb = ::google::protobuf;
namespace _pbi = ::google::protobuf::internal;
namespace _fl = ::google::protobuf::internal::field_layout;
#ifdef PROTOBUF_MESSAGE_GLOBALS
namespace {
PROTOBUF_CONSTINIT ::google::protobuf::internal::ReflectionData
    file_reflection_data[] = {
        // ::nsjail::IdMap
        {&::_pbi::kDescriptorMethods, &::descriptor_table_config_2eproto, /* tracker*/ nullptr,},
        // ::nsjail::MountPt
        {&::_pbi::kDescriptorMethods, &::descriptor_table_config_2eproto, /* tracker*/ nullptr,},
        // ::nsjail::Exe
        {&::_pbi::kDescriptorMethods, &::descriptor_table_config_2eproto, /* tracker*/ nullptr,},
        // ::nsjail::NsJailConfig_UserNet
        {&::_pbi::kDescriptorMethods, &::descriptor_table_config_2eproto, /* tracker*/ nullptr,},
        // ::nsjail::NsJailConfig
        {&::_pbi::kDescriptorMethods, &::descriptor_table_config_2eproto, /* tracker*/ nullptr,},
};
}  // namespace
#endif
namespace nsjail {
class NsJailConfig_UserNet::_Internal {
 public:
  using HasBits = decltype(::std::declval<NsJailConfig_UserNet>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(NsJailConfig_UserNet, _impl_._has_bits_);
};

constexpr NsJailConfig_UserNet::ParseTableT_ NsJailConfig_UserNet::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(NsJailConfig_UserNet, _impl_._has_bits_),
      0, // no _extensions_
      19, 248,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294443008,  // skipmap
      offsetof(ParseTableT_, field_entries),
      19,  // num_field_entries
      0,  // num_aux_entries
      offsetof(ParseTableT_, field_names),  // no aux_entries
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::nsjail::NsJailConfig_UserNet>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
      // optional bool enable = 1 [default = false];
      {::_pbi::TcParser::SingularVarintNoZag1<bool, offsetof(NsJailConfig_UserNet, _impl_.enable_), 10>(),
       {8, 10, 0,
        PROTOBUF_FIELD_OFFSET(NsJailConfig_UserNet, _impl_.enable_)}},
      // optional string ip = 2 [default = "10.255.255.2"];
      {::_pbi::TcParser::FastBS1,
       {18, 0, 0,
        PROTOBUF_FIELD_OFFSET(NsJailConfig_UserNet, _impl_.ip_)}},
      // optional string mask = 3 [default = "255.255.255.0"];
      {::_pbi::TcParser::FastBS1,
       {26, 1, 0,
        PROTOBUF_FIELD_OFFSET(NsJailConfig_UserNet, _impl_.mask_)}},
      // optional string gw = 4 [default = "10.255.255.1"];
      {::_pbi::TcParser::FastBS1,
       {34, 2, 0,
        PROTOBUF_FIELD_OFFSET(NsJailConfig_UserNet, _impl_.gw_)}},
      // optional string ip6 = 5 [default = "fc00::2"];
      {::_pbi::TcParser::FastBS1,
       {42, 3, 0,
        PROTOBUF_FIELD_OFFSET(NsJailConfig_UserNet, _impl_.ip6_)}},
      // optional string mask6 = 6 [default = "64"];
      {::_pbi::TcParser::FastBS1,
       {50, 4, 0,
        PROTOBUF_FIELD_OFFSET(NsJailConfig_UserNet, _impl_.mask6_)}},
      // optional string gw6 = 7 [default = "fc00::1"];
      {::_pbi::TcParser::FastBS1,
       {58, 5, 0,
        PROTOBUF_FIELD_OFFSET(NsJailConfig_UserNet, _impl_.gw6_)}},
      // optional string ns_iface = 8 [default = "eth0"];
      {::_pbi::TcParser::FastBS1,
       {66, 6, 0,
        PROTOBUF_FIELD_OFFSET(NsJailConfig_UserNet, _impl_.ns_iface_)}},
      // optional string tcp_ports = 9 [default = "none"];
      {::_pbi::TcParser::FastBS1,
       {74, 7, 0,
        PROTOBUF_FIELD_OFFSET(NsJailConfig_UserNet, _impl_.tcp_ports_)}},
      // optional string udp_ports = 10 [default = "none"];
      {::_pbi::TcParser::FastBS1,
       {82, 8, 0,
        PROTOBUF_FIELD_OFFSET(NsJailConfig_UserNet, _impl_.udp_ports_)}},
      // optional bool enable_ip4_dhcp = 11 [default = false];
      {::_pbi::TcParser::SingularVarintNoZag1<bool, offsetof(NsJailConfig_UserNet, _impl_.enable_ip4_dhcp_), 11>(),
       {88, 11, 0,
        PROTOBUF_FIELD_OFFSET(NsJailConfig_UserNet, _impl_.enable_ip4_dhcp_)}},
      // optional bool enable_dns = 12 [default = false];
      {::_pbi::TcParser::SingularVarintNoZag1<bool, offsetof(NsJailConfig_UserNet, _impl_.enable_dns_), 12>(),
       {96, 12, 0,
        PROTOBUF_FIELD_OFFSET(NsJailConfig_UserNet, _impl_.enable_dns_)}},
      // optional string dns_forward = 13 [default = ""];
      {::_pbi::TcParser::FastBS1,
       {106, 9, 0,
        PROTOBUF_FIELD_OFFSET(NsJailConfig_UserNet, _impl_.dns_forward_)}},
      // optional bool enable_tcp = 14 [default = true];
      {::_pbi::TcParser::SingularVarintNoZag1<bool, offsetof(NsJailConfig_UserNet, _impl_.enable_tcp_), 16>(),
       {112, 16, 0,
        PROTOBUF_FIELD_OFFSET(NsJailConfig_UserNet, _impl_.enable_tcp_)}},
      // optional bool enable_udp = 15 [default = true];
      {::_pbi::TcParser::SingularVarintNoZag1<bool, offsetof(NsJailConfig_UserNet, _impl_.enable_udp_), 17>(),
       {120, 17, 0,
        PROTOBUF_FIELD_OFFSET(NsJailConfig_UserNet, _impl_.enable_udp_)}},
      // optional bool enable_icmp = 16 [default = true];
      {::_pbi::TcParser::FastV8S2,
       {384, 18, 0,
        PROTOBUF_FIELD_OFFSET(NsJailConfig_UserNet, _impl_.enable_icmp_)}},
      // optional bool no_map_gw = 17 [default = false];
      {::_pbi::TcParser::FastV8S2,
       {392, 13, 0,
        PROTOBUF_FIELD_OFFSET(NsJailConfig_UserNet, _impl_.no_map_gw_)}},
      // optional bool enable_ip6_dhcp = 18 [default = false];
      {::_pbi::TcParser::FastV8S2,
       {400, 14, 0,
        PROTOBUF_FIELD_OFFSET(NsJailConfig_UserNet, _impl_.enable_ip6_dhcp_)}},
      // optional bool enable_ip6_ra = 19 [default = false];
      {::_pbi::TcParser::FastV8S2,
       {408, 15, 0,
        PROTOBUF_FIELD_OFFSET(NsJailConfig_UserNet, _impl_.enable_ip6_ra_)}},
      {::_pbi::TcParser::MiniParse, {}},
      {::_pbi::TcParser::MiniParse, {}},
      {::_pbi::TcParser::MiniParse, {}},
      {::_pbi::TcParser::MiniParse, {}},
      {::_pbi::TcParser::MiniParse, {}},
      {::_pbi::TcParser::MiniParse, {}},
      {::_pbi::TcParser::MiniParse, {}},
      {::_pbi::TcParser::MiniParse, {}},
      {::_pbi::TcParser::MiniParse, {}},
      {::_pbi::TcParser::MiniParse, {}},
      {::_pbi::TcParser::MiniParse, {}},
      {::_pbi::TcParser::MiniParse, {}},
    }}, {{
      65535, 65535
    }}, {{
      // optional bool enable = 1 [default = false];
      {PROTOBUF_FIELD_OFFSET(NsJailConfig_UserNet, _impl_.enable_), _Internal::kHasBitsOffset + 10, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
      // optional string ip = 2 [default = "10.255.255.2"];
      {PROTOBUF_FIELD_OFFSET(NsJailConfig_UserNet, _impl_.ip_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
      // optional string mask = 3 [default = "255.255.255.0"];
      {PROTOBUF_FIELD_OFFSET(NsJailConfig_UserNet, _impl_.mask_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
      // optional string gw = 4 [default = "10.255.255.1"];
      {PROTOBUF_FIELD_OFFSET(NsJailConfig_UserNet, _impl_.gw_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
      // optional string ip6 = 5 [default = "fc00::2"];
      {PROTOBUF_FIELD_OFFSET(NsJailConfig_UserNet, _impl_.ip6_), _Internal::kHasBitsOffset + 3, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
      // optional string mask6 = 6 [default = "64"];
      {PROTOBUF_FIELD_OFFSET(NsJailConfig_UserNet, _impl_.mask6_), _Internal::kHasBitsOffset + 4, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
      // optional string gw6 = 7 [default = "fc00::1"];
      {PROTOBUF_FIELD_OFFSET(NsJailConfig_UserNet, _impl_.gw6_), _Internal::kHasBitsOffset + 5, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
      // optional string ns_iface = 8 [default = "eth0"];
      {PROTOBUF_FIELD_OFFSET(NsJailConfig_UserNet, _impl_.ns_iface_), _Internal::kHasBitsOffset + 6, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
      // optional string tcp_ports = 9 [default = "none"];
      {PROTOBUF_FIELD_OFFSET(NsJailConfig_UserNet, _impl_.tcp_ports_), _Internal::kHasBitsOffset + 7, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
      // optional string udp_ports = 10 [default = "none"];
      {PROTOBUF_FIELD_OFFSET(NsJailConfig_UserNet, _impl_.udp_ports_), _Internal::kHasBitsOffset + 8, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
      // optional bool enable_ip4_dhcp = 11 [default = false];
      {PROTOBUF_FIELD_OFFSET(NsJailConfig_UserNet, _impl_.enable_ip4_dhcp_), _Internal::kHasBitsOffset + 11, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
      // optional bool enable_dns = 12 [default = false];
      {PROTOBUF_FIELD_OFFSET(NsJailConfig_UserNet, _impl_.enable_dns_), _Internal::kHasBitsOffset + 12, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
      // optional string dns_forward = 13 [default = ""];
      {PROTOBUF_FIELD_OFFSET(NsJailConfig_UserNet, _impl_.dns_forward_), _Internal::kHasBitsOffset + 9, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
      // optional bool enable_tcp = 14 [default = true];
      {PROTOBUF_FIELD_OFFSET(NsJailConfig_UserNet, _impl_.enable_tcp_), _Internal::kHasBitsOffset + 16, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
      // optional bool enable_udp = 15 [default = true];
      {PROTOBUF_FIELD_OFFSET(NsJailConfig_UserNet, _impl_.enable_udp_), _Internal::kHasBitsOffset + 17, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
      // optional bool enable_icmp = 16 [default = true];
      {PROTOBUF_FIELD_OFFSET(NsJailConfig_UserNet, _impl_.enable_icmp_), _Internal::kHasBitsOffset + 18, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
      // optional bool no_map_gw = 17 [default = false];
      {PROTOBUF_FIELD_OFFSET(NsJailConfig_UserNet, _impl_.no_map_gw_), _Internal::kHasBitsOffset + 13, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
      // optional bool enable_ip6_dhcp = 18 [default = false];
      {PROTOBUF_FIELD_OFFSET(NsJailConfig_UserNet, _impl_.enable_ip6_dhcp_), _Internal::kHasBitsOffset + 14, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
      // optional bool enable_ip6_ra = 19 [default = false];
      {PROTOBUF_FIELD_OFFSET(NsJailConfig_UserNet, _impl_.enable_ip6_ra_), _Internal::kHasBitsOffset + 15, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
    }},
    // no aux_entries
    {{
    }},
  };
}


inline constexpr NsJailConfig_UserNet::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        ip_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        mask_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        gw_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        ip6_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        mask6_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        gw6_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        ns_iface_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        tcp_ports_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        udp_ports_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        dns_forward_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        enable_{false},
        enable_ip4_dhcp_{false},
        enable_dns_{false},
        no_map_gw_{false},
        enable_ip6_dhcp_{false},
        enable_ip6_ra_{false},
        enable_tcp_{true},
        enable_udp_{true},
        enable_icmp_{true} {}

template <typename>
constexpr NsJailConfig_UserNet::NsJailConfig_UserNet(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL NsJailConfig_UserNet::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) NsJailConfig_UserNet(arena);
}
constexpr auto NsJailConfig_UserNet::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(NsJailConfig_UserNet), alignof(NsJailConfig_UserNet));
}
constexpr auto NsJailConfig_UserNet::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &NsJailConfig_UserNet::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<NsJailConfig_UserNet>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &NsJailConfig_UserNet::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<NsJailConfig_UserNet>(), &NsJailConfig_UserNet::ByteSizeLong,
              &NsJailConfig_UserNet::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(NsJailConfig_UserNet, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[3],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_config_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct NsJailConfig_UserNetGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr NsJailConfig_UserNetGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 NsJailConfig_UserNet_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(NsJailConfig_UserNet::InternalGenerateClassData_(
            _default, &NsJailConfig_UserNet_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<NsJailConfig_UserNet>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~NsJailConfig_UserNetGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) NsJailConfig_UserNet _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<NsJailConfig_UserNet>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(NsJailConfig_UserNetGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST NsJailConfig_UserNetGlobalsTypeInternal NsJailConfig_UserNet_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* NsJailConfig_UserNet_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return NsJailConfig_UserNet_globals_.GetClassData();
#else
  return NsJailConfig_UserNet_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
class MountPt::_Internal {
 public:
  using HasBits = decltype(::std::declval<MountPt>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(MountPt, _impl_._has_bits_);
  static bool MissingRequiredFields(const HasBits& has_bits) {
    return ((has_bits[0] & 0x00000008) ^ 0x00000008) != 0;
  }
};

constexpr MountPt::ParseTableT_ MountPt::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(MountPt, _impl_._has_bits_),
      0, // no _extensions_
      15, 120,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294934528,  // skipmap
      offsetof(ParseTableT_, field_entries),
      15,  // num_field_entries
      0,  // num_aux_entries
      offsetof(ParseTableT_, field_names),  // no aux_entries
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::nsjail::MountPt>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
      // optional string src = 1 [default = ""];
      {::_pbi::TcParser::FastBS1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(MountPt, _impl_.src_)}},
      // optional string prefix_src_env = 2 [default = ""];
      {::_pbi::TcParser::FastBS1,
       {18, 1, 0,
        PROTOBUF_FIELD_OFFSET(MountPt, _impl_.prefix_src_env_)}},
      // optional bytes src_content = 3 [default = ""];
      {::_pbi::TcParser::FastBS1,
       {26, 2, 0,
        PROTOBUF_FIELD_OFFSET(MountPt, _impl_.src_content_)}},
      // required string dst = 4 [default = ""];
      {::_pbi::TcParser::FastBS1,
       {34, 3, 0,
        PROTOBUF_FIELD_OFFSET(MountPt, _impl_.dst_)}},
      // optional string prefix_dst_env = 5 [default = ""];
      {::_pbi::TcParser::FastBS1,
       {42, 4, 0,
        PROTOBUF_FIELD_OFFSET(MountPt, _impl_.prefix_dst_env_)}},
      // optional string fstype = 6 [default = ""];
      {::_pbi::TcParser::FastBS1,
       {50, 5, 0,
        PROTOBUF_FIELD_OFFSET(MountPt, _impl_.fstype_)}},
      // optional string options = 7 [default = ""];
      {::_pbi::TcParser::FastBS1,
       {58, 6, 0,
        PROTOBUF_FIELD_OFFSET(MountPt, _impl_.options_)}},
      // optional bool is_bind = 8 [default = false];
      {::_pbi::TcParser::SingularVarintNoZag1<bool, offsetof(MountPt, _impl_.is_bind_), 7>(),
       {64, 7, 0,
        PROTOBUF_FIELD_OFFSET(MountPt, _impl_.is_bind_)}},
      // optional bool rw = 9 [default = false];
      {::_pbi::TcParser::SingularVarintNoZag1<bool, offsetof(MountPt, _impl_.rw_), 8>(),
       {72, 8, 0,
        PROTOBUF_FIELD_OFFSET(MountPt, _impl_.rw_)}},
      // optional bool is_dir = 10;
      {::_pbi::TcParser::SingularVarintNoZag1<bool, offsetof(MountPt, _impl_.is_dir_), 9>(),
       {80, 9, 0,
        PROTOBUF_FIELD_OFFSET(MountPt, _impl_.is_dir_)}},
      // optional bool mandatory = 11 [default = true];
      {::_pbi::TcParser::SingularVarintNoZag1<bool, offsetof(MountPt, _impl_.mandatory_), 14>(),
       {88, 14, 0,
        PROTOBUF_FIELD_OFFSET(MountPt, _impl_.mandatory_)}},
      // optional bool is_symlink = 12 [default = false];
      {::_pbi::TcParser::SingularVarintNoZag1<bool, offsetof(MountPt, _impl_.is_symlink_), 10>(),
       {96, 10, 0,
        PROTOBUF_FIELD_OFFSET(MountPt, _impl_.is_symlink_)}},
      // optional bool nosuid = 13 [default = false];
      {::_pbi::TcParser::SingularVarintNoZag1<bool, offsetof(MountPt, _impl_.nosuid_), 11>(),
       {104, 11, 0,
        PROTOBUF_FIELD_OFFSET(MountPt, _impl_.nosuid_)}},
      // optional bool nodev = 14 [default = false];
      {::_pbi::TcParser::SingularVarintNoZag1<bool, offsetof(MountPt, _impl_.nodev_), 12>(),
       {112, 12, 0,
        PROTOBUF_FIELD_OFFSET(MountPt, _impl_.nodev_)}},
      // optional bool noexec = 15 [default = false];
      {::_pbi::TcParser::SingularVarintNoZag1<bool, offsetof(MountPt, _impl_.noexec_), 13>(),
       {120, 13, 0,
        PROTOBUF_FIELD_OFFSET(MountPt, _impl_.noexec_)}},
    }}, {{
      65535, 65535
    }}, {{
      // optional string src = 1 [default = ""];
      {PROTOBUF_FIELD_OFFSET(MountPt, _impl_.src_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
      // optional string prefix_src_env = 2 [default = ""];
      {PROTOBUF_FIELD_OFFSET(MountPt, _impl_.prefix_src_env_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
      // optional bytes src_content = 3 [default = ""];
      {PROTOBUF_FIELD_OFFSET(MountPt, _impl_.src_content_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
      // required string dst = 4 [default = ""];
      {PROTOBUF_FIELD_OFFSET(MountPt, _impl_.dst_), _Internal::kHasBitsOffset + 3, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
      // optional string prefix_dst_env = 5 [default = ""];
      {PROTOBUF_FIELD_OFFSET(MountPt, _impl_.prefix_dst_env_), _Internal::kHasBitsOffset + 4, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
      // optional string fstype = 6 [default = ""];
      {PROTOBUF_FIELD_OFFSET(MountPt, _impl_.fstype_), _Internal::kHasBitsOffset + 5, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
      // optional string options = 7 [default = ""];
      {PROTOBUF_FIELD_OFFSET(MountPt, _impl_.options_), _Internal::kHasBitsOffset + 6, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
      // optional bool is_bind = 8 [default = false];
      {PROTOBUF_FIELD_OFFSET(MountPt, _impl_.is_bind_), _Internal::kHasBitsOffset + 7, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
      // optional bool rw = 9 [default = false];
      {PROTOBUF_FIELD_OFFSET(MountPt, _impl_.rw_), _Internal::kHasBitsOffset + 8, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
      // optional bool is_dir = 10;
      {PROTOBUF_FIELD_OFFSET(MountPt, _impl_.is_dir_), _Internal::kHasBitsOffset + 9, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
      // optional bool mandatory = 11 [default = true];
      {PROTOBUF_FIELD_OFFSET(MountPt, _impl_.mandatory_), _Internal::kHasBitsOffset + 14, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
      // optional bool is_symlink = 12 [default = false];
      {PROTOBUF_FIELD_OFFSET(MountPt, _impl_.is_symlink_), _Internal::kHasBitsOffset + 10, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
      // optional bool nosuid = 13 [default = false];
      {PROTOBUF_FIELD_OFFSET(MountPt, _impl_.nosuid_), _Internal::kHasBitsOffset + 11, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
      // optional bool nodev = 14 [default = false];
      {PROTOBUF_FIELD_OFFSET(MountPt, _impl_.nodev_), _Internal::kHasBitsOffset + 12, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
      // optional bool noexec = 15 [default = false];
      {PROTOBUF_FIELD_OFFSET(MountPt, _impl_.noexec_), _Internal::kHasBitsOffset + 13, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
    }},
    // no aux_entries
    {{
    }},
  };
}


inline constexpr MountPt::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        src_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        prefix_src_env_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        src_content_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        dst_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        prefix_dst_env_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        fstype_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        options_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        is_bind_{false},
        rw_{false},
        is_dir_{false},
        is_symlink_{false},
        nosuid_{false},
        nodev_{false},
        noexec_{false},
        mandatory_{true} {}

template <typename>
constexpr MountPt::MountPt(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL MountPt::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) MountPt(arena);
}
constexpr auto MountPt::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(MountPt), alignof(MountPt));
}
constexpr auto MountPt::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          MountPt::IsInitializedImpl,
          &MountPt::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<MountPt>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &MountPt::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<MountPt>(), &MountPt::ByteSizeLong,
              &MountPt::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(MountPt, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[1],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_config_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct MountPtGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr MountPtGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 MountPt_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(MountPt::InternalGenerateClassData_(
            _default, &MountPt_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<MountPt>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~MountPtGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) MountPt _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<MountPt>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(MountPtGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST MountPtGlobalsTypeInternal MountPt_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* MountPt_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return MountPt_globals_.GetClassData();
#else
  return MountPt_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
class IdMap::_Internal {
 public:
  using HasBits = decltype(::std::declval<IdMap>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(IdMap, _impl_._has_bits_);
};

constexpr IdMap::ParseTableT_ IdMap::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(IdMap, _impl_._has_bits_),
      0, // no _extensions_
      4, 24,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967280,  // skipmap
      offsetof(ParseTableT_, field_entries),
      4,  // num_field_entries
      0,  // num_aux_entries
      offsetof(ParseTableT_, field_names),  // no aux_entries
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::nsjail::IdMap>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // optional bool use_newidmap = 4 [default = false];
      {::_pbi::TcParser::SingularVarintNoZag1<bool, offsetof(IdMap, _impl_.use_newidmap_), 2>(),
       {32, 2, 0,
        PROTOBUF_FIELD_OFFSET(IdMap, _impl_.use_newidmap_)}},
      // optional string inside_id = 1 [default = ""];
      {::_pbi::TcParser::FastBS1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(IdMap, _impl_.inside_id_)}},
      // optional string outside_id = 2 [default = ""];
      {::_pbi::TcParser::FastBS1,
       {18, 1, 0,
        PROTOBUF_FIELD_OFFSET(IdMap, _impl_.outside_id_)}},
      // optional uint32 count = 3 [default = 1];
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(IdMap, _impl_.count_), 3>(),
       {24, 3, 0,
        PROTOBUF_FIELD_OFFSET(IdMap, _impl_.count_)}},
    }}, {{
      65535, 65535
    }}, {{
      // optional string inside_id = 1 [default = ""];
      {PROTOBUF_FIELD_OFFSET(IdMap, _impl_.inside_id_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
      // optional string outside_id = 2 [default = ""];
      {PROTOBUF_FIELD_OFFSET(IdMap, _impl_.outside_id_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
      // optional uint32 count = 3 [default = 1];
      {PROTOBUF_FIELD_OFFSET(IdMap, _impl_.count_), _Internal::kHasBitsOffset + 3, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // optional bool use_newidmap = 4 [default = false];
      {PROTOBUF_FIELD_OFFSET(IdMap, _impl_.use_newidmap_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
    }},
    // no aux_entries
    {{
    }},
  };
}


inline constexpr IdMap::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        inside_id_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        outside_id_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        use_newidmap_{false},
        count_{1u} {}

template <typename>
constexpr IdMap::IdMap(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL IdMap::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) IdMap(arena);
}
constexpr auto IdMap::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(IdMap), alignof(IdMap));
}
constexpr auto IdMap::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &IdMap::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<IdMap>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &IdMap::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<IdMap>(), &IdMap::ByteSizeLong,
              &IdMap::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(IdMap, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[0],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_config_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct IdMapGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr IdMapGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 IdMap_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(IdMap::InternalGenerateClassData_(
            _default, &IdMap_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<IdMap>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~IdMapGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) IdMap _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<IdMap>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(IdMapGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST IdMapGlobalsTypeInternal IdMap_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* IdMap_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return IdMap_globals_.GetClassData();
#else
  return IdMap_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
class Exe::_Internal {
 public:
  using HasBits = decltype(::std::declval<Exe>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(Exe, _impl_._has_bits_);
  static bool MissingRequiredFields(const HasBits& has_bits) {
    return ((has_bits[0] & 0x00000002) ^ 0x00000002) != 0;
  }
};

constexpr Exe::ParseTableT_ Exe::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(Exe, _impl_._has_bits_),
      0, // no _extensions_
      4, 24,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967280,  // skipmap
      offsetof(ParseTableT_, field_entries),
      4,  // num_field_entries
      0,  // num_aux_entries
      offsetof(ParseTableT_, field_names),  // no aux_entries
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::nsjail::Exe>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // optional bool exec_fd = 4 [default = false];
      {::_pbi::TcParser::SingularVarintNoZag1<bool, offsetof(Exe, _impl_.exec_fd_), 3>(),
       {32, 3, 0,
        PROTOBUF_FIELD_OFFSET(Exe, _impl_.exec_fd_)}},
      // required string path = 1;
      {::_pbi::TcParser::FastBS1,
       {10, 1, 0,
        PROTOBUF_FIELD_OFFSET(Exe, _impl_.path_)}},
      // repeated string arg = 2;
      {::_pbi::TcParser::FastBR1,
       {18, 0, 0,
        PROTOBUF_FIELD_OFFSET(Exe, _impl_.arg_)}},
      // optional string arg0 = 3;
      {::_pbi::TcParser::FastBS1,
       {26, 2, 0,
        PROTOBUF_FIELD_OFFSET(Exe, _impl_.arg0_)}},
    }}, {{
      65535, 65535
    }}, {{
      // required string path = 1;
      {PROTOBUF_FIELD_OFFSET(Exe, _impl_.path_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
      // repeated string arg = 2;
      {PROTOBUF_FIELD_OFFSET(Exe, _impl_.arg_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcRepeated | ::_fl::kBytes | ::_fl::kRepSString)},
      // optional string arg0 = 3;
      {PROTOBUF_FIELD_OFFSET(Exe, _impl_.arg0_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
      // optional bool exec_fd = 4 [default = false];
      {PROTOBUF_FIELD_OFFSET(Exe, _impl_.exec_fd_), _Internal::kHasBitsOffset + 3, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
    }},
    // no aux_entries
    {{
    }},
  };
}


inline constexpr Exe::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        arg_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::nsjail::Exe,
            PROTOBUF_FIELD_OFFSET(::nsjail::Exe, _impl_.arg_)>()
         }
        ,
        path_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        arg0_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        exec_fd_{false} {}

template <typename>
constexpr Exe::Exe(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL Exe::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) Exe(arena);
}
constexpr auto Exe::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(Exe), alignof(Exe));
}
constexpr auto Exe::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          Exe::IsInitializedImpl,
          &Exe::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<Exe>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &Exe::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<Exe>(), &Exe::ByteSizeLong,
              &Exe::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(Exe, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[2],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_config_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct ExeGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr ExeGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 Exe_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(Exe::InternalGenerateClassData_(
            _default, &Exe_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<Exe>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~ExeGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) Exe _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<Exe>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(ExeGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST ExeGlobalsTypeInternal Exe_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* Exe_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return Exe_globals_.GetClassData();
#else
  return Exe_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
class NsJailConfig::_Internal {
 public:
  using HasBits = decltype(::std::declval<NsJailConfig>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_._has_bits_);
};

constexpr NsJailConfig::ParseTableT_ NsJailConfig::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_._has_bits_),
      0, // no _extensions_
      96, 248,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      0,  // skipmap
      offsetof(ParseTableT_, field_entries),
      96,  // num_field_entries
      17,  // num_aux_entries
      offsetof(ParseTableT_, aux_entries),
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::nsjail::NsJailConfig>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
      // optional string name = 1 [default = ""];
      {::_pbi::TcParser::FastBS1,
       {10, 4, 0,
        PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_.name_)}},
      // repeated string description = 2;
      {::_pbi::TcParser::FastBR1,
       {18, 0, 0,
        PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_.description_)}},
      // optional .nsjail.Mode mode = 3 [default = ONCE];
      {::_pbi::TcParser::FastEr0S1,
       {24, 27, 3,
        PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_.mode_)}},
      // optional string hostname = 4 [default = "NSJAIL"];
      {::_pbi::TcParser::FastBS1,
       {34, 5, 0,
        PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_.hostname_)}},
      // optional string cwd = 5 [default = "/"];
      {::_pbi::TcParser::FastBS1,
       {42, 6, 0,
        PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_.cwd_)}},
      // optional bool no_pivotroot = 6 [default = false];
      {::_pbi::TcParser::SingularVarintNoZag1<bool, offsetof(NsJailConfig, _impl_.no_pivotroot_), 13>(),
       {48, 13, 0,
        PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_.no_pivotroot_)}},
      // optional uint32 port = 7 [default = 0];
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(NsJailConfig, _impl_.port_), 9>(),
       {56, 9, 0,
        PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_.port_)}},
      // optional string bindhost = 8 [default = "::"];
      {::_pbi::TcParser::FastBS1,
       {66, 7, 0,
        PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_.bindhost_)}},
      // optional uint32 max_conns = 9 [default = 0];
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(NsJailConfig, _impl_.max_conns_), 10>(),
       {72, 10, 0,
        PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_.max_conns_)}},
      // optional uint32 max_conns_per_ip = 10 [default = 0];
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(NsJailConfig, _impl_.max_conns_per_ip_), 11>(),
       {80, 11, 0,
        PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_.max_conns_per_ip_)}},
      // optional uint32 time_limit = 11 [default = 600];
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(NsJailConfig, _impl_.time_limit_), 28>(),
       {88, 28, 0,
        PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_.time_limit_)}},
      // optional bool daemon = 12 [default = false];
      {::_pbi::TcParser::SingularVarintNoZag1<bool, offsetof(NsJailConfig, _impl_.daemon_), 14>(),
       {96, 14, 0,
        PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_.daemon_)}},
      // optional uint32 max_cpus = 13 [default = 0];
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(NsJailConfig, _impl_.max_cpus_), 12>(),
       {104, 12, 0,
        PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_.max_cpus_)}},
      // optional int32 nice_level = 14 [default = 19];
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(NsJailConfig, _impl_.nice_level_), 30>(),
       {112, 30, 0,
        PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_.nice_level_)}},
      // optional int32 log_fd = 15;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(NsJailConfig, _impl_.log_fd_), 17>(),
       {120, 17, 0,
        PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_.log_fd_)}},
      // optional string log_file = 16;
      {::_pbi::TcParser::FastBS2,
       {386, 8, 0,
        PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_.log_file_)}},
      // optional .nsjail.LogLevel log_level = 17;
      {::_pbi::TcParser::FastEr0S2,
       {392, 18, 4,
        PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_.log_level_)}},
      // optional bool keep_env = 18 [default = false];
      {::_pbi::TcParser::FastV8S2,
       {400, 15, 0,
        PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_.keep_env_)}},
      // repeated string envar = 19;
      {::_pbi::TcParser::FastBR2,
       {410, 1, 0,
        PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_.envar_)}},
      // optional bool keep_caps = 20 [default = false];
      {::_pbi::TcParser::FastV8S2,
       {416, 16, 0,
        PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_.keep_caps_)}},
      // repeated string cap = 21;
      {::_pbi::TcParser::FastBR2,
       {426, 2, 0,
        PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_.cap_)}},
      // optional bool silent = 22 [default = false];
      {::_pbi::TcParser::FastV8S2,
       {432, 19, 0,
        PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_.silent_)}},
      // optional bool skip_setsid = 23 [default = false];
      {::_pbi::TcParser::FastV8S2,
       {440, 20, 0,
        PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_.skip_setsid_)}},
      // optional bool stderr_to_null = 24 [default = false];
      {::_pbi::TcParser::FastV8S2,
       {448, 21, 0,
        PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_.stderr_to_null_)}},
      // repeated int32 pass_fd = 25;
      {::_pbi::TcParser::FastV32R2,
       {456, 3, 0,
        PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_.pass_fd_)}},
      // optional bool disable_no_new_privs = 26 [default = false];
      {::_pbi::TcParser::FastV8S2,
       {464, 22, 0,
        PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_.disable_no_new_privs_)}},
      // optional bool forward_signals = 27 [default = false];
      {::_pbi::TcParser::FastV8S2,
       {472, 23, 0,
        PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_.forward_signals_)}},
      // optional bool disable_tsc = 28 [default = false];
      {::_pbi::TcParser::FastV8S2,
       {480, 24, 0,
        PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_.disable_tsc_)}},
      // optional uint64 rlimit_as = 29 [default = 4096];
      {::_pbi::TcParser::FastV64S2,
       {488, 29, 0,
        PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_.rlimit_as_)}},
      // optional .nsjail.RLimit rlimit_as_type = 30 [default = VALUE];
      {::_pbi::TcParser::FastEr0S2,
       {496, 25, 3,
        PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_.rlimit_as_type_)}},
      // optional uint64 rlimit_core = 31 [default = 0];
      {::_pbi::TcParser::FastV64S2,
       {504, 26, 0,
        PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_.rlimit_core_)}},
    }}, {{
      33, 0, 4,
      0, 32,
      0, 48,
      0, 64,
      0, 80,
      65535, 65535
    }}, {{
      // optional string name = 1 [default = ""];
      {PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_.name_), _Internal::kHasBitsOffset + 4, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
      // repeated string description = 2;
      {PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_.description_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcRepeated | ::_fl::kBytes | ::_fl::kRepSString)},
      // optional .nsjail.Mode mode = 3 [default = ONCE];
      {PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_.mode_), _Internal::kHasBitsOffset + 27, 5, (0 | ::_fl::kFcOptional | ::_fl::kEnumRange)},
      // optional string hostname = 4 [default = "NSJAIL"];
      {PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_.hostname_), _Internal::kHasBitsOffset + 5, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
      // optional string cwd = 5 [default = "/"];
      {PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_.cwd_), _Internal::kHasBitsOffset + 6, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
      // optional bool no_pivotroot = 6 [default = false];
      {PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_.no_pivotroot_), _Internal::kHasBitsOffset + 13, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
      // optional uint32 port = 7 [default = 0];
      {PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_.port_), _Internal::kHasBitsOffset + 9, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // optional string bindhost = 8 [default = "::"];
      {PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_.bindhost_), _Internal::kHasBitsOffset + 7, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
      // optional uint32 max_conns = 9 [default = 0];
      {PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_.max_conns_), _Internal::kHasBitsOffset + 10, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // optional uint32 max_conns_per_ip = 10 [default = 0];
      {PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_.max_conns_per_ip_), _Internal::kHasBitsOffset + 11, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // optional uint32 time_limit = 11 [default = 600];
      {PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_.time_limit_), _Internal::kHasBitsOffset + 28, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // optional bool daemon = 12 [default = false];
      {PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_.daemon_), _Internal::kHasBitsOffset + 14, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
      // optional uint32 max_cpus = 13 [default = 0];
      {PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_.max_cpus_), _Internal::kHasBitsOffset + 12, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // optional int32 nice_level = 14 [default = 19];
      {PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_.nice_level_), _Internal::kHasBitsOffset + 30, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
      // optional int32 log_fd = 15;
      {PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_.log_fd_), _Internal::kHasBitsOffset + 17, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
      // optional string log_file = 16;
      {PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_.log_file_), _Internal::kHasBitsOffset + 8, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
      // optional .nsjail.LogLevel log_level = 17;
      {PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_.log_level_), _Internal::kHasBitsOffset + 18, 6, (0 | ::_fl::kFcOptional | ::_fl::kEnumRange)},
      // optional bool keep_env = 18 [default = false];
      {PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_.keep_env_), _Internal::kHasBitsOffset + 15, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
      // repeated string envar = 19;
      {PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_.envar_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcRepeated | ::_fl::kBytes | ::_fl::kRepSString)},
      // optional bool keep_caps = 20 [default = false];
      {PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_.keep_caps_), _Internal::kHasBitsOffset + 16, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
      // repeated string cap = 21;
      {PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_.cap_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcRepeated | ::_fl::kBytes | ::_fl::kRepSString)},
      // optional bool silent = 22 [default = false];
      {PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_.silent_), _Internal::kHasBitsOffset + 19, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
      // optional bool skip_setsid = 23 [default = false];
      {PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_.skip_setsid_), _Internal::kHasBitsOffset + 20, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
      // optional bool stderr_to_null = 24 [default = false];
      {PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_.stderr_to_null_), _Internal::kHasBitsOffset + 21, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
      // repeated int32 pass_fd = 25;
      {PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_.pass_fd_), _Internal::kHasBitsOffset + 3, 0, (0 | ::_fl::kFcRepeated | ::_fl::kInt32)},
      // optional bool disable_no_new_privs = 26 [default = false];
      {PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_.disable_no_new_privs_), _Internal::kHasBitsOffset + 22, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
      // optional bool forward_signals = 27 [default = false];
      {PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_.forward_signals_), _Internal::kHasBitsOffset + 23, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
      // optional bool disable_tsc = 28 [default = false];
      {PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_.disable_tsc_), _Internal::kHasBitsOffset + 24, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
      // optional uint64 rlimit_as = 29 [default = 4096];
      {PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_.rlimit_as_), _Internal::kHasBitsOffset + 29, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt64)},
      // optional .nsjail.RLimit rlimit_as_type = 30 [default = VALUE];
      {PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_.rlimit_as_type_), _Internal::kHasBitsOffset + 25, 7, (0 | ::_fl::kFcOptional | ::_fl::kEnumRange)},
      // optional uint64 rlimit_core = 31 [default = 0];
      {PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_.rlimit_core_), _Internal::kHasBitsOffset + 26, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt64)},
      // optional .nsjail.RLimit rlimit_core_type = 32 [default = VALUE];
      {PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_.rlimit_core_type_), _Internal::kHasBitsOffset + 54, 8, (0 | ::_fl::kFcOptional | ::_fl::kEnumRange)},
      // optional uint64 rlimit_cpu = 33 [default = 600];
      {PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_.rlimit_cpu_), _Internal::kHasBitsOffset + 79, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt64)},
      // optional .nsjail.RLimit rlimit_cpu_type = 34 [default = VALUE];
      {PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_.rlimit_cpu_type_), _Internal::kHasBitsOffset + 55, 9, (0 | ::_fl::kFcOptional | ::_fl::kEnumRange)},
      // optional uint64 rlimit_fsize = 35 [default = 1];
      {PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_.rlimit_fsize_), _Internal::kHasBitsOffset + 80, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt64)},
      // optional .nsjail.RLimit rlimit_fsize_type = 36 [default = VALUE];
      {PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_.rlimit_fsize_type_), _Internal::kHasBitsOffset + 56, 10, (0 | ::_fl::kFcOptional | ::_fl::kEnumRange)},
      // optional uint64 rlimit_nofile = 37 [default = 32];
      {PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_.rlimit_nofile_), _Internal::kHasBitsOffset + 81, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt64)},
      // optional .nsjail.RLimit rlimit_nofile_type = 38 [default = VALUE];
      {PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_.rlimit_nofile_type_), _Internal::kHasBitsOffset + 57, 11, (0 | ::_fl::kFcOptional | ::_fl::kEnumRange)},
      // optional uint64 rlimit_nproc = 39 [default = 1024];
      {PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_.rlimit_nproc_), _Internal::kHasBitsOffset + 82, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt64)},
      // optional .nsjail.RLimit rlimit_nproc_type = 40 [default = SOFT];
      {PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_.rlimit_nproc_type_), _Internal::kHasBitsOffset + 84, 12, (0 | ::_fl::kFcOptional | ::_fl::kEnumRange)},
      // optional uint64 rlimit_stack = 41 [default = 8];
      {PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_.rlimit_stack_), _Internal::kHasBitsOffset + 83, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt64)},
      // optional .nsjail.RLimit rlimit_stack_type = 42 [default = SOFT];
      {PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_.rlimit_stack_type_), _Internal::kHasBitsOffset + 85, 13, (0 | ::_fl::kFcOptional | ::_fl::kEnumRange)},
      // optional uint64 rlimit_memlock = 43 [default = 64];
      {PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_.rlimit_memlock_), _Internal::kHasBitsOffset + 86, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt64)},
      // optional .nsjail.RLimit rlimit_memlock_type = 44 [default = SOFT];
      {PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_.rlimit_memlock_type_), _Internal::kHasBitsOffset + 87, 14, (0 | ::_fl::kFcOptional | ::_fl::kEnumRange)},
      // optional uint64 rlimit_rtprio = 45 [default = 0];
      {PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_.rlimit_rtprio_), _Internal::kHasBitsOffset + 58, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt64)},
      // optional .nsjail.RLimit rlimit_rtprio_type = 46 [default = SOFT];
      {PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_.rlimit_rtprio_type_), _Internal::kHasBitsOffset + 88, 15, (0 | ::_fl::kFcOptional | ::_fl::kEnumRange)},
      // optional uint64 rlimit_msgqueue = 47 [default = 1024];
      {PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_.rlimit_msgqueue_), _Internal::kHasBitsOffset + 89, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt64)},
      // optional .nsjail.RLimit rlimit_msgqueue_type = 48 [default = SOFT];
      {PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_.rlimit_msgqueue_type_), _Internal::kHasBitsOffset + 90, 16, (0 | ::_fl::kFcOptional | ::_fl::kEnumRange)},
      // optional bool disable_rl = 49 [default = false];
      {PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_.disable_rl_), _Internal::kHasBitsOffset + 59, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
      // optional bool persona_addr_compat_layout = 50 [default = false];
      {PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_.persona_addr_compat_layout_), _Internal::kHasBitsOffset + 60, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
      // optional bool persona_mmap_page_zero = 51 [default = false];
      {PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_.persona_mmap_page_zero_), _Internal::kHasBitsOffset + 61, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
      // optional bool persona_read_implies_exec = 52 [default = false];
      {PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_.persona_read_implies_exec_), _Internal::kHasBitsOffset + 62, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
      // optional bool persona_addr_limit_3gb = 53 [default = false];
      {PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_.persona_addr_limit_3gb_), _Internal::kHasBitsOffset + 63, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
      // optional bool persona_addr_no_randomize = 54 [default = false];
      {PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_.persona_addr_no_randomize_), _Internal::kHasBitsOffset + 64, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
      // optional bool clone_newnet = 55 [default = true];
      {PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_.clone_newnet_), _Internal::kHasBitsOffset + 91, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
      // optional bool clone_newuser = 56 [default = true];
      {PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_.clone_newuser_), _Internal::kHasBitsOffset + 92, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
      // optional bool clone_newns = 57 [default = true];
      {PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_.clone_newns_), _Internal::kHasBitsOffset + 93, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
      // optional bool clone_newpid = 58 [default = true];
      {PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_.clone_newpid_), _Internal::kHasBitsOffset + 94, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
      // optional bool clone_newipc = 59 [default = true];
      {PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_.clone_newipc_), _Internal::kHasBitsOffset + 76, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
      // optional bool clone_newuts = 60 [default = true];
      {PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_.clone_newuts_), _Internal::kHasBitsOffset + 77, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
      // optional bool clone_newcgroup = 61 [default = true];
      {PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_.clone_newcgroup_), _Internal::kHasBitsOffset + 78, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
      // optional bool clone_newtime = 62 [default = false];
      {PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_.clone_newtime_), _Internal::kHasBitsOffset + 65, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
      // repeated .nsjail.IdMap uidmap = 63;
      {PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_.uidmap_), _Internal::kHasBitsOffset + 31, 0, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
      // repeated .nsjail.IdMap gidmap = 64;
      {PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_.gidmap_), _Internal::kHasBitsOffset + 32, 1, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
      // optional bool mount_proc = 65 [default = false];
      {PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_.mount_proc_), _Internal::kHasBitsOffset + 66, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
      // repeated .nsjail.MountPt mount = 66;
      {PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_.mount_), _Internal::kHasBitsOffset + 33, 2, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
      // optional string seccomp_policy_file = 67;
      {PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_.seccomp_policy_file_), _Internal::kHasBitsOffset + 36, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
      // repeated string seccomp_string = 68;
      {PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_.seccomp_string_), _Internal::kHasBitsOffset + 34, 0, (0 | ::_fl::kFcRepeated | ::_fl::kBytes | ::_fl::kRepSString)},
      // optional bool seccomp_log = 69 [default = false];
      {PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_.seccomp_log_), _Internal::kHasBitsOffset + 72, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
      // optional uint64 cgroup_mem_max = 70 [default = 0];
      {PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_.cgroup_mem_max_), _Internal::kHasBitsOffset + 67, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt64)},
      // optional uint64 cgroup_mem_memsw_max = 71 [default = 0];
      {PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_.cgroup_mem_memsw_max_), _Internal::kHasBitsOffset + 68, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt64)},
      // optional int64 cgroup_mem_swap_max = 72 [default = -1];
      {PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_.cgroup_mem_swap_max_), _Internal::kHasBitsOffset + 95, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt64)},
      // optional string cgroup_mem_mount = 73 [default = "/sys/fs/cgroup/memory"];
      {PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_.cgroup_mem_mount_), _Internal::kHasBitsOffset + 37, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
      // optional string cgroup_mem_parent = 74 [default = "NSJAIL"];
      {PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_.cgroup_mem_parent_), _Internal::kHasBitsOffset + 38, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
      // optional uint64 cgroup_pids_max = 75 [default = 0];
      {PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_.cgroup_pids_max_), _Internal::kHasBitsOffset + 69, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt64)},
      // optional string cgroup_pids_mount = 76 [default = "/sys/fs/cgroup/pids"];
      {PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_.cgroup_pids_mount_), _Internal::kHasBitsOffset + 39, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
      // optional string cgroup_pids_parent = 77 [default = "NSJAIL"];
      {PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_.cgroup_pids_parent_), _Internal::kHasBitsOffset + 40, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
      // optional uint32 cgroup_net_cls_classid = 78 [default = 0];
      {PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_.cgroup_net_cls_classid_), _Internal::kHasBitsOffset + 70, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // optional string cgroup_net_cls_mount = 79 [default = "/sys/fs/cgroup/net_cls"];
      {PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_.cgroup_net_cls_mount_), _Internal::kHasBitsOffset + 41, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
      // optional string cgroup_net_cls_parent = 80 [default = "NSJAIL"];
      {PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_.cgroup_net_cls_parent_), _Internal::kHasBitsOffset + 42, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
      // optional uint32 cgroup_cpu_ms_per_sec = 81 [default = 0];
      {PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_.cgroup_cpu_ms_per_sec_), _Internal::kHasBitsOffset + 71, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // optional string cgroup_cpu_mount = 82 [default = "/sys/fs/cgroup/cpu"];
      {PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_.cgroup_cpu_mount_), _Internal::kHasBitsOffset + 43, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
      // optional string cgroup_cpu_parent = 83 [default = "NSJAIL"];
      {PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_.cgroup_cpu_parent_), _Internal::kHasBitsOffset + 44, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
      // optional string cgroupv2_mount = 84 [default = "/sys/fs/cgroup"];
      {PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_.cgroupv2_mount_), _Internal::kHasBitsOffset + 45, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
      // optional bool use_cgroupv2 = 85 [default = false];
      {PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_.use_cgroupv2_), _Internal::kHasBitsOffset + 73, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
      // optional bool detect_cgroupv2 = 86 [default = false];
      {PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_.detect_cgroupv2_), _Internal::kHasBitsOffset + 74, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
      // optional bool iface_no_lo = 87 [default = false];
      {PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_.iface_no_lo_), _Internal::kHasBitsOffset + 75, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
      // repeated string iface_own = 88;
      {PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_.iface_own_), _Internal::kHasBitsOffset + 35, 0, (0 | ::_fl::kFcRepeated | ::_fl::kBytes | ::_fl::kRepSString)},
      // optional string macvlan_iface = 89;
      {PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_.macvlan_iface_), _Internal::kHasBitsOffset + 46, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
      // optional string macvlan_vs_ip = 90 [default = "192.168.0.2"];
      {PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_.macvlan_vs_ip_), _Internal::kHasBitsOffset + 47, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
      // optional string macvlan_vs_nm = 91 [default = "255.255.255.0"];
      {PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_.macvlan_vs_nm_), _Internal::kHasBitsOffset + 48, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
      // optional string macvlan_vs_gw = 92 [default = "192.168.0.1"];
      {PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_.macvlan_vs_gw_), _Internal::kHasBitsOffset + 49, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
      // optional string macvlan_vs_ma = 93 [default = ""];
      {PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_.macvlan_vs_ma_), _Internal::kHasBitsOffset + 50, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
      // optional string macvlan_vs_mo = 94 [default = "private"];
      {PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_.macvlan_vs_mo_), _Internal::kHasBitsOffset + 51, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
      // optional .nsjail.NsJailConfig.UserNet user_net = 95;
      {PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_.user_net_), _Internal::kHasBitsOffset + 52, 3, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // optional .nsjail.Exe exec_bin = 96;
      {PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_.exec_bin_), _Internal::kHasBitsOffset + 53, 4, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::nsjail::IdMap>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::nsjail::IdMap_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::nsjail::IdMap>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::nsjail::IdMap_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::nsjail::MountPt>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::nsjail::MountPt_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::nsjail::NsJailConfig_UserNet>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::nsjail::NsJailConfig_UserNet_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::nsjail::Exe>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::nsjail::Exe_globals_},
        #endif
        {0, 3},
        {0, 4},
        {0, 3},
        {0, 3},
        {0, 3},
        {0, 3},
        {0, 3},
        {0, 3},
        {0, 3},
        {0, 3},
        {0, 3},
        {0, 3},
    }},
    {{
    }},
  };
}


inline constexpr NsJailConfig::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        description_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::nsjail::NsJailConfig,
            PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig, _impl_.description_)>()
         }
        ,
        envar_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::nsjail::NsJailConfig,
            PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig, _impl_.envar_)>()
         }
        ,
        cap_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::nsjail::NsJailConfig,
            PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig, _impl_.cap_)>()
         }
        ,
        pass_fd_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::nsjail::NsJailConfig,
            PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig, _impl_.pass_fd_)>()
         }
        ,
        name_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        hostname_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        cwd_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        bindhost_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        log_file_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        port_{0u},
        max_conns_{0u},
        max_conns_per_ip_{0u},
        max_cpus_{0u},
        no_pivotroot_{false},
        daemon_{false},
        keep_env_{false},
        keep_caps_{false},
        log_fd_{0},
        log_level_{static_cast< ::nsjail::LogLevel >(0)},
        silent_{false},
        skip_setsid_{false},
        stderr_to_null_{false},
        disable_no_new_privs_{false},
        forward_signals_{false},
        disable_tsc_{false},
        rlimit_as_type_{static_cast< ::nsjail::RLimit >(0)},
        rlimit_core_{::uint64_t{0u}},
        mode_{static_cast< ::nsjail::Mode >(1)},
        time_limit_{600u},
        rlimit_as_{::uint64_t{4096u}},
        nice_level_{19},
        uidmap_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::nsjail::NsJailConfig,
            PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig, _impl_.uidmap_)>()
         }
        ,
        gidmap_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::nsjail::NsJailConfig,
            PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig, _impl_.gidmap_)>()
         }
        ,
        mount_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::nsjail::NsJailConfig,
            PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig, _impl_.mount_)>()
         }
        ,
        seccomp_string_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::nsjail::NsJailConfig,
            PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig, _impl_.seccomp_string_)>()
         }
        ,
        iface_own_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::nsjail::NsJailConfig,
            PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig, _impl_.iface_own_)>()
         }
        ,
        seccomp_policy_file_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        cgroup_mem_mount_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        cgroup_mem_parent_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        cgroup_pids_mount_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        cgroup_pids_parent_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        cgroup_net_cls_mount_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        cgroup_net_cls_parent_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        cgroup_cpu_mount_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        cgroup_cpu_parent_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        cgroupv2_mount_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        macvlan_iface_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        macvlan_vs_ip_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        macvlan_vs_nm_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        macvlan_vs_gw_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        macvlan_vs_ma_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        macvlan_vs_mo_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        user_net_{nullptr},
        exec_bin_{nullptr},
        rlimit_core_type_{static_cast< ::nsjail::RLimit >(0)},
        rlimit_cpu_type_{static_cast< ::nsjail::RLimit >(0)},
        rlimit_fsize_type_{static_cast< ::nsjail::RLimit >(0)},
        rlimit_nofile_type_{static_cast< ::nsjail::RLimit >(0)},
        rlimit_rtprio_{::uint64_t{0u}},
        disable_rl_{false},
        persona_addr_compat_layout_{false},
        persona_mmap_page_zero_{false},
        persona_read_implies_exec_{false},
        persona_addr_limit_3gb_{false},
        persona_addr_no_randomize_{false},
        clone_newtime_{false},
        mount_proc_{false},
        cgroup_mem_max_{::uint64_t{0u}},
        cgroup_mem_memsw_max_{::uint64_t{0u}},
        cgroup_pids_max_{::uint64_t{0u}},
        cgroup_net_cls_classid_{0u},
        cgroup_cpu_ms_per_sec_{0u},
        seccomp_log_{false},
        use_cgroupv2_{false},
        detect_cgroupv2_{false},
        iface_no_lo_{false},
        clone_newipc_{true},
        clone_newuts_{true},
        clone_newcgroup_{true},
        rlimit_cpu_{::uint64_t{600u}},
        rlimit_fsize_{::uint64_t{1u}},
        rlimit_nofile_{::uint64_t{32u}},
        rlimit_nproc_{::uint64_t{1024u}},
        rlimit_stack_{::uint64_t{8u}},
        rlimit_nproc_type_{static_cast< ::nsjail::RLimit >(1)},
        rlimit_stack_type_{static_cast< ::nsjail::RLimit >(1)},
        rlimit_memlock_{::uint64_t{64u}},
        rlimit_memlock_type_{static_cast< ::nsjail::RLimit >(1)},
        rlimit_rtprio_type_{static_cast< ::nsjail::RLimit >(1)},
        rlimit_msgqueue_{::uint64_t{1024u}},
        rlimit_msgqueue_type_{static_cast< ::nsjail::RLimit >(1)},
        clone_newnet_{true},
        clone_newuser_{true},
        clone_newns_{true},
        clone_newpid_{true},
        cgroup_mem_swap_max_{::int64_t{-1}} {}

template <typename>
constexpr NsJailConfig::NsJailConfig(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL NsJailConfig::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) NsJailConfig(arena);
}
constexpr auto NsJailConfig::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(NsJailConfig), alignof(NsJailConfig));
}
constexpr auto NsJailConfig::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          NsJailConfig::IsInitializedImpl,
          &NsJailConfig::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<NsJailConfig>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &NsJailConfig::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<NsJailConfig>(), &NsJailConfig::ByteSizeLong,
              &NsJailConfig::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[4],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_config_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct NsJailConfigGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr NsJailConfigGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 NsJailConfig_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(NsJailConfig::InternalGenerateClassData_(
            _default, &NsJailConfig_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<NsJailConfig>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~NsJailConfigGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) NsJailConfig _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<NsJailConfig>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(NsJailConfigGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST NsJailConfigGlobalsTypeInternal NsJailConfig_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* NsJailConfig_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return NsJailConfig_globals_.GetClassData();
#else
  return NsJailConfig_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
}  // namespace nsjail
static const ::_pb::EnumDescriptor* PROTOBUF_NONNULL
    file_level_enum_descriptors_config_2eproto[3];
static constexpr const ::_pb::ServiceDescriptor* PROTOBUF_NONNULL* PROTOBUF_NULLABLE
    file_level_service_descriptors_config_2eproto = nullptr;
const ::uint32_t
    TableStruct_config_2eproto::offsets[] ABSL_ATTRIBUTE_SECTION_VARIABLE(
        protodesc_cold) = {
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::nsjail::IdMap, _impl_._has_bits_),
        7, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::nsjail::IdMap, _impl_.inside_id_),
        PROTOBUF_FIELD_OFFSET(::nsjail::IdMap, _impl_.outside_id_),
        PROTOBUF_FIELD_OFFSET(::nsjail::IdMap, _impl_.count_),
        PROTOBUF_FIELD_OFFSET(::nsjail::IdMap, _impl_.use_newidmap_),
        0,
        1,
        3,
        2,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::nsjail::MountPt, _impl_._has_bits_),
        18, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::nsjail::MountPt, _impl_.src_),
        PROTOBUF_FIELD_OFFSET(::nsjail::MountPt, _impl_.prefix_src_env_),
        PROTOBUF_FIELD_OFFSET(::nsjail::MountPt, _impl_.src_content_),
        PROTOBUF_FIELD_OFFSET(::nsjail::MountPt, _impl_.dst_),
        PROTOBUF_FIELD_OFFSET(::nsjail::MountPt, _impl_.prefix_dst_env_),
        PROTOBUF_FIELD_OFFSET(::nsjail::MountPt, _impl_.fstype_),
        PROTOBUF_FIELD_OFFSET(::nsjail::MountPt, _impl_.options_),
        PROTOBUF_FIELD_OFFSET(::nsjail::MountPt, _impl_.is_bind_),
        PROTOBUF_FIELD_OFFSET(::nsjail::MountPt, _impl_.rw_),
        PROTOBUF_FIELD_OFFSET(::nsjail::MountPt, _impl_.is_dir_),
        PROTOBUF_FIELD_OFFSET(::nsjail::MountPt, _impl_.mandatory_),
        PROTOBUF_FIELD_OFFSET(::nsjail::MountPt, _impl_.is_symlink_),
        PROTOBUF_FIELD_OFFSET(::nsjail::MountPt, _impl_.nosuid_),
        PROTOBUF_FIELD_OFFSET(::nsjail::MountPt, _impl_.nodev_),
        PROTOBUF_FIELD_OFFSET(::nsjail::MountPt, _impl_.noexec_),
        0,
        1,
        2,
        3,
        4,
        5,
        6,
        7,
        8,
        9,
        14,
        10,
        11,
        12,
        13,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::nsjail::Exe, _impl_._has_bits_),
        7, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::nsjail::Exe, _impl_.path_),
        PROTOBUF_FIELD_OFFSET(::nsjail::Exe, _impl_.arg_),
        PROTOBUF_FIELD_OFFSET(::nsjail::Exe, _impl_.arg0_),
        PROTOBUF_FIELD_OFFSET(::nsjail::Exe, _impl_.exec_fd_),
        1,
        0,
        2,
        3,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig_UserNet, _impl_._has_bits_),
        22, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig_UserNet, _impl_.enable_),
        PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig_UserNet, _impl_.ip_),
        PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig_UserNet, _impl_.mask_),
        PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig_UserNet, _impl_.gw_),
        PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig_UserNet, _impl_.ip6_),
        PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig_UserNet, _impl_.mask6_),
        PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig_UserNet, _impl_.gw6_),
        PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig_UserNet, _impl_.ns_iface_),
        PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig_UserNet, _impl_.tcp_ports_),
        PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig_UserNet, _impl_.udp_ports_),
        PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig_UserNet, _impl_.enable_ip4_dhcp_),
        PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig_UserNet, _impl_.enable_dns_),
        PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig_UserNet, _impl_.dns_forward_),
        PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig_UserNet, _impl_.enable_tcp_),
        PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig_UserNet, _impl_.enable_udp_),
        PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig_UserNet, _impl_.enable_icmp_),
        PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig_UserNet, _impl_.no_map_gw_),
        PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig_UserNet, _impl_.enable_ip6_dhcp_),
        PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig_UserNet, _impl_.enable_ip6_ra_),
        10,
        0,
        1,
        2,
        3,
        4,
        5,
        6,
        7,
        8,
        11,
        12,
        9,
        16,
        17,
        18,
        13,
        14,
        15,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig, _impl_._has_bits_),
        99, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig, _impl_.name_),
        PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig, _impl_.description_),
        PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig, _impl_.mode_),
        PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig, _impl_.hostname_),
        PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig, _impl_.cwd_),
        PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig, _impl_.no_pivotroot_),
        PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig, _impl_.port_),
        PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig, _impl_.bindhost_),
        PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig, _impl_.max_conns_),
        PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig, _impl_.max_conns_per_ip_),
        PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig, _impl_.time_limit_),
        PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig, _impl_.daemon_),
        PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig, _impl_.max_cpus_),
        PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig, _impl_.nice_level_),
        PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig, _impl_.log_fd_),
        PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig, _impl_.log_file_),
        PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig, _impl_.log_level_),
        PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig, _impl_.keep_env_),
        PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig, _impl_.envar_),
        PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig, _impl_.keep_caps_),
        PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig, _impl_.cap_),
        PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig, _impl_.silent_),
        PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig, _impl_.skip_setsid_),
        PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig, _impl_.stderr_to_null_),
        PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig, _impl_.pass_fd_),
        PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig, _impl_.disable_no_new_privs_),
        PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig, _impl_.forward_signals_),
        PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig, _impl_.disable_tsc_),
        PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig, _impl_.rlimit_as_),
        PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig, _impl_.rlimit_as_type_),
        PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig, _impl_.rlimit_core_),
        PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig, _impl_.rlimit_core_type_),
        PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig, _impl_.rlimit_cpu_),
        PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig, _impl_.rlimit_cpu_type_),
        PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig, _impl_.rlimit_fsize_),
        PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig, _impl_.rlimit_fsize_type_),
        PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig, _impl_.rlimit_nofile_),
        PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig, _impl_.rlimit_nofile_type_),
        PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig, _impl_.rlimit_nproc_),
        PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig, _impl_.rlimit_nproc_type_),
        PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig, _impl_.rlimit_stack_),
        PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig, _impl_.rlimit_stack_type_),
        PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig, _impl_.rlimit_memlock_),
        PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig, _impl_.rlimit_memlock_type_),
        PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig, _impl_.rlimit_rtprio_),
        PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig, _impl_.rlimit_rtprio_type_),
        PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig, _impl_.rlimit_msgqueue_),
        PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig, _impl_.rlimit_msgqueue_type_),
        PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig, _impl_.disable_rl_),
        PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig, _impl_.persona_addr_compat_layout_),
        PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig, _impl_.persona_mmap_page_zero_),
        PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig, _impl_.persona_read_implies_exec_),
        PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig, _impl_.persona_addr_limit_3gb_),
        PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig, _impl_.persona_addr_no_randomize_),
        PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig, _impl_.clone_newnet_),
        PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig, _impl_.clone_newuser_),
        PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig, _impl_.clone_newns_),
        PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig, _impl_.clone_newpid_),
        PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig, _impl_.clone_newipc_),
        PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig, _impl_.clone_newuts_),
        PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig, _impl_.clone_newcgroup_),
        PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig, _impl_.clone_newtime_),
        PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig, _impl_.uidmap_),
        PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig, _impl_.gidmap_),
        PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig, _impl_.mount_proc_),
        PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig, _impl_.mount_),
        PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig, _impl_.seccomp_policy_file_),
        PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig, _impl_.seccomp_string_),
        PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig, _impl_.seccomp_log_),
        PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig, _impl_.cgroup_mem_max_),
        PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig, _impl_.cgroup_mem_memsw_max_),
        PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig, _impl_.cgroup_mem_swap_max_),
        PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig, _impl_.cgroup_mem_mount_),
        PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig, _impl_.cgroup_mem_parent_),
        PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig, _impl_.cgroup_pids_max_),
        PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig, _impl_.cgroup_pids_mount_),
        PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig, _impl_.cgroup_pids_parent_),
        PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig, _impl_.cgroup_net_cls_classid_),
        PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig, _impl_.cgroup_net_cls_mount_),
        PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig, _impl_.cgroup_net_cls_parent_),
        PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig, _impl_.cgroup_cpu_ms_per_sec_),
        PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig, _impl_.cgroup_cpu_mount_),
        PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig, _impl_.cgroup_cpu_parent_),
        PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig, _impl_.cgroupv2_mount_),
        PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig, _impl_.use_cgroupv2_),
        PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig, _impl_.detect_cgroupv2_),
        PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig, _impl_.iface_no_lo_),
        PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig, _impl_.iface_own_),
        PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig, _impl_.macvlan_iface_),
        PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig, _impl_.macvlan_vs_ip_),
        PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig, _impl_.macvlan_vs_nm_),
        PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig, _impl_.macvlan_vs_gw_),
        PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig, _impl_.macvlan_vs_ma_),
        PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig, _impl_.macvlan_vs_mo_),
        PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig, _impl_.user_net_),
        PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig, _impl_.exec_bin_),
        4,
        0,
        27,
        5,
        6,
        13,
        9,
        7,
        10,
        11,
        28,
        14,
        12,
        30,
        17,
        8,
        18,
        15,
        1,
        16,
        2,
        19,
        20,
        21,
        3,
        22,
        23,
        24,
        29,
        25,
        26,
        54,
        79,
        55,
        80,
        56,
        81,
        57,
        82,
        84,
        83,
        85,
        86,
        87,
        58,
        88,
        89,
        90,
        59,
        60,
        61,
        62,
        63,
        64,
        91,
        92,
        93,
        94,
        76,
        77,
        78,
        65,
        31,
        32,
        66,
        33,
        36,
        34,
        72,
        67,
        68,
        95,
        37,
        38,
        69,
        39,
        40,
        70,
        41,
        42,
        71,
        43,
        44,
        45,
        73,
        74,
        75,
        35,
        46,
        47,
        48,
        49,
        50,
        51,
        52,
        53,
};

static const ::_pbi::MigrationSchema
    schemas[] ABSL_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
        {0, sizeof(::nsjail::IdMap)},
        {11, sizeof(::nsjail::MountPt)},
        {44, sizeof(::nsjail::Exe)},
        {55, sizeof(::nsjail::NsJailConfig_UserNet)},
        {96, sizeof(::nsjail::NsJailConfig)},
};
static const ::_pbi::MessageGlobalsBase* PROTOBUF_NONNULL const
    file_message_globals[] = {
        &::nsjail::IdMap_globals_,
        &::nsjail::MountPt_globals_,
        &::nsjail::Exe_globals_,
        &::nsjail::NsJailConfig_UserNet_globals_,
        &::nsjail::NsJailConfig_globals_,
};
const char descriptor_table_protodef_config_2eproto[] ABSL_ATTRIBUTE_SECTION_VARIABLE(
    protodesc_cold) = {
    "\n\014config.proto\022\006nsjail\"a\n\005IdMap\022\023\n\tinsid"
    "e_id\030\001 \001(\t:\000\022\024\n\noutside_id\030\002 \001(\t:\000\022\020\n\005co"
    "unt\030\003 \001(\r:\0011\022\033\n\014use_newidmap\030\004 \001(\010:\005fals"
    "e\"\312\002\n\007MountPt\022\r\n\003src\030\001 \001(\t:\000\022\030\n\016prefix_s"
    "rc_env\030\002 \001(\t:\000\022\025\n\013src_content\030\003 \001(\014:\000\022\r\n"
    "\003dst\030\004 \002(\t:\000\022\030\n\016prefix_dst_env\030\005 \001(\t:\000\022\020"
    "\n\006fstype\030\006 \001(\t:\000\022\021\n\007options\030\007 \001(\t:\000\022\026\n\007i"
    "s_bind\030\010 \001(\010:\005false\022\021\n\002rw\030\t \001(\010:\005false\022\016"
    "\n\006is_dir\030\n \001(\010\022\027\n\tmandatory\030\013 \001(\010:\004true\022"
    "\031\n\nis_symlink\030\014 \001(\010:\005false\022\025\n\006nosuid\030\r \001"
    "(\010:\005false\022\024\n\005nodev\030\016 \001(\010:\005false\022\025\n\006noexe"
    "c\030\017 \001(\010:\005false\"F\n\003Exe\022\014\n\004path\030\001 \002(\t\022\013\n\003a"
    "rg\030\002 \003(\t\022\014\n\004arg0\030\003 \001(\t\022\026\n\007exec_fd\030\004 \001(\010:"
    "\005false\"\347\033\n\014NsJailConfig\022\016\n\004name\030\001 \001(\t:\000\022"
    "\023\n\013description\030\002 \003(\t\022 \n\004mode\030\003 \001(\0162\014.nsj"
    "ail.Mode:\004ONCE\022\030\n\010hostname\030\004 \001(\t:\006NSJAIL"
    "\022\016\n\003cwd\030\005 \001(\t:\001/\022\033\n\014no_pivotroot\030\006 \001(\010:\005"
    "false\022\017\n\004port\030\007 \001(\r:\0010\022\024\n\010bindhost\030\010 \001(\t"
    ":\002::\022\024\n\tmax_conns\030\t \001(\r:\0010\022\033\n\020max_conns_"
    "per_ip\030\n \001(\r:\0010\022\027\n\ntime_limit\030\013 \001(\r:\003600"
    "\022\025\n\006daemon\030\014 \001(\010:\005false\022\023\n\010max_cpus\030\r \001("
    "\r:\0010\022\026\n\nnice_level\030\016 \001(\005:\00219\022\016\n\006log_fd\030\017"
    " \001(\005\022\020\n\010log_file\030\020 \001(\t\022#\n\tlog_level\030\021 \001("
    "\0162\020.nsjail.LogLevel\022\027\n\010keep_env\030\022 \001(\010:\005f"
    "alse\022\r\n\005envar\030\023 \003(\t\022\030\n\tkeep_caps\030\024 \001(\010:\005"
    "false\022\013\n\003cap\030\025 \003(\t\022\025\n\006silent\030\026 \001(\010:\005fals"
    "e\022\032\n\013skip_setsid\030\027 \001(\010:\005false\022\035\n\016stderr_"
    "to_null\030\030 \001(\010:\005false\022\017\n\007pass_fd\030\031 \003(\005\022#\n"
    "\024disable_no_new_privs\030\032 \001(\010:\005false\022\036\n\017fo"
    "rward_signals\030\033 \001(\010:\005false\022\032\n\013disable_ts"
    "c\030\034 \001(\010:\005false\022\027\n\trlimit_as\030\035 \001(\004:\0044096\022"
    "-\n\016rlimit_as_type\030\036 \001(\0162\016.nsjail.RLimit:"
    "\005VALUE\022\026\n\013rlimit_core\030\037 \001(\004:\0010\022/\n\020rlimit"
    "_core_type\030  \001(\0162\016.nsjail.RLimit:\005VALUE\022"
    "\027\n\nrlimit_cpu\030! \001(\004:\003600\022.\n\017rlimit_cpu_t"
    "ype\030\" \001(\0162\016.nsjail.RLimit:\005VALUE\022\027\n\014rlim"
    "it_fsize\030# \001(\004:\0011\0220\n\021rlimit_fsize_type\030$"
    " \001(\0162\016.nsjail.RLimit:\005VALUE\022\031\n\rrlimit_no"
    "file\030% \001(\004:\00232\0221\n\022rlimit_nofile_type\030& \001"
    "(\0162\016.nsjail.RLimit:\005VALUE\022\032\n\014rlimit_npro"
    "c\030\' \001(\004:\0041024\022/\n\021rlimit_nproc_type\030( \001(\016"
    "2\016.nsjail.RLimit:\004SOFT\022\027\n\014rlimit_stack\030)"
    " \001(\004:\0018\022/\n\021rlimit_stack_type\030* \001(\0162\016.nsj"
    "ail.RLimit:\004SOFT\022\032\n\016rlimit_memlock\030+ \001(\004"
    ":\00264\0221\n\023rlimit_memlock_type\030, \001(\0162\016.nsja"
    "il.RLimit:\004SOFT\022\030\n\rrlimit_rtprio\030- \001(\004:\001"
    "0\0220\n\022rlimit_rtprio_type\030. \001(\0162\016.nsjail.R"
    "Limit:\004SOFT\022\035\n\017rlimit_msgqueue\030/ \001(\004:\00410"
    "24\0222\n\024rlimit_msgqueue_type\0300 \001(\0162\016.nsjai"
    "l.RLimit:\004SOFT\022\031\n\ndisable_rl\0301 \001(\010:\005fals"
    "e\022)\n\032persona_addr_compat_layout\0302 \001(\010:\005f"
    "alse\022%\n\026persona_mmap_page_zero\0303 \001(\010:\005fa"
    "lse\022(\n\031persona_read_implies_exec\0304 \001(\010:\005"
    "false\022%\n\026persona_addr_limit_3gb\0305 \001(\010:\005f"
    "alse\022(\n\031persona_addr_no_randomize\0306 \001(\010:"
    "\005false\022\032\n\014clone_newnet\0307 \001(\010:\004true\022\033\n\rcl"
    "one_newuser\0308 \001(\010:\004true\022\031\n\013clone_newns\0309"
    " \001(\010:\004true\022\032\n\014clone_newpid\030: \001(\010:\004true\022\032"
    "\n\014clone_newipc\030; \001(\010:\004true\022\032\n\014clone_newu"
    "ts\030< \001(\010:\004true\022\035\n\017clone_newcgroup\030= \001(\010:"
    "\004true\022\034\n\rclone_newtime\030> \001(\010:\005false\022\035\n\006u"
    "idmap\030\? \003(\0132\r.nsjail.IdMap\022\035\n\006gidmap\030@ \003"
    "(\0132\r.nsjail.IdMap\022\031\n\nmount_proc\030A \001(\010:\005f"
    "alse\022\036\n\005mount\030B \003(\0132\017.nsjail.MountPt\022\033\n\023"
    "seccomp_policy_file\030C \001(\t\022\026\n\016seccomp_str"
    "ing\030D \003(\t\022\032\n\013seccomp_log\030E \001(\010:\005false\022\031\n"
    "\016cgroup_mem_max\030F \001(\004:\0010\022\037\n\024cgroup_mem_m"
    "emsw_max\030G \001(\004:\0010\022\037\n\023cgroup_mem_swap_max"
    "\030H \001(\003:\002-1\022/\n\020cgroup_mem_mount\030I \001(\t:\025/s"
    "ys/fs/cgroup/memory\022!\n\021cgroup_mem_parent"
    "\030J \001(\t:\006NSJAIL\022\032\n\017cgroup_pids_max\030K \001(\004:"
    "\0010\022.\n\021cgroup_pids_mount\030L \001(\t:\023/sys/fs/c"
    "group/pids\022\"\n\022cgroup_pids_parent\030M \001(\t:\006"
    "NSJAIL\022!\n\026cgroup_net_cls_classid\030N \001(\r:\001"
    "0\0224\n\024cgroup_net_cls_mount\030O \001(\t:\026/sys/fs"
    "/cgroup/net_cls\022%\n\025cgroup_net_cls_parent"
    "\030P \001(\t:\006NSJAIL\022 \n\025cgroup_cpu_ms_per_sec\030"
    "Q \001(\r:\0010\022,\n\020cgroup_cpu_mount\030R \001(\t:\022/sys"
    "/fs/cgroup/cpu\022!\n\021cgroup_cpu_parent\030S \001("
    "\t:\006NSJAIL\022&\n\016cgroupv2_mount\030T \001(\t:\016/sys/"
    "fs/cgroup\022\033\n\014use_cgroupv2\030U \001(\010:\005false\022\036"
    "\n\017detect_cgroupv2\030V \001(\010:\005false\022\032\n\013iface_"
    "no_lo\030W \001(\010:\005false\022\021\n\tiface_own\030X \003(\t\022\025\n"
    "\rmacvlan_iface\030Y \001(\t\022\"\n\rmacvlan_vs_ip\030Z "
    "\001(\t:\013192.168.0.2\022$\n\rmacvlan_vs_nm\030[ \001(\t:"
    "\r255.255.255.0\022\"\n\rmacvlan_vs_gw\030\\ \001(\t:\0131"
    "92.168.0.1\022\027\n\rmacvlan_vs_ma\030] \001(\t:\000\022\036\n\rm"
    "acvlan_vs_mo\030^ \001(\t:\007private\022.\n\010user_net\030"
    "_ \001(\0132\034.nsjail.NsJailConfig.UserNet\022\035\n\010e"
    "xec_bin\030` \001(\0132\013.nsjail.Exe\032\363\003\n\007UserNet\022\025"
    "\n\006enable\030\001 \001(\010:\005false\022\030\n\002ip\030\002 \001(\t:\01410.25"
    "5.255.2\022\033\n\004mask\030\003 \001(\t:\r255.255.255.0\022\030\n\002"
    "gw\030\004 \001(\t:\01410.255.255.1\022\024\n\003ip6\030\005 \001(\t:\007fc0"
    "0::2\022\021\n\005mask6\030\006 \001(\t:\00264\022\024\n\003gw6\030\007 \001(\t:\007fc"
    "00::1\022\026\n\010ns_iface\030\010 \001(\t:\004eth0\022\027\n\ttcp_por"
    "ts\030\t \001(\t:\004none\022\027\n\tudp_ports\030\n \001(\t:\004none\022"
    "\036\n\017enable_ip4_dhcp\030\013 \001(\010:\005false\022\031\n\nenabl"
    "e_dns\030\014 \001(\010:\005false\022\025\n\013dns_forward\030\r \001(\t:"
    "\000\022\030\n\nenable_tcp\030\016 \001(\010:\004true\022\030\n\nenable_ud"
    "p\030\017 \001(\010:\004true\022\031\n\013enable_icmp\030\020 \001(\010:\004true"
    "\022\030\n\tno_map_gw\030\021 \001(\010:\005false\022\036\n\017enable_ip6"
    "_dhcp\030\022 \001(\010:\005false\022\034\n\renable_ip6_ra\030\023 \001("
    "\010:\005false*3\n\004Mode\022\n\n\006LISTEN\020\000\022\010\n\004ONCE\020\001\022\t"
    "\n\005RERUN\020\002\022\n\n\006EXECVE\020\003*B\n\010LogLevel\022\t\n\005DEB"
    "UG\020\000\022\010\n\004INFO\020\001\022\013\n\007WARNING\020\002\022\t\n\005ERROR\020\003\022\t"
    "\n\005FATAL\020\004*0\n\006RLimit\022\t\n\005VALUE\020\000\022\010\n\004SOFT\020\001"
    "\022\010\n\004HARD\020\002\022\007\n\003INF\020\003"
};
static ::absl::once_flag descriptor_table_config_2eproto_once;
PROTOBUF_CONSTINIT const ::_pbi::DescriptorTable descriptor_table_config_2eproto = {
    false,
    false,
    4259,
    descriptor_table_protodef_config_2eproto,
    "config.proto",
    &descriptor_table_config_2eproto_once,
    nullptr,
    0,
    5,
    schemas,
    file_message_globals,
    TableStruct_config_2eproto::offsets,
    file_level_enum_descriptors_config_2eproto,
    file_level_service_descriptors_config_2eproto,
};
namespace nsjail {
[[nodiscard]] const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL
Mode_descriptor() {
  ::google::protobuf::internal::AssignDescriptors(&descriptor_table_config_2eproto);
  return file_level_enum_descriptors_config_2eproto[0];
}
PROTOBUF_CONSTINIT const uint32_t Mode_internal_data_[] = {
    262144u, 0u, };
[[nodiscard]] const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL
LogLevel_descriptor() {
  ::google::protobuf::internal::AssignDescriptors(&descriptor_table_config_2eproto);
  return file_level_enum_descriptors_config_2eproto[1];
}
PROTOBUF_CONSTINIT const uint32_t LogLevel_internal_data_[] = {
    327680u, 0u, };
[[nodiscard]] const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL
RLimit_descriptor() {
  ::google::protobuf::internal::AssignDescriptors(&descriptor_table_config_2eproto);
  return file_level_enum_descriptors_config_2eproto[2];
}
PROTOBUF_CONSTINIT const uint32_t RLimit_internal_data_[] = {
    262144u, 0u, };
// ===================================================================

IdMap::IdMap(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, IdMap_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:nsjail.IdMap)
}
PROTOBUF_NDEBUG_INLINE IdMap::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::nsjail::IdMap& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        inside_id_(arena, from.inside_id_),
        outside_id_(arena, from.outside_id_) {}

IdMap::IdMap(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const IdMap& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, IdMap_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  IdMap* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::memcpy(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, use_newidmap_),
           reinterpret_cast<const char*>(&from._impl_) +
               offsetof(Impl_, use_newidmap_),
           offsetof(Impl_, count_) -
               offsetof(Impl_, use_newidmap_) +
               sizeof(Impl_::count_));

  // @@protoc_insertion_point(copy_constructor:nsjail.IdMap)
}
PROTOBUF_NDEBUG_INLINE IdMap::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        inside_id_(arena),
        outside_id_(arena),
        count_{1u} {}

inline void IdMap::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  _impl_.use_newidmap_ = {};
}
IdMap::~IdMap() {
  // @@protoc_insertion_point(destructor:nsjail.IdMap)
  SharedDtor(*this);
}
inline void IdMap::SharedDtor(MessageLite& self) {
  IdMap& this_ = static_cast<IdMap&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.inside_id_.Destroy();
  this_._impl_.outside_id_.Destroy();
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull IdMap_class_data_ =
        IdMap::InternalGenerateClassData_(IdMap_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
IdMap::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&IdMap_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(IdMap_class_data_.tc_table);
  return IdMap_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
IdMap::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&IdMap_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&IdMap_globals_));
  return IdMap_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const IdMap::ParseTableT_
    IdMap::_table_ =
        IdMap::InternalGenerateParseTable_(IdMap_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void IdMap::Clear() {
// @@protoc_insertion_point(message_clear_start:nsjail.IdMap)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _impl_.inside_id_.ClearNonDefaultToEmpty();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _impl_.outside_id_.ClearNonDefaultToEmpty();
    }
  }
  if (BatchCheckHasBit(cached_has_bits, 0x0000000cU)) {
    _impl_.use_newidmap_ = false;
    _impl_.count_ = 1u;
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL IdMap::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const IdMap& this_ = static_cast<const IdMap&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL IdMap::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const IdMap& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:nsjail.IdMap)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional string inside_id = 1 [default = ""];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    const ::std::string& _s = this_._internal_inside_id();
    target = stream->WriteStringMaybeAliased(1, _s, target);
  }

  // optional string outside_id = 2 [default = ""];
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    const ::std::string& _s = this_._internal_outside_id();
    target = stream->WriteStringMaybeAliased(2, _s, target);
  }

  // optional uint32 count = 3 [default = 1];
  if (CheckHasBit(cached_has_bits, 0x00000008U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
        3, this_._internal_count(), target);
  }

  // optional bool use_newidmap = 4 [default = false];
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        4, this_._internal_use_newidmap(), target);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:nsjail.IdMap)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t IdMap::ByteSizeLong(const MessageLite& base) {
  const IdMap& this_ = static_cast<const IdMap&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t IdMap::ByteSizeLong() const {
  const IdMap& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:nsjail.IdMap)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  total_size += static_cast<bool>(0x00000004U & cached_has_bits) * 2;
  if (BatchCheckHasBit(cached_has_bits, 0x0000000bU)) {
    // optional string inside_id = 1 [default = ""];
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_inside_id());
    }
    // optional string outside_id = 2 [default = ""];
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_outside_id());
    }
    // optional uint32 count = 3 [default = 1];
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
          this_._internal_count());
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void IdMap::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<IdMap*>(&to_msg);
  auto& from = static_cast<const IdMap&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(class_specific_merge_from_start:nsjail.IdMap)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000000fU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _this->_internal_set_inside_id(from._internal_inside_id());
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _this->_internal_set_outside_id(from._internal_outside_id());
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      _this->_impl_.use_newidmap_ = from._impl_.use_newidmap_;
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      _this->_impl_.count_ = from._impl_.count_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

void IdMap::CopyFrom(const IdMap& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:nsjail.IdMap)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void IdMap::InternalSwap(IdMap* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  auto* arena = GetArena();
  ABSL_DCHECK_EQ(arena, other->GetArena());
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.inside_id_, &other->_impl_.inside_id_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.outside_id_, &other->_impl_.outside_id_, arena);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(IdMap, _impl_.count_)
      + sizeof(IdMap::_impl_.count_)
      - PROTOBUF_FIELD_OFFSET(IdMap, _impl_.use_newidmap_)>(
          reinterpret_cast<char*>(&_impl_.use_newidmap_),
          reinterpret_cast<char*>(&other->_impl_.use_newidmap_));
}

::google::protobuf::Metadata IdMap::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

MountPt::MountPt(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, MountPt_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:nsjail.MountPt)
}
PROTOBUF_NDEBUG_INLINE MountPt::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::nsjail::MountPt& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        src_(arena, from.src_),
        prefix_src_env_(arena, from.prefix_src_env_),
        src_content_(arena, from.src_content_),
        dst_(arena, from.dst_),
        prefix_dst_env_(arena, from.prefix_dst_env_),
        fstype_(arena, from.fstype_),
        options_(arena, from.options_) {}

MountPt::MountPt(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const MountPt& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, MountPt_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  MountPt* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::memcpy(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, is_bind_),
           reinterpret_cast<const char*>(&from._impl_) +
               offsetof(Impl_, is_bind_),
           offsetof(Impl_, mandatory_) -
               offsetof(Impl_, is_bind_) +
               sizeof(Impl_::mandatory_));

  // @@protoc_insertion_point(copy_constructor:nsjail.MountPt)
}
PROTOBUF_NDEBUG_INLINE MountPt::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        src_(arena),
        prefix_src_env_(arena),
        src_content_(arena),
        dst_(arena),
        prefix_dst_env_(arena),
        fstype_(arena),
        options_(arena),
        mandatory_{true} {}

inline void MountPt::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, is_bind_),
           0,
           offsetof(Impl_, noexec_) -
               offsetof(Impl_, is_bind_) +
               sizeof(Impl_::noexec_));
}
MountPt::~MountPt() {
  // @@protoc_insertion_point(destructor:nsjail.MountPt)
  SharedDtor(*this);
}
inline void MountPt::SharedDtor(MessageLite& self) {
  MountPt& this_ = static_cast<MountPt&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.src_.Destroy();
  this_._impl_.prefix_src_env_.Destroy();
  this_._impl_.src_content_.Destroy();
  this_._impl_.dst_.Destroy();
  this_._impl_.prefix_dst_env_.Destroy();
  this_._impl_.fstype_.Destroy();
  this_._impl_.options_.Destroy();
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull MountPt_class_data_ =
        MountPt::InternalGenerateClassData_(MountPt_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
MountPt::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&MountPt_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(MountPt_class_data_.tc_table);
  return MountPt_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
MountPt::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&MountPt_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&MountPt_globals_));
  return MountPt_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const MountPt::ParseTableT_
    MountPt::_table_ =
        MountPt::InternalGenerateParseTable_(MountPt_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void MountPt::Clear() {
// @@protoc_insertion_point(message_clear_start:nsjail.MountPt)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000007fU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _impl_.src_.ClearNonDefaultToEmpty();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _impl_.prefix_src_env_.ClearNonDefaultToEmpty();
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      _impl_.src_content_.ClearNonDefaultToEmpty();
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      _impl_.dst_.ClearNonDefaultToEmpty();
    }
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      _impl_.prefix_dst_env_.ClearNonDefaultToEmpty();
    }
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      _impl_.fstype_.ClearNonDefaultToEmpty();
    }
    if (CheckHasBit(cached_has_bits, 0x00000040U)) {
      _impl_.options_.ClearNonDefaultToEmpty();
    }
  }
  _impl_.is_bind_ = false;
  if (BatchCheckHasBit(cached_has_bits, 0x00007f00U)) {
    ::memset(&_impl_.rw_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.noexec_) -
        reinterpret_cast<char*>(&_impl_.rw_)) + sizeof(_impl_.noexec_));
    _impl_.mandatory_ = true;
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL MountPt::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const MountPt& this_ = static_cast<const MountPt&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL MountPt::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const MountPt& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:nsjail.MountPt)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional string src = 1 [default = ""];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    const ::std::string& _s = this_._internal_src();
    target = stream->WriteStringMaybeAliased(1, _s, target);
  }

  // optional string prefix_src_env = 2 [default = ""];
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    const ::std::string& _s = this_._internal_prefix_src_env();
    target = stream->WriteStringMaybeAliased(2, _s, target);
  }

  // optional bytes src_content = 3 [default = ""];
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    const ::std::string& _s = this_._internal_src_content();
    target = stream->WriteBytesMaybeAliased(3, _s, target);
  }

  // required string dst = 4 [default = ""];
  if (CheckHasBit(cached_has_bits, 0x00000008U)) {
    const ::std::string& _s = this_._internal_dst();
    target = stream->WriteStringMaybeAliased(4, _s, target);
  }

  // optional string prefix_dst_env = 5 [default = ""];
  if (CheckHasBit(cached_has_bits, 0x00000010U)) {
    const ::std::string& _s = this_._internal_prefix_dst_env();
    target = stream->WriteStringMaybeAliased(5, _s, target);
  }

  // optional string fstype = 6 [default = ""];
  if (CheckHasBit(cached_has_bits, 0x00000020U)) {
    const ::std::string& _s = this_._internal_fstype();
    target = stream->WriteStringMaybeAliased(6, _s, target);
  }

  // optional string options = 7 [default = ""];
  if (CheckHasBit(cached_has_bits, 0x00000040U)) {
    const ::std::string& _s = this_._internal_options();
    target = stream->WriteStringMaybeAliased(7, _s, target);
  }

  // optional bool is_bind = 8 [default = false];
  if (CheckHasBit(cached_has_bits, 0x00000080U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        8, this_._internal_is_bind(), target);
  }

  // optional bool rw = 9 [default = false];
  if (CheckHasBit(cached_has_bits, 0x00000100U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        9, this_._internal_rw(), target);
  }

  // optional bool is_dir = 10;
  if (CheckHasBit(cached_has_bits, 0x00000200U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        10, this_._internal_is_dir(), target);
  }

  // optional bool mandatory = 11 [default = true];
  if (CheckHasBit(cached_has_bits, 0x00004000U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        11, this_._internal_mandatory(), target);
  }

  // optional bool is_symlink = 12 [default = false];
  if (CheckHasBit(cached_has_bits, 0x00000400U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        12, this_._internal_is_symlink(), target);
  }

  // optional bool nosuid = 13 [default = false];
  if (CheckHasBit(cached_has_bits, 0x00000800U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        13, this_._internal_nosuid(), target);
  }

  // optional bool nodev = 14 [default = false];
  if (CheckHasBit(cached_has_bits, 0x00001000U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        14, this_._internal_nodev(), target);
  }

  // optional bool noexec = 15 [default = false];
  if (CheckHasBit(cached_has_bits, 0x00002000U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        15, this_._internal_noexec(), target);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:nsjail.MountPt)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t MountPt::ByteSizeLong(const MessageLite& base) {
  const MountPt& this_ = static_cast<const MountPt&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t MountPt::ByteSizeLong() const {
  const MountPt& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:nsjail.MountPt)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  total_size += ::absl::popcount(0x00007f80U & cached_has_bits) * 2;
  if (BatchCheckHasBit(cached_has_bits, 0x00000007U)) {
    // optional string src = 1 [default = ""];
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_src());
    }
    // optional string prefix_src_env = 2 [default = ""];
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_prefix_src_env());
    }
    // optional bytes src_content = 3 [default = ""];
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::BytesSize(
                                      this_._internal_src_content());
    }
  }
   {
    // required string dst = 4 [default = ""];
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_dst());
    }
  }
  if (BatchCheckHasBit(cached_has_bits, 0x00000070U)) {
    // optional string prefix_dst_env = 5 [default = ""];
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_prefix_dst_env());
    }
    // optional string fstype = 6 [default = ""];
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_fstype());
    }
    // optional string options = 7 [default = ""];
    if (CheckHasBit(cached_has_bits, 0x00000040U)) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_options());
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void MountPt::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<MountPt*>(&to_msg);
  auto& from = static_cast<const MountPt&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(class_specific_merge_from_start:nsjail.MountPt)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x000000ffU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _this->_internal_set_src(from._internal_src());
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _this->_internal_set_prefix_src_env(from._internal_prefix_src_env());
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      _this->_internal_set_src_content(from._internal_src_content());
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      _this->_internal_set_dst(from._internal_dst());
    }
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      _this->_internal_set_prefix_dst_env(from._internal_prefix_dst_env());
    }
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      _this->_internal_set_fstype(from._internal_fstype());
    }
    if (CheckHasBit(cached_has_bits, 0x00000040U)) {
      _this->_internal_set_options(from._internal_options());
    }
    if (CheckHasBit(cached_has_bits, 0x00000080U)) {
      _this->_impl_.is_bind_ = from._impl_.is_bind_;
    }
  }
  if (BatchCheckHasBit(cached_has_bits, 0x00007f00U)) {
    if (CheckHasBit(cached_has_bits, 0x00000100U)) {
      _this->_impl_.rw_ = from._impl_.rw_;
    }
    if (CheckHasBit(cached_has_bits, 0x00000200U)) {
      _this->_impl_.is_dir_ = from._impl_.is_dir_;
    }
    if (CheckHasBit(cached_has_bits, 0x00000400U)) {
      _this->_impl_.is_symlink_ = from._impl_.is_symlink_;
    }
    if (CheckHasBit(cached_has_bits, 0x00000800U)) {
      _this->_impl_.nosuid_ = from._impl_.nosuid_;
    }
    if (CheckHasBit(cached_has_bits, 0x00001000U)) {
      _this->_impl_.nodev_ = from._impl_.nodev_;
    }
    if (CheckHasBit(cached_has_bits, 0x00002000U)) {
      _this->_impl_.noexec_ = from._impl_.noexec_;
    }
    if (CheckHasBit(cached_has_bits, 0x00004000U)) {
      _this->_impl_.mandatory_ = from._impl_.mandatory_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

void MountPt::CopyFrom(const MountPt& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:nsjail.MountPt)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

PROTOBUF_NOINLINE bool MountPt::IsInitializedImpl(
    const MessageLite& msg) {
  auto& this_ = static_cast<const MountPt&>(msg);
  if (_Internal::MissingRequiredFields(this_._impl_._has_bits_)) {
    return false;
  }
  return true;
}

void MountPt::InternalSwap(MountPt* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  auto* arena = GetArena();
  ABSL_DCHECK_EQ(arena, other->GetArena());
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.src_, &other->_impl_.src_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.prefix_src_env_, &other->_impl_.prefix_src_env_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.src_content_, &other->_impl_.src_content_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.dst_, &other->_impl_.dst_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.prefix_dst_env_, &other->_impl_.prefix_dst_env_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.fstype_, &other->_impl_.fstype_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.options_, &other->_impl_.options_, arena);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(MountPt, _impl_.mandatory_)
      + sizeof(MountPt::_impl_.mandatory_)
      - PROTOBUF_FIELD_OFFSET(MountPt, _impl_.is_bind_)>(
          reinterpret_cast<char*>(&_impl_.is_bind_),
          reinterpret_cast<char*>(&other->_impl_.is_bind_));
}

::google::protobuf::Metadata MountPt::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

Exe::Exe(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Exe_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:nsjail.Exe)
}
PROTOBUF_NDEBUG_INLINE Exe::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::nsjail::Exe& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        arg_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::nsjail::Exe,
              PROTOBUF_FIELD_OFFSET(::nsjail::Exe, _impl_.arg_)>()
          , from.arg_
        }
        ,
        path_(arena, from.path_),
        arg0_(arena, from.arg0_) {}

Exe::Exe(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const Exe& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Exe_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  Exe* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  _impl_.exec_fd_ = from._impl_.exec_fd_;

  // @@protoc_insertion_point(copy_constructor:nsjail.Exe)
}
PROTOBUF_NDEBUG_INLINE Exe::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        arg_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::nsjail::Exe,
            PROTOBUF_FIELD_OFFSET(::nsjail::Exe, _impl_.arg_)>()
         }
        ,
        path_(arena),
        arg0_(arena) {}

inline void Exe::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  _impl_.exec_fd_ = {};
}
Exe::~Exe() {
  // @@protoc_insertion_point(destructor:nsjail.Exe)
  SharedDtor(*this);
}
inline void Exe::SharedDtor(MessageLite& self) {
  Exe& this_ = static_cast<Exe&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.path_.Destroy();
  this_._impl_.arg0_.Destroy();
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull Exe_class_data_ =
        Exe::InternalGenerateClassData_(Exe_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Exe::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Exe_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(Exe_class_data_.tc_table);
  return Exe_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Exe::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Exe_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&Exe_globals_));
  return Exe_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const Exe::ParseTableT_
    Exe::_table_ =
        Exe::InternalGenerateParseTable_(Exe_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void Exe::Clear() {
// @@protoc_insertion_point(message_clear_start:nsjail.Exe)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000007U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _impl_.arg_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _impl_.path_.ClearNonDefaultToEmpty();
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      _impl_.arg0_.ClearNonDefaultToEmpty();
    }
  }
  _impl_.exec_fd_ = false;
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL Exe::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const Exe& this_ = static_cast<const Exe&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL Exe::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const Exe& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:nsjail.Exe)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // required string path = 1;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    const ::std::string& _s = this_._internal_path();
    target = stream->WriteStringMaybeAliased(1, _s, target);
  }

  // repeated string arg = 2;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    for (int i = 0, n = this_._internal_arg_size(); i < n; ++i) {
      const auto& s = this_._internal_arg().Get(i);
      target = stream->WriteString(2, s, target);
    }
  }

  // optional string arg0 = 3;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    const ::std::string& _s = this_._internal_arg0();
    target = stream->WriteStringMaybeAliased(3, _s, target);
  }

  // optional bool exec_fd = 4 [default = false];
  if (CheckHasBit(cached_has_bits, 0x00000008U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        4, this_._internal_exec_fd(), target);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:nsjail.Exe)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t Exe::ByteSizeLong(const MessageLite& base) {
  const Exe& this_ = static_cast<const Exe&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t Exe::ByteSizeLong() const {
  const Exe& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:nsjail.Exe)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  total_size += static_cast<bool>(0x00000008U & cached_has_bits) * 2;
   {
    // repeated string arg = 2;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size +=
          1 * ::google::protobuf::internal::FromIntSize(this_._internal_arg().size());
      for (int i = 0, n = this_._internal_arg().size(); i < n; ++i) {
        total_size += ::google::protobuf::internal::WireFormatLite::StringSize(
            this_._internal_arg().Get(i));
      }
    }
  }
   {
    // required string path = 1;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_path());
    }
  }
   {
    // optional string arg0 = 3;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_arg0());
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void Exe::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<Exe*>(&to_msg);
  auto& from = static_cast<const Exe&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:nsjail.Exe)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000000fU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _this->_internal_mutable_arg()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_arg());
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _this->_internal_set_path(from._internal_path());
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      _this->_internal_set_arg0(from._internal_arg0());
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      _this->_impl_.exec_fd_ = from._impl_.exec_fd_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

void Exe::CopyFrom(const Exe& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:nsjail.Exe)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

PROTOBUF_NOINLINE bool Exe::IsInitializedImpl(
    const MessageLite& msg) {
  auto& this_ = static_cast<const Exe&>(msg);
  if (_Internal::MissingRequiredFields(this_._impl_._has_bits_)) {
    return false;
  }
  return true;
}

void Exe::InternalSwap(Exe* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  auto* arena = GetArena();
  ABSL_DCHECK_EQ(arena, other->GetArena());
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  _impl_.arg_.InternalSwap(&other->_impl_.arg_);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.path_, &other->_impl_.path_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.arg0_, &other->_impl_.arg0_, arena);
  swap(_impl_.exec_fd_, other->_impl_.exec_fd_);
}

::google::protobuf::Metadata Exe::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

/*static*/ const ::_pbi::LazyString NsJailConfig_UserNet::Impl_::_i_give_permission_to_break_this_code_default_ip_{
    {{"10.255.255.2", 12}},
    {nullptr},
};
/*static*/ const ::_pbi::LazyString NsJailConfig_UserNet::Impl_::_i_give_permission_to_break_this_code_default_mask_{
    {{"255.255.255.0", 13}},
    {nullptr},
};
/*static*/ const ::_pbi::LazyString NsJailConfig_UserNet::Impl_::_i_give_permission_to_break_this_code_default_gw_{
    {{"10.255.255.1", 12}},
    {nullptr},
};
/*static*/ const ::_pbi::LazyString NsJailConfig_UserNet::Impl_::_i_give_permission_to_break_this_code_default_ip6_{
    {{"fc00::2", 7}},
    {nullptr},
};
/*static*/ const ::_pbi::LazyString NsJailConfig_UserNet::Impl_::_i_give_permission_to_break_this_code_default_mask6_{
    {{"64", 2}},
    {nullptr},
};
/*static*/ const ::_pbi::LazyString NsJailConfig_UserNet::Impl_::_i_give_permission_to_break_this_code_default_gw6_{
    {{"fc00::1", 7}},
    {nullptr},
};
/*static*/ const ::_pbi::LazyString NsJailConfig_UserNet::Impl_::_i_give_permission_to_break_this_code_default_ns_iface_{
    {{"eth0", 4}},
    {nullptr},
};
/*static*/ const ::_pbi::LazyString NsJailConfig_UserNet::Impl_::_i_give_permission_to_break_this_code_default_tcp_ports_{
    {{"none", 4}},
    {nullptr},
};
/*static*/ const ::_pbi::LazyString NsJailConfig_UserNet::Impl_::_i_give_permission_to_break_this_code_default_udp_ports_{
    {{"none", 4}},
    {nullptr},
};
NsJailConfig_UserNet::NsJailConfig_UserNet(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, NsJailConfig_UserNet_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:nsjail.NsJailConfig.UserNet)
}
PROTOBUF_NDEBUG_INLINE NsJailConfig_UserNet::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::nsjail::NsJailConfig_UserNet& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        ip_(arena, from.ip_, _i_give_permission_to_break_this_code_default_ip_),
        mask_(arena, from.mask_, _i_give_permission_to_break_this_code_default_mask_),
        gw_(arena, from.gw_, _i_give_permission_to_break_this_code_default_gw_),
        ip6_(arena, from.ip6_, _i_give_permission_to_break_this_code_default_ip6_),
        mask6_(arena, from.mask6_, _i_give_permission_to_break_this_code_default_mask6_),
        gw6_(arena, from.gw6_, _i_give_permission_to_break_this_code_default_gw6_),
        ns_iface_(arena, from.ns_iface_, _i_give_permission_to_break_this_code_default_ns_iface_),
        tcp_ports_(arena, from.tcp_ports_, _i_give_permission_to_break_this_code_default_tcp_ports_),
        udp_ports_(arena, from.udp_ports_, _i_give_permission_to_break_this_code_default_udp_ports_),
        dns_forward_(arena, from.dns_forward_) {}

NsJailConfig_UserNet::NsJailConfig_UserNet(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const NsJailConfig_UserNet& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, NsJailConfig_UserNet_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  NsJailConfig_UserNet* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::memcpy(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, enable_),
           reinterpret_cast<const char*>(&from._impl_) +
               offsetof(Impl_, enable_),
           offsetof(Impl_, enable_icmp_) -
               offsetof(Impl_, enable_) +
               sizeof(Impl_::enable_icmp_));

  // @@protoc_insertion_point(copy_constructor:nsjail.NsJailConfig.UserNet)
}
PROTOBUF_NDEBUG_INLINE NsJailConfig_UserNet::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        ip_(arena, Impl_::_i_give_permission_to_break_this_code_default_ip_),
        mask_(arena, Impl_::_i_give_permission_to_break_this_code_default_mask_),
        gw_(arena, Impl_::_i_give_permission_to_break_this_code_default_gw_),
        ip6_(arena, Impl_::_i_give_permission_to_break_this_code_default_ip6_),
        mask6_(arena, Impl_::_i_give_permission_to_break_this_code_default_mask6_),
        gw6_(arena, Impl_::_i_give_permission_to_break_this_code_default_gw6_),
        ns_iface_(arena, Impl_::_i_give_permission_to_break_this_code_default_ns_iface_),
        tcp_ports_(arena, Impl_::_i_give_permission_to_break_this_code_default_tcp_ports_),
        udp_ports_(arena, Impl_::_i_give_permission_to_break_this_code_default_udp_ports_),
        dns_forward_(arena),
        enable_tcp_{true},
        enable_udp_{true},
        enable_icmp_{true} {}

inline void NsJailConfig_UserNet::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, enable_),
           0,
           offsetof(Impl_, enable_ip6_ra_) -
               offsetof(Impl_, enable_) +
               sizeof(Impl_::enable_ip6_ra_));
}
NsJailConfig_UserNet::~NsJailConfig_UserNet() {
  // @@protoc_insertion_point(destructor:nsjail.NsJailConfig.UserNet)
  SharedDtor(*this);
}
inline void NsJailConfig_UserNet::SharedDtor(MessageLite& self) {
  NsJailConfig_UserNet& this_ = static_cast<NsJailConfig_UserNet&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.ip_.Destroy();
  this_._impl_.mask_.Destroy();
  this_._impl_.gw_.Destroy();
  this_._impl_.ip6_.Destroy();
  this_._impl_.mask6_.Destroy();
  this_._impl_.gw6_.Destroy();
  this_._impl_.ns_iface_.Destroy();
  this_._impl_.tcp_ports_.Destroy();
  this_._impl_.udp_ports_.Destroy();
  this_._impl_.dns_forward_.Destroy();
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull NsJailConfig_UserNet_class_data_ =
        NsJailConfig_UserNet::InternalGenerateClassData_(NsJailConfig_UserNet_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
NsJailConfig_UserNet::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&NsJailConfig_UserNet_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(NsJailConfig_UserNet_class_data_.tc_table);
  return NsJailConfig_UserNet_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
NsJailConfig_UserNet::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&NsJailConfig_UserNet_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&NsJailConfig_UserNet_globals_));
  return NsJailConfig_UserNet_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const NsJailConfig_UserNet::ParseTableT_
    NsJailConfig_UserNet::_table_ =
        NsJailConfig_UserNet::InternalGenerateParseTable_(NsJailConfig_UserNet_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void NsJailConfig_UserNet::Clear() {
// @@protoc_insertion_point(message_clear_start:nsjail.NsJailConfig.UserNet)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x000000ffU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _impl_.ip_.ClearToDefault(::nsjail::NsJailConfig_UserNet::Impl_::_i_give_permission_to_break_this_code_default_ip_, GetArena());
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _impl_.mask_.ClearToDefault(::nsjail::NsJailConfig_UserNet::Impl_::_i_give_permission_to_break_this_code_default_mask_, GetArena());
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      _impl_.gw_.ClearToDefault(::nsjail::NsJailConfig_UserNet::Impl_::_i_give_permission_to_break_this_code_default_gw_, GetArena());
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      _impl_.ip6_.ClearToDefault(::nsjail::NsJailConfig_UserNet::Impl_::_i_give_permission_to_break_this_code_default_ip6_, GetArena());
    }
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      _impl_.mask6_.ClearToDefault(::nsjail::NsJailConfig_UserNet::Impl_::_i_give_permission_to_break_this_code_default_mask6_, GetArena());
    }
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      _impl_.gw6_.ClearToDefault(::nsjail::NsJailConfig_UserNet::Impl_::_i_give_permission_to_break_this_code_default_gw6_, GetArena());
    }
    if (CheckHasBit(cached_has_bits, 0x00000040U)) {
      _impl_.ns_iface_.ClearToDefault(::nsjail::NsJailConfig_UserNet::Impl_::_i_give_permission_to_break_this_code_default_ns_iface_, GetArena());
    }
    if (CheckHasBit(cached_has_bits, 0x00000080U)) {
      _impl_.tcp_ports_.ClearToDefault(::nsjail::NsJailConfig_UserNet::Impl_::_i_give_permission_to_break_this_code_default_tcp_ports_, GetArena());
    }
  }
  if (BatchCheckHasBit(cached_has_bits, 0x00000300U)) {
    if (CheckHasBit(cached_has_bits, 0x00000100U)) {
      _impl_.udp_ports_.ClearToDefault(::nsjail::NsJailConfig_UserNet::Impl_::_i_give_permission_to_break_this_code_default_udp_ports_, GetArena());
    }
    if (CheckHasBit(cached_has_bits, 0x00000200U)) {
      _impl_.dns_forward_.ClearNonDefaultToEmpty();
    }
  }
  if (BatchCheckHasBit(cached_has_bits, 0x0000fc00U)) {
    ::memset(&_impl_.enable_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.enable_ip6_ra_) -
        reinterpret_cast<char*>(&_impl_.enable_)) + sizeof(_impl_.enable_ip6_ra_));
  }
  if (BatchCheckHasBit(cached_has_bits, 0x00070000U)) {
    _impl_.enable_tcp_ = true;
    _impl_.enable_udp_ = true;
    _impl_.enable_icmp_ = true;
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL NsJailConfig_UserNet::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const NsJailConfig_UserNet& this_ = static_cast<const NsJailConfig_UserNet&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL NsJailConfig_UserNet::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const NsJailConfig_UserNet& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:nsjail.NsJailConfig.UserNet)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional bool enable = 1 [default = false];
  if (CheckHasBit(cached_has_bits, 0x00000400U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        1, this_._internal_enable(), target);
  }

  // optional string ip = 2 [default = "10.255.255.2"];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    const ::std::string& _s = this_._internal_ip();
    target = stream->WriteStringMaybeAliased(2, _s, target);
  }

  // optional string mask = 3 [default = "255.255.255.0"];
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    const ::std::string& _s = this_._internal_mask();
    target = stream->WriteStringMaybeAliased(3, _s, target);
  }

  // optional string gw = 4 [default = "10.255.255.1"];
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    const ::std::string& _s = this_._internal_gw();
    target = stream->WriteStringMaybeAliased(4, _s, target);
  }

  // optional string ip6 = 5 [default = "fc00::2"];
  if (CheckHasBit(cached_has_bits, 0x00000008U)) {
    const ::std::string& _s = this_._internal_ip6();
    target = stream->WriteStringMaybeAliased(5, _s, target);
  }

  // optional string mask6 = 6 [default = "64"];
  if (CheckHasBit(cached_has_bits, 0x00000010U)) {
    const ::std::string& _s = this_._internal_mask6();
    target = stream->WriteStringMaybeAliased(6, _s, target);
  }

  // optional string gw6 = 7 [default = "fc00::1"];
  if (CheckHasBit(cached_has_bits, 0x00000020U)) {
    const ::std::string& _s = this_._internal_gw6();
    target = stream->WriteStringMaybeAliased(7, _s, target);
  }

  // optional string ns_iface = 8 [default = "eth0"];
  if (CheckHasBit(cached_has_bits, 0x00000040U)) {
    const ::std::string& _s = this_._internal_ns_iface();
    target = stream->WriteStringMaybeAliased(8, _s, target);
  }

  // optional string tcp_ports = 9 [default = "none"];
  if (CheckHasBit(cached_has_bits, 0x00000080U)) {
    const ::std::string& _s = this_._internal_tcp_ports();
    target = stream->WriteStringMaybeAliased(9, _s, target);
  }

  // optional string udp_ports = 10 [default = "none"];
  if (CheckHasBit(cached_has_bits, 0x00000100U)) {
    const ::std::string& _s = this_._internal_udp_ports();
    target = stream->WriteStringMaybeAliased(10, _s, target);
  }

  // optional bool enable_ip4_dhcp = 11 [default = false];
  if (CheckHasBit(cached_has_bits, 0x00000800U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        11, this_._internal_enable_ip4_dhcp(), target);
  }

  // optional bool enable_dns = 12 [default = false];
  if (CheckHasBit(cached_has_bits, 0x00001000U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        12, this_._internal_enable_dns(), target);
  }

  // optional string dns_forward = 13 [default = ""];
  if (CheckHasBit(cached_has_bits, 0x00000200U)) {
    const ::std::string& _s = this_._internal_dns_forward();
    target = stream->WriteStringMaybeAliased(13, _s, target);
  }

  // optional bool enable_tcp = 14 [default = true];
  if (CheckHasBit(cached_has_bits, 0x00010000U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        14, this_._internal_enable_tcp(), target);
  }

  // optional bool enable_udp = 15 [default = true];
  if (CheckHasBit(cached_has_bits, 0x00020000U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        15, this_._internal_enable_udp(), target);
  }

  // optional bool enable_icmp = 16 [default = true];
  if (CheckHasBit(cached_has_bits, 0x00040000U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        16, this_._internal_enable_icmp(), target);
  }

  // optional bool no_map_gw = 17 [default = false];
  if (CheckHasBit(cached_has_bits, 0x00002000U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        17, this_._internal_no_map_gw(), target);
  }

  // optional bool enable_ip6_dhcp = 18 [default = false];
  if (CheckHasBit(cached_has_bits, 0x00004000U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        18, this_._internal_enable_ip6_dhcp(), target);
  }

  // optional bool enable_ip6_ra = 19 [default = false];
  if (CheckHasBit(cached_has_bits, 0x00008000U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        19, this_._internal_enable_ip6_ra(), target);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:nsjail.NsJailConfig.UserNet)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t NsJailConfig_UserNet::ByteSizeLong(const MessageLite& base) {
  const NsJailConfig_UserNet& this_ = static_cast<const NsJailConfig_UserNet&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t NsJailConfig_UserNet::ByteSizeLong() const {
  const NsJailConfig_UserNet& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:nsjail.NsJailConfig.UserNet)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  total_size += ::absl::popcount(0x0004e000U & cached_has_bits) * 3;
  total_size += ::absl::popcount(0x00031c00U & cached_has_bits) * 2;
  if (BatchCheckHasBit(cached_has_bits, 0x000000ffU)) {
    // optional string ip = 2 [default = "10.255.255.2"];
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_ip());
    }
    // optional string mask = 3 [default = "255.255.255.0"];
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_mask());
    }
    // optional string gw = 4 [default = "10.255.255.1"];
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_gw());
    }
    // optional string ip6 = 5 [default = "fc00::2"];
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_ip6());
    }
    // optional string mask6 = 6 [default = "64"];
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_mask6());
    }
    // optional string gw6 = 7 [default = "fc00::1"];
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_gw6());
    }
    // optional string ns_iface = 8 [default = "eth0"];
    if (CheckHasBit(cached_has_bits, 0x00000040U)) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_ns_iface());
    }
    // optional string tcp_ports = 9 [default = "none"];
    if (CheckHasBit(cached_has_bits, 0x00000080U)) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_tcp_ports());
    }
  }
  if (BatchCheckHasBit(cached_has_bits, 0x00000300U)) {
    // optional string udp_ports = 10 [default = "none"];
    if (CheckHasBit(cached_has_bits, 0x00000100U)) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_udp_ports());
    }
    // optional string dns_forward = 13 [default = ""];
    if (CheckHasBit(cached_has_bits, 0x00000200U)) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_dns_forward());
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void NsJailConfig_UserNet::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<NsJailConfig_UserNet*>(&to_msg);
  auto& from = static_cast<const NsJailConfig_UserNet&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(class_specific_merge_from_start:nsjail.NsJailConfig.UserNet)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x000000ffU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _this->_internal_set_ip(from._internal_ip());
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _this->_internal_set_mask(from._internal_mask());
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      _this->_internal_set_gw(from._internal_gw());
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      _this->_internal_set_ip6(from._internal_ip6());
    }
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      _this->_internal_set_mask6(from._internal_mask6());
    }
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      _this->_internal_set_gw6(from._internal_gw6());
    }
    if (CheckHasBit(cached_has_bits, 0x00000040U)) {
      _this->_internal_set_ns_iface(from._internal_ns_iface());
    }
    if (CheckHasBit(cached_has_bits, 0x00000080U)) {
      _this->_internal_set_tcp_ports(from._internal_tcp_ports());
    }
  }
  if (BatchCheckHasBit(cached_has_bits, 0x0000ff00U)) {
    if (CheckHasBit(cached_has_bits, 0x00000100U)) {
      _this->_internal_set_udp_ports(from._internal_udp_ports());
    }
    if (CheckHasBit(cached_has_bits, 0x00000200U)) {
      _this->_internal_set_dns_forward(from._internal_dns_forward());
    }
    if (CheckHasBit(cached_has_bits, 0x00000400U)) {
      _this->_impl_.enable_ = from._impl_.enable_;
    }
    if (CheckHasBit(cached_has_bits, 0x00000800U)) {
      _this->_impl_.enable_ip4_dhcp_ = from._impl_.enable_ip4_dhcp_;
    }
    if (CheckHasBit(cached_has_bits, 0x00001000U)) {
      _this->_impl_.enable_dns_ = from._impl_.enable_dns_;
    }
    if (CheckHasBit(cached_has_bits, 0x00002000U)) {
      _this->_impl_.no_map_gw_ = from._impl_.no_map_gw_;
    }
    if (CheckHasBit(cached_has_bits, 0x00004000U)) {
      _this->_impl_.enable_ip6_dhcp_ = from._impl_.enable_ip6_dhcp_;
    }
    if (CheckHasBit(cached_has_bits, 0x00008000U)) {
      _this->_impl_.enable_ip6_ra_ = from._impl_.enable_ip6_ra_;
    }
  }
  if (BatchCheckHasBit(cached_has_bits, 0x00070000U)) {
    if (CheckHasBit(cached_has_bits, 0x00010000U)) {
      _this->_impl_.enable_tcp_ = from._impl_.enable_tcp_;
    }
    if (CheckHasBit(cached_has_bits, 0x00020000U)) {
      _this->_impl_.enable_udp_ = from._impl_.enable_udp_;
    }
    if (CheckHasBit(cached_has_bits, 0x00040000U)) {
      _this->_impl_.enable_icmp_ = from._impl_.enable_icmp_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

void NsJailConfig_UserNet::CopyFrom(const NsJailConfig_UserNet& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:nsjail.NsJailConfig.UserNet)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void NsJailConfig_UserNet::InternalSwap(NsJailConfig_UserNet* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  auto* arena = GetArena();
  ABSL_DCHECK_EQ(arena, other->GetArena());
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.ip_, &other->_impl_.ip_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.mask_, &other->_impl_.mask_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.gw_, &other->_impl_.gw_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.ip6_, &other->_impl_.ip6_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.mask6_, &other->_impl_.mask6_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.gw6_, &other->_impl_.gw6_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.ns_iface_, &other->_impl_.ns_iface_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.tcp_ports_, &other->_impl_.tcp_ports_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.udp_ports_, &other->_impl_.udp_ports_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.dns_forward_, &other->_impl_.dns_forward_, arena);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(NsJailConfig_UserNet, _impl_.enable_icmp_)
      + sizeof(NsJailConfig_UserNet::_impl_.enable_icmp_)
      - PROTOBUF_FIELD_OFFSET(NsJailConfig_UserNet, _impl_.enable_)>(
          reinterpret_cast<char*>(&_impl_.enable_),
          reinterpret_cast<char*>(&other->_impl_.enable_));
}

::google::protobuf::Metadata NsJailConfig_UserNet::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

/*static*/ const ::_pbi::LazyString NsJailConfig::Impl_::_i_give_permission_to_break_this_code_default_hostname_{
    {{"NSJAIL", 6}},
    {nullptr},
};
/*static*/ const ::_pbi::LazyString NsJailConfig::Impl_::_i_give_permission_to_break_this_code_default_cwd_{
    {{"/", 1}},
    {nullptr},
};
/*static*/ const ::_pbi::LazyString NsJailConfig::Impl_::_i_give_permission_to_break_this_code_default_bindhost_{
    {{"::", 2}},
    {nullptr},
};
/*static*/ const ::_pbi::LazyString NsJailConfig::Impl_::_i_give_permission_to_break_this_code_default_cgroup_mem_mount_{
    {{"/sys/fs/cgroup/memory", 21}},
    {nullptr},
};
/*static*/ const ::_pbi::LazyString NsJailConfig::Impl_::_i_give_permission_to_break_this_code_default_cgroup_mem_parent_{
    {{"NSJAIL", 6}},
    {nullptr},
};
/*static*/ const ::_pbi::LazyString NsJailConfig::Impl_::_i_give_permission_to_break_this_code_default_cgroup_pids_mount_{
    {{"/sys/fs/cgroup/pids", 19}},
    {nullptr},
};
/*static*/ const ::_pbi::LazyString NsJailConfig::Impl_::_i_give_permission_to_break_this_code_default_cgroup_pids_parent_{
    {{"NSJAIL", 6}},
    {nullptr},
};
/*static*/ const ::_pbi::LazyString NsJailConfig::Impl_::_i_give_permission_to_break_this_code_default_cgroup_net_cls_mount_{
    {{"/sys/fs/cgroup/net_cls", 22}},
    {nullptr},
};
/*static*/ const ::_pbi::LazyString NsJailConfig::Impl_::_i_give_permission_to_break_this_code_default_cgroup_net_cls_parent_{
    {{"NSJAIL", 6}},
    {nullptr},
};
/*static*/ const ::_pbi::LazyString NsJailConfig::Impl_::_i_give_permission_to_break_this_code_default_cgroup_cpu_mount_{
    {{"/sys/fs/cgroup/cpu", 18}},
    {nullptr},
};
/*static*/ const ::_pbi::LazyString NsJailConfig::Impl_::_i_give_permission_to_break_this_code_default_cgroup_cpu_parent_{
    {{"NSJAIL", 6}},
    {nullptr},
};
/*static*/ const ::_pbi::LazyString NsJailConfig::Impl_::_i_give_permission_to_break_this_code_default_cgroupv2_mount_{
    {{"/sys/fs/cgroup", 14}},
    {nullptr},
};
/*static*/ const ::_pbi::LazyString NsJailConfig::Impl_::_i_give_permission_to_break_this_code_default_macvlan_vs_ip_{
    {{"192.168.0.2", 11}},
    {nullptr},
};
/*static*/ const ::_pbi::LazyString NsJailConfig::Impl_::_i_give_permission_to_break_this_code_default_macvlan_vs_nm_{
    {{"255.255.255.0", 13}},
    {nullptr},
};
/*static*/ const ::_pbi::LazyString NsJailConfig::Impl_::_i_give_permission_to_break_this_code_default_macvlan_vs_gw_{
    {{"192.168.0.1", 11}},
    {nullptr},
};
/*static*/ const ::_pbi::LazyString NsJailConfig::Impl_::_i_give_permission_to_break_this_code_default_macvlan_vs_mo_{
    {{"private", 7}},
    {nullptr},
};
NsJailConfig::NsJailConfig(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, NsJailConfig_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:nsjail.NsJailConfig)
}
PROTOBUF_NDEBUG_INLINE NsJailConfig::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::nsjail::NsJailConfig& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        description_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::nsjail::NsJailConfig,
              PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig, _impl_.description_)>()
          , from.description_
        }
        ,
        envar_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::nsjail::NsJailConfig,
              PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig, _impl_.envar_)>()
          , from.envar_
        }
        ,
        cap_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::nsjail::NsJailConfig,
              PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig, _impl_.cap_)>()
          , from.cap_
        }
        ,
        pass_fd_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::nsjail::NsJailConfig,
              PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig, _impl_.pass_fd_)>()
          , from.pass_fd_
        }
        ,
        name_(arena, from.name_),
        hostname_(arena, from.hostname_, _i_give_permission_to_break_this_code_default_hostname_),
        cwd_(arena, from.cwd_, _i_give_permission_to_break_this_code_default_cwd_),
        bindhost_(arena, from.bindhost_, _i_give_permission_to_break_this_code_default_bindhost_),
        log_file_(arena, from.log_file_),
        uidmap_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::nsjail::NsJailConfig,
              PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig, _impl_.uidmap_)>()
          , from.uidmap_
        }
        ,
        gidmap_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::nsjail::NsJailConfig,
              PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig, _impl_.gidmap_)>()
          , from.gidmap_
        }
        ,
        mount_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::nsjail::NsJailConfig,
              PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig, _impl_.mount_)>()
          , from.mount_
        }
        ,
        seccomp_string_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::nsjail::NsJailConfig,
              PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig, _impl_.seccomp_string_)>()
          , from.seccomp_string_
        }
        ,
        iface_own_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::nsjail::NsJailConfig,
              PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig, _impl_.iface_own_)>()
          , from.iface_own_
        }
        ,
        seccomp_policy_file_(arena, from.seccomp_policy_file_),
        cgroup_mem_mount_(arena, from.cgroup_mem_mount_, _i_give_permission_to_break_this_code_default_cgroup_mem_mount_),
        cgroup_mem_parent_(arena, from.cgroup_mem_parent_, _i_give_permission_to_break_this_code_default_cgroup_mem_parent_),
        cgroup_pids_mount_(arena, from.cgroup_pids_mount_, _i_give_permission_to_break_this_code_default_cgroup_pids_mount_),
        cgroup_pids_parent_(arena, from.cgroup_pids_parent_, _i_give_permission_to_break_this_code_default_cgroup_pids_parent_),
        cgroup_net_cls_mount_(arena, from.cgroup_net_cls_mount_, _i_give_permission_to_break_this_code_default_cgroup_net_cls_mount_),
        cgroup_net_cls_parent_(arena, from.cgroup_net_cls_parent_, _i_give_permission_to_break_this_code_default_cgroup_net_cls_parent_),
        cgroup_cpu_mount_(arena, from.cgroup_cpu_mount_, _i_give_permission_to_break_this_code_default_cgroup_cpu_mount_),
        cgroup_cpu_parent_(arena, from.cgroup_cpu_parent_, _i_give_permission_to_break_this_code_default_cgroup_cpu_parent_),
        cgroupv2_mount_(arena, from.cgroupv2_mount_, _i_give_permission_to_break_this_code_default_cgroupv2_mount_),
        macvlan_iface_(arena, from.macvlan_iface_),
        macvlan_vs_ip_(arena, from.macvlan_vs_ip_, _i_give_permission_to_break_this_code_default_macvlan_vs_ip_),
        macvlan_vs_nm_(arena, from.macvlan_vs_nm_, _i_give_permission_to_break_this_code_default_macvlan_vs_nm_),
        macvlan_vs_gw_(arena, from.macvlan_vs_gw_, _i_give_permission_to_break_this_code_default_macvlan_vs_gw_),
        macvlan_vs_ma_(arena, from.macvlan_vs_ma_),
        macvlan_vs_mo_(arena, from.macvlan_vs_mo_, _i_give_permission_to_break_this_code_default_macvlan_vs_mo_) {}

NsJailConfig::NsJailConfig(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const NsJailConfig& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, NsJailConfig_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  NsJailConfig* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::memcpy(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, port_),
           reinterpret_cast<const char*>(&from._impl_) +
               offsetof(Impl_, port_),
           offsetof(Impl_, nice_level_) -
               offsetof(Impl_, port_) +
               sizeof(Impl_::nice_level_));
  ::uint32_t cached_has_bits = _impl_._has_bits_[1];
  _impl_.user_net_ = (CheckHasBit(cached_has_bits, 0x00100000U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.user_net_)
                : nullptr;
  _impl_.exec_bin_ = (CheckHasBit(cached_has_bits, 0x00200000U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.exec_bin_)
                : nullptr;
  ::memcpy(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, rlimit_core_type_),
           reinterpret_cast<const char*>(&from._impl_) +
               offsetof(Impl_, rlimit_core_type_),
           offsetof(Impl_, cgroup_mem_swap_max_) -
               offsetof(Impl_, rlimit_core_type_) +
               sizeof(Impl_::cgroup_mem_swap_max_));

  // @@protoc_insertion_point(copy_constructor:nsjail.NsJailConfig)
}
PROTOBUF_NDEBUG_INLINE NsJailConfig::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        description_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::nsjail::NsJailConfig,
            PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig, _impl_.description_)>()
         }
        ,
        envar_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::nsjail::NsJailConfig,
            PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig, _impl_.envar_)>()
         }
        ,
        cap_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::nsjail::NsJailConfig,
            PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig, _impl_.cap_)>()
         }
        ,
        pass_fd_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::nsjail::NsJailConfig,
            PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig, _impl_.pass_fd_)>()
         }
        ,
        name_(arena),
        hostname_(arena, Impl_::_i_give_permission_to_break_this_code_default_hostname_),
        cwd_(arena, Impl_::_i_give_permission_to_break_this_code_default_cwd_),
        bindhost_(arena, Impl_::_i_give_permission_to_break_this_code_default_bindhost_),
        log_file_(arena),
        mode_{static_cast< ::nsjail::Mode >(1)},
        time_limit_{600u},
        rlimit_as_{::uint64_t{4096u}},
        nice_level_{19},
        uidmap_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::nsjail::NsJailConfig,
            PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig, _impl_.uidmap_)>()
         }
        ,
        gidmap_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::nsjail::NsJailConfig,
            PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig, _impl_.gidmap_)>()
         }
        ,
        mount_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::nsjail::NsJailConfig,
            PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig, _impl_.mount_)>()
         }
        ,
        seccomp_string_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::nsjail::NsJailConfig,
            PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig, _impl_.seccomp_string_)>()
         }
        ,
        iface_own_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::nsjail::NsJailConfig,
            PROTOBUF_FIELD_OFFSET(::nsjail::NsJailConfig, _impl_.iface_own_)>()
         }
        ,
        seccomp_policy_file_(arena),
        cgroup_mem_mount_(arena, Impl_::_i_give_permission_to_break_this_code_default_cgroup_mem_mount_),
        cgroup_mem_parent_(arena, Impl_::_i_give_permission_to_break_this_code_default_cgroup_mem_parent_),
        cgroup_pids_mount_(arena, Impl_::_i_give_permission_to_break_this_code_default_cgroup_pids_mount_),
        cgroup_pids_parent_(arena, Impl_::_i_give_permission_to_break_this_code_default_cgroup_pids_parent_),
        cgroup_net_cls_mount_(arena, Impl_::_i_give_permission_to_break_this_code_default_cgroup_net_cls_mount_),
        cgroup_net_cls_parent_(arena, Impl_::_i_give_permission_to_break_this_code_default_cgroup_net_cls_parent_),
        cgroup_cpu_mount_(arena, Impl_::_i_give_permission_to_break_this_code_default_cgroup_cpu_mount_),
        cgroup_cpu_parent_(arena, Impl_::_i_give_permission_to_break_this_code_default_cgroup_cpu_parent_),
        cgroupv2_mount_(arena, Impl_::_i_give_permission_to_break_this_code_default_cgroupv2_mount_),
        macvlan_iface_(arena),
        macvlan_vs_ip_(arena, Impl_::_i_give_permission_to_break_this_code_default_macvlan_vs_ip_),
        macvlan_vs_nm_(arena, Impl_::_i_give_permission_to_break_this_code_default_macvlan_vs_nm_),
        macvlan_vs_gw_(arena, Impl_::_i_give_permission_to_break_this_code_default_macvlan_vs_gw_),
        macvlan_vs_ma_(arena),
        macvlan_vs_mo_(arena, Impl_::_i_give_permission_to_break_this_code_default_macvlan_vs_mo_),
        clone_newipc_{true},
        clone_newuts_{true},
        clone_newcgroup_{true},
        rlimit_cpu_{::uint64_t{600u}},
        rlimit_fsize_{::uint64_t{1u}},
        rlimit_nofile_{::uint64_t{32u}},
        rlimit_nproc_{::uint64_t{1024u}},
        rlimit_stack_{::uint64_t{8u}},
        rlimit_nproc_type_{static_cast< ::nsjail::RLimit >(1)},
        rlimit_stack_type_{static_cast< ::nsjail::RLimit >(1)},
        rlimit_memlock_{::uint64_t{64u}},
        rlimit_memlock_type_{static_cast< ::nsjail::RLimit >(1)},
        rlimit_rtprio_type_{static_cast< ::nsjail::RLimit >(1)},
        rlimit_msgqueue_{::uint64_t{1024u}},
        rlimit_msgqueue_type_{static_cast< ::nsjail::RLimit >(1)},
        clone_newnet_{true},
        clone_newuser_{true},
        clone_newns_{true},
        clone_newpid_{true},
        cgroup_mem_swap_max_{::int64_t{-1}} {}

inline void NsJailConfig::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, port_),
           0,
           offsetof(Impl_, rlimit_core_) -
               offsetof(Impl_, port_) +
               sizeof(Impl_::rlimit_core_));
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, user_net_),
           0,
           offsetof(Impl_, iface_no_lo_) -
               offsetof(Impl_, user_net_) +
               sizeof(Impl_::iface_no_lo_));
}
NsJailConfig::~NsJailConfig() {
  // @@protoc_insertion_point(destructor:nsjail.NsJailConfig)
  SharedDtor(*this);
}
inline void NsJailConfig::SharedDtor(MessageLite& self) {
  NsJailConfig& this_ = static_cast<NsJailConfig&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.name_.Destroy();
  this_._impl_.hostname_.Destroy();
  this_._impl_.cwd_.Destroy();
  this_._impl_.bindhost_.Destroy();
  this_._impl_.log_file_.Destroy();
  this_._impl_.seccomp_policy_file_.Destroy();
  this_._impl_.cgroup_mem_mount_.Destroy();
  this_._impl_.cgroup_mem_parent_.Destroy();
  this_._impl_.cgroup_pids_mount_.Destroy();
  this_._impl_.cgroup_pids_parent_.Destroy();
  this_._impl_.cgroup_net_cls_mount_.Destroy();
  this_._impl_.cgroup_net_cls_parent_.Destroy();
  this_._impl_.cgroup_cpu_mount_.Destroy();
  this_._impl_.cgroup_cpu_parent_.Destroy();
  this_._impl_.cgroupv2_mount_.Destroy();
  this_._impl_.macvlan_iface_.Destroy();
  this_._impl_.macvlan_vs_ip_.Destroy();
  this_._impl_.macvlan_vs_nm_.Destroy();
  this_._impl_.macvlan_vs_gw_.Destroy();
  this_._impl_.macvlan_vs_ma_.Destroy();
  this_._impl_.macvlan_vs_mo_.Destroy();
  delete this_._impl_.user_net_;
  delete this_._impl_.exec_bin_;
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull NsJailConfig_class_data_ =
        NsJailConfig::InternalGenerateClassData_(NsJailConfig_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
NsJailConfig::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&NsJailConfig_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(NsJailConfig_class_data_.tc_table);
  return NsJailConfig_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
NsJailConfig::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&NsJailConfig_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&NsJailConfig_globals_));
  return NsJailConfig_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const NsJailConfig::ParseTableT_
    NsJailConfig::_table_ =
        NsJailConfig::InternalGenerateParseTable_(NsJailConfig_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void NsJailConfig::Clear() {
// @@protoc_insertion_point(message_clear_start:nsjail.NsJailConfig)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x000000ffU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _impl_.description_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _impl_.envar_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      _impl_.cap_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      _impl_.pass_fd_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      _impl_.name_.ClearNonDefaultToEmpty();
    }
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      _impl_.hostname_.ClearToDefault(::nsjail::NsJailConfig::Impl_::_i_give_permission_to_break_this_code_default_hostname_, GetArena());
    }
    if (CheckHasBit(cached_has_bits, 0x00000040U)) {
      _impl_.cwd_.ClearToDefault(::nsjail::NsJailConfig::Impl_::_i_give_permission_to_break_this_code_default_cwd_, GetArena());
    }
    if (CheckHasBit(cached_has_bits, 0x00000080U)) {
      _impl_.bindhost_.ClearToDefault(::nsjail::NsJailConfig::Impl_::_i_give_permission_to_break_this_code_default_bindhost_, GetArena());
    }
  }
  if (CheckHasBit(cached_has_bits, 0x00000100U)) {
    _impl_.log_file_.ClearNonDefaultToEmpty();
  }
  if (BatchCheckHasBit(cached_has_bits, 0x0000fe00U)) {
    ::memset(&_impl_.port_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.keep_env_) -
        reinterpret_cast<char*>(&_impl_.port_)) + sizeof(_impl_.keep_env_));
  }
  if (BatchCheckHasBit(cached_has_bits, 0x00ff0000U)) {
    ::memset(&_impl_.keep_caps_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.forward_signals_) -
        reinterpret_cast<char*>(&_impl_.keep_caps_)) + sizeof(_impl_.forward_signals_));
  }
  if (BatchCheckHasBit(cached_has_bits, 0xff000000U)) {
    ::memset(&_impl_.disable_tsc_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.rlimit_core_) -
        reinterpret_cast<char*>(&_impl_.disable_tsc_)) + sizeof(_impl_.rlimit_core_));
    _impl_.mode_ = 1;
    _impl_.time_limit_ = 600u;
    _impl_.rlimit_as_ = ::uint64_t{4096u};
    _impl_.nice_level_ = 19;
    if (CheckHasBit(cached_has_bits, 0x80000000U)) {
      _impl_.uidmap_.Clear();
    }
  }
  cached_has_bits = _impl_._has_bits_[1];
  if (BatchCheckHasBit(cached_has_bits, 0x000000ffU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _impl_.gidmap_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _impl_.mount_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      _impl_.seccomp_string_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      _impl_.iface_own_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      _impl_.seccomp_policy_file_.ClearNonDefaultToEmpty();
    }
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      _impl_.cgroup_mem_mount_.ClearToDefault(::nsjail::NsJailConfig::Impl_::_i_give_permission_to_break_this_code_default_cgroup_mem_mount_, GetArena());
    }
    if (CheckHasBit(cached_has_bits, 0x00000040U)) {
      _impl_.cgroup_mem_parent_.ClearToDefault(::nsjail::NsJailConfig::Impl_::_i_give_permission_to_break_this_code_default_cgroup_mem_parent_, GetArena());
    }
    if (CheckHasBit(cached_has_bits, 0x00000080U)) {
      _impl_.cgroup_pids_mount_.ClearToDefault(::nsjail::NsJailConfig::Impl_::_i_give_permission_to_break_this_code_default_cgroup_pids_mount_, GetArena());
    }
  }
  if (BatchCheckHasBit(cached_has_bits, 0x0000ff00U)) {
    if (CheckHasBit(cached_has_bits, 0x00000100U)) {
      _impl_.cgroup_pids_parent_.ClearToDefault(::nsjail::NsJailConfig::Impl_::_i_give_permission_to_break_this_code_default_cgroup_pids_parent_, GetArena());
    }
    if (CheckHasBit(cached_has_bits, 0x00000200U)) {
      _impl_.cgroup_net_cls_mount_.ClearToDefault(::nsjail::NsJailConfig::Impl_::_i_give_permission_to_break_this_code_default_cgroup_net_cls_mount_, GetArena());
    }
    if (CheckHasBit(cached_has_bits, 0x00000400U)) {
      _impl_.cgroup_net_cls_parent_.ClearToDefault(::nsjail::NsJailConfig::Impl_::_i_give_permission_to_break_this_code_default_cgroup_net_cls_parent_, GetArena());
    }
    if (CheckHasBit(cached_has_bits, 0x00000800U)) {
      _impl_.cgroup_cpu_mount_.ClearToDefault(::nsjail::NsJailConfig::Impl_::_i_give_permission_to_break_this_code_default_cgroup_cpu_mount_, GetArena());
    }
    if (CheckHasBit(cached_has_bits, 0x00001000U)) {
      _impl_.cgroup_cpu_parent_.ClearToDefault(::nsjail::NsJailConfig::Impl_::_i_give_permission_to_break_this_code_default_cgroup_cpu_parent_, GetArena());
    }
    if (CheckHasBit(cached_has_bits, 0x00002000U)) {
      _impl_.cgroupv2_mount_.ClearToDefault(::nsjail::NsJailConfig::Impl_::_i_give_permission_to_break_this_code_default_cgroupv2_mount_, GetArena());
    }
    if (CheckHasBit(cached_has_bits, 0x00004000U)) {
      _impl_.macvlan_iface_.ClearNonDefaultToEmpty();
    }
    if (CheckHasBit(cached_has_bits, 0x00008000U)) {
      _impl_.macvlan_vs_ip_.ClearToDefault(::nsjail::NsJailConfig::Impl_::_i_give_permission_to_break_this_code_default_macvlan_vs_ip_, GetArena());
    }
  }
  if (BatchCheckHasBit(cached_has_bits, 0x003f0000U)) {
    if (CheckHasBit(cached_has_bits, 0x00010000U)) {
      _impl_.macvlan_vs_nm_.ClearToDefault(::nsjail::NsJailConfig::Impl_::_i_give_permission_to_break_this_code_default_macvlan_vs_nm_, GetArena());
    }
    if (CheckHasBit(cached_has_bits, 0x00020000U)) {
      _impl_.macvlan_vs_gw_.ClearToDefault(::nsjail::NsJailConfig::Impl_::_i_give_permission_to_break_this_code_default_macvlan_vs_gw_, GetArena());
    }
    if (CheckHasBit(cached_has_bits, 0x00040000U)) {
      _impl_.macvlan_vs_ma_.ClearNonDefaultToEmpty();
    }
    if (CheckHasBit(cached_has_bits, 0x00080000U)) {
      _impl_.macvlan_vs_mo_.ClearToDefault(::nsjail::NsJailConfig::Impl_::_i_give_permission_to_break_this_code_default_macvlan_vs_mo_, GetArena());
    }
    if (CheckHasBit(cached_has_bits, 0x00100000U)) {
      ABSL_DCHECK(_impl_.user_net_ != nullptr);
      _impl_.user_net_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00200000U)) {
      ABSL_DCHECK(_impl_.exec_bin_ != nullptr);
      _impl_.exec_bin_->Clear();
    }
  }
  if (BatchCheckHasBit(cached_has_bits, 0x00c00000U)) {
    ::memset(&_impl_.rlimit_core_type_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.rlimit_cpu_type_) -
        reinterpret_cast<char*>(&_impl_.rlimit_core_type_)) + sizeof(_impl_.rlimit_cpu_type_));
  }
  if (BatchCheckHasBit(cached_has_bits, 0xff000000U)) {
    ::memset(&_impl_.rlimit_fsize_type_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.persona_addr_limit_3gb_) -
        reinterpret_cast<char*>(&_impl_.rlimit_fsize_type_)) + sizeof(_impl_.persona_addr_limit_3gb_));
  }
  cached_has_bits = _impl_._has_bits_[2];
  if (BatchCheckHasBit(cached_has_bits, 0x000000ffU)) {
    ::memset(&_impl_.persona_addr_no_randomize_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.cgroup_cpu_ms_per_sec_) -
        reinterpret_cast<char*>(&_impl_.persona_addr_no_randomize_)) + sizeof(_impl_.cgroup_cpu_ms_per_sec_));
  }
  if (BatchCheckHasBit(cached_has_bits, 0x0000ff00U)) {
    ::memset(&_impl_.seccomp_log_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.iface_no_lo_) -
        reinterpret_cast<char*>(&_impl_.seccomp_log_)) + sizeof(_impl_.iface_no_lo_));
    _impl_.clone_newipc_ = true;
    _impl_.clone_newuts_ = true;
    _impl_.clone_newcgroup_ = true;
    _impl_.rlimit_cpu_ = ::uint64_t{600u};
  }
  if (BatchCheckHasBit(cached_has_bits, 0x00ff0000U)) {
    _impl_.rlimit_fsize_ = ::uint64_t{1u};
    _impl_.rlimit_nofile_ = ::uint64_t{32u};
    _impl_.rlimit_nproc_ = ::uint64_t{1024u};
    _impl_.rlimit_stack_ = ::uint64_t{8u};
    _impl_.rlimit_nproc_type_ = 1;
    _impl_.rlimit_stack_type_ = 1;
    _impl_.rlimit_memlock_ = ::uint64_t{64u};
    _impl_.rlimit_memlock_type_ = 1;
  }
  if (BatchCheckHasBit(cached_has_bits, 0xff000000U)) {
    _impl_.rlimit_rtprio_type_ = 1;
    _impl_.rlimit_msgqueue_ = ::uint64_t{1024u};
    _impl_.rlimit_msgqueue_type_ = 1;
    _impl_.clone_newnet_ = true;
    _impl_.clone_newuser_ = true;
    _impl_.clone_newns_ = true;
    _impl_.clone_newpid_ = true;
    _impl_.cgroup_mem_swap_max_ = ::int64_t{-1};
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL NsJailConfig::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const NsJailConfig& this_ = static_cast<const NsJailConfig&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL NsJailConfig::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const NsJailConfig& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:nsjail.NsJailConfig)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional string name = 1 [default = ""];
  if (CheckHasBit(cached_has_bits, 0x00000010U)) {
    const ::std::string& _s = this_._internal_name();
    target = stream->WriteStringMaybeAliased(1, _s, target);
  }

  // repeated string description = 2;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    for (int i = 0, n = this_._internal_description_size(); i < n; ++i) {
      const auto& s = this_._internal_description().Get(i);
      target = stream->WriteString(2, s, target);
    }
  }

  // optional .nsjail.Mode mode = 3 [default = ONCE];
  if (CheckHasBit(cached_has_bits, 0x08000000U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
        3, this_._internal_mode(), target);
  }

  // optional string hostname = 4 [default = "NSJAIL"];
  if (CheckHasBit(cached_has_bits, 0x00000020U)) {
    const ::std::string& _s = this_._internal_hostname();
    target = stream->WriteStringMaybeAliased(4, _s, target);
  }

  // optional string cwd = 5 [default = "/"];
  if (CheckHasBit(cached_has_bits, 0x00000040U)) {
    const ::std::string& _s = this_._internal_cwd();
    target = stream->WriteStringMaybeAliased(5, _s, target);
  }

  // optional bool no_pivotroot = 6 [default = false];
  if (CheckHasBit(cached_has_bits, 0x00002000U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        6, this_._internal_no_pivotroot(), target);
  }

  // optional uint32 port = 7 [default = 0];
  if (CheckHasBit(cached_has_bits, 0x00000200U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
        7, this_._internal_port(), target);
  }

  // optional string bindhost = 8 [default = "::"];
  if (CheckHasBit(cached_has_bits, 0x00000080U)) {
    const ::std::string& _s = this_._internal_bindhost();
    target = stream->WriteStringMaybeAliased(8, _s, target);
  }

  // optional uint32 max_conns = 9 [default = 0];
  if (CheckHasBit(cached_has_bits, 0x00000400U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
        9, this_._internal_max_conns(), target);
  }

  // optional uint32 max_conns_per_ip = 10 [default = 0];
  if (CheckHasBit(cached_has_bits, 0x00000800U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
        10, this_._internal_max_conns_per_ip(), target);
  }

  // optional uint32 time_limit = 11 [default = 600];
  if (CheckHasBit(cached_has_bits, 0x10000000U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
        11, this_._internal_time_limit(), target);
  }

  // optional bool daemon = 12 [default = false];
  if (CheckHasBit(cached_has_bits, 0x00004000U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        12, this_._internal_daemon(), target);
  }

  // optional uint32 max_cpus = 13 [default = 0];
  if (CheckHasBit(cached_has_bits, 0x00001000U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
        13, this_._internal_max_cpus(), target);
  }

  // optional int32 nice_level = 14 [default = 19];
  if (CheckHasBit(cached_has_bits, 0x40000000U)) {
    target =
        ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<14>(
            stream, this_._internal_nice_level(), target);
  }

  // optional int32 log_fd = 15;
  if (CheckHasBit(cached_has_bits, 0x00020000U)) {
    target =
        ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<15>(
            stream, this_._internal_log_fd(), target);
  }

  // optional string log_file = 16;
  if (CheckHasBit(cached_has_bits, 0x00000100U)) {
    const ::std::string& _s = this_._internal_log_file();
    target = stream->WriteStringMaybeAliased(16, _s, target);
  }

  // optional .nsjail.LogLevel log_level = 17;
  if (CheckHasBit(cached_has_bits, 0x00040000U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
        17, this_._internal_log_level(), target);
  }

  // optional bool keep_env = 18 [default = false];
  if (CheckHasBit(cached_has_bits, 0x00008000U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        18, this_._internal_keep_env(), target);
  }

  // repeated string envar = 19;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    for (int i = 0, n = this_._internal_envar_size(); i < n; ++i) {
      const auto& s = this_._internal_envar().Get(i);
      target = stream->WriteString(19, s, target);
    }
  }

  // optional bool keep_caps = 20 [default = false];
  if (CheckHasBit(cached_has_bits, 0x00010000U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        20, this_._internal_keep_caps(), target);
  }

  // repeated string cap = 21;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    for (int i = 0, n = this_._internal_cap_size(); i < n; ++i) {
      const auto& s = this_._internal_cap().Get(i);
      target = stream->WriteString(21, s, target);
    }
  }

  // optional bool silent = 22 [default = false];
  if (CheckHasBit(cached_has_bits, 0x00080000U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        22, this_._internal_silent(), target);
  }

  // optional bool skip_setsid = 23 [default = false];
  if (CheckHasBit(cached_has_bits, 0x00100000U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        23, this_._internal_skip_setsid(), target);
  }

  // optional bool stderr_to_null = 24 [default = false];
  if (CheckHasBit(cached_has_bits, 0x00200000U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        24, this_._internal_stderr_to_null(), target);
  }

  // repeated int32 pass_fd = 25;
  if (CheckHasBit(cached_has_bits, 0x00000008U)) {
    for (int i = 0, n = this_._internal_pass_fd_size(); i < n; ++i) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteInt32ToArray(
          25, this_._internal_pass_fd().Get(i), target);
    }
  }

  // optional bool disable_no_new_privs = 26 [default = false];
  if (CheckHasBit(cached_has_bits, 0x00400000U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        26, this_._internal_disable_no_new_privs(), target);
  }

  // optional bool forward_signals = 27 [default = false];
  if (CheckHasBit(cached_has_bits, 0x00800000U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        27, this_._internal_forward_signals(), target);
  }

  // optional bool disable_tsc = 28 [default = false];
  if (CheckHasBit(cached_has_bits, 0x01000000U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        28, this_._internal_disable_tsc(), target);
  }

  // optional uint64 rlimit_as = 29 [default = 4096];
  if (CheckHasBit(cached_has_bits, 0x20000000U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt64ToArray(
        29, this_._internal_rlimit_as(), target);
  }

  // optional .nsjail.RLimit rlimit_as_type = 30 [default = VALUE];
  if (CheckHasBit(cached_has_bits, 0x02000000U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
        30, this_._internal_rlimit_as_type(), target);
  }

  // optional uint64 rlimit_core = 31 [default = 0];
  if (CheckHasBit(cached_has_bits, 0x04000000U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt64ToArray(
        31, this_._internal_rlimit_core(), target);
  }

  cached_has_bits = this_._impl_._has_bits_[1];
  // optional .nsjail.RLimit rlimit_core_type = 32 [default = VALUE];
  if (CheckHasBit(cached_has_bits, 0x00400000U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
        32, this_._internal_rlimit_core_type(), target);
  }

  cached_has_bits = this_._impl_._has_bits_[2];
  // optional uint64 rlimit_cpu = 33 [default = 600];
  if (CheckHasBit(cached_has_bits, 0x00008000U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt64ToArray(
        33, this_._internal_rlimit_cpu(), target);
  }

  cached_has_bits = this_._impl_._has_bits_[1];
  // optional .nsjail.RLimit rlimit_cpu_type = 34 [default = VALUE];
  if (CheckHasBit(cached_has_bits, 0x00800000U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
        34, this_._internal_rlimit_cpu_type(), target);
  }

  cached_has_bits = this_._impl_._has_bits_[2];
  // optional uint64 rlimit_fsize = 35 [default = 1];
  if (CheckHasBit(cached_has_bits, 0x00010000U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt64ToArray(
        35, this_._internal_rlimit_fsize(), target);
  }

  cached_has_bits = this_._impl_._has_bits_[1];
  // optional .nsjail.RLimit rlimit_fsize_type = 36 [default = VALUE];
  if (CheckHasBit(cached_has_bits, 0x01000000U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
        36, this_._internal_rlimit_fsize_type(), target);
  }

  cached_has_bits = this_._impl_._has_bits_[2];
  // optional uint64 rlimit_nofile = 37 [default = 32];
  if (CheckHasBit(cached_has_bits, 0x00020000U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt64ToArray(
        37, this_._internal_rlimit_nofile(), target);
  }

  cached_has_bits = this_._impl_._has_bits_[1];
  // optional .nsjail.RLimit rlimit_nofile_type = 38 [default = VALUE];
  if (CheckHasBit(cached_has_bits, 0x02000000U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
        38, this_._internal_rlimit_nofile_type(), target);
  }

  cached_has_bits = this_._impl_._has_bits_[2];
  // optional uint64 rlimit_nproc = 39 [default = 1024];
  if (CheckHasBit(cached_has_bits, 0x00040000U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt64ToArray(
        39, this_._internal_rlimit_nproc(), target);
  }

  // optional .nsjail.RLimit rlimit_nproc_type = 40 [default = SOFT];
  if (CheckHasBit(cached_has_bits, 0x00100000U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
        40, this_._internal_rlimit_nproc_type(), target);
  }

  // optional uint64 rlimit_stack = 41 [default = 8];
  if (CheckHasBit(cached_has_bits, 0x00080000U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt64ToArray(
        41, this_._internal_rlimit_stack(), target);
  }

  // optional .nsjail.RLimit rlimit_stack_type = 42 [default = SOFT];
  if (CheckHasBit(cached_has_bits, 0x00200000U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
        42, this_._internal_rlimit_stack_type(), target);
  }

  // optional uint64 rlimit_memlock = 43 [default = 64];
  if (CheckHasBit(cached_has_bits, 0x00400000U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt64ToArray(
        43, this_._internal_rlimit_memlock(), target);
  }

  // optional .nsjail.RLimit rlimit_memlock_type = 44 [default = SOFT];
  if (CheckHasBit(cached_has_bits, 0x00800000U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
        44, this_._internal_rlimit_memlock_type(), target);
  }

  cached_has_bits = this_._impl_._has_bits_[1];
  // optional uint64 rlimit_rtprio = 45 [default = 0];
  if (CheckHasBit(cached_has_bits, 0x04000000U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt64ToArray(
        45, this_._internal_rlimit_rtprio(), target);
  }

  cached_has_bits = this_._impl_._has_bits_[2];
  // optional .nsjail.RLimit rlimit_rtprio_type = 46 [default = SOFT];
  if (CheckHasBit(cached_has_bits, 0x01000000U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
        46, this_._internal_rlimit_rtprio_type(), target);
  }

  // optional uint64 rlimit_msgqueue = 47 [default = 1024];
  if (CheckHasBit(cached_has_bits, 0x02000000U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt64ToArray(
        47, this_._internal_rlimit_msgqueue(), target);
  }

  // optional .nsjail.RLimit rlimit_msgqueue_type = 48 [default = SOFT];
  if (CheckHasBit(cached_has_bits, 0x04000000U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
        48, this_._internal_rlimit_msgqueue_type(), target);
  }

  cached_has_bits = this_._impl_._has_bits_[1];
  // optional bool disable_rl = 49 [default = false];
  if (CheckHasBit(cached_has_bits, 0x08000000U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        49, this_._internal_disable_rl(), target);
  }

  // optional bool persona_addr_compat_layout = 50 [default = false];
  if (CheckHasBit(cached_has_bits, 0x10000000U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        50, this_._internal_persona_addr_compat_layout(), target);
  }

  // optional bool persona_mmap_page_zero = 51 [default = false];
  if (CheckHasBit(cached_has_bits, 0x20000000U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        51, this_._internal_persona_mmap_page_zero(), target);
  }

  // optional bool persona_read_implies_exec = 52 [default = false];
  if (CheckHasBit(cached_has_bits, 0x40000000U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        52, this_._internal_persona_read_implies_exec(), target);
  }

  // optional bool persona_addr_limit_3gb = 53 [default = false];
  if (CheckHasBit(cached_has_bits, 0x80000000U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        53, this_._internal_persona_addr_limit_3gb(), target);
  }

  cached_has_bits = this_._impl_._has_bits_[2];
  // optional bool persona_addr_no_randomize = 54 [default = false];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        54, this_._internal_persona_addr_no_randomize(), target);
  }

  // optional bool clone_newnet = 55 [default = true];
  if (CheckHasBit(cached_has_bits, 0x08000000U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        55, this_._internal_clone_newnet(), target);
  }

  // optional bool clone_newuser = 56 [default = true];
  if (CheckHasBit(cached_has_bits, 0x10000000U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        56, this_._internal_clone_newuser(), target);
  }

  // optional bool clone_newns = 57 [default = true];
  if (CheckHasBit(cached_has_bits, 0x20000000U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        57, this_._internal_clone_newns(), target);
  }

  // optional bool clone_newpid = 58 [default = true];
  if (CheckHasBit(cached_has_bits, 0x40000000U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        58, this_._internal_clone_newpid(), target);
  }

  // optional bool clone_newipc = 59 [default = true];
  if (CheckHasBit(cached_has_bits, 0x00001000U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        59, this_._internal_clone_newipc(), target);
  }

  // optional bool clone_newuts = 60 [default = true];
  if (CheckHasBit(cached_has_bits, 0x00002000U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        60, this_._internal_clone_newuts(), target);
  }

  // optional bool clone_newcgroup = 61 [default = true];
  if (CheckHasBit(cached_has_bits, 0x00004000U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        61, this_._internal_clone_newcgroup(), target);
  }

  // optional bool clone_newtime = 62 [default = false];
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        62, this_._internal_clone_newtime(), target);
  }

  cached_has_bits = this_._impl_._has_bits_[0];
  // repeated .nsjail.IdMap uidmap = 63;
  if (CheckHasBit(cached_has_bits, 0x80000000U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_uidmap_size());
         i < n; i++) {
      const auto& repfield = this_._internal_uidmap().Get(i);
      target =
          ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
              63, repfield, repfield.GetCachedSize(),
              target, stream);
    }
  }

  cached_has_bits = this_._impl_._has_bits_[1];
  // repeated .nsjail.IdMap gidmap = 64;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_gidmap_size());
         i < n; i++) {
      const auto& repfield = this_._internal_gidmap().Get(i);
      target =
          ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
              64, repfield, repfield.GetCachedSize(),
              target, stream);
    }
  }

  cached_has_bits = this_._impl_._has_bits_[2];
  // optional bool mount_proc = 65 [default = false];
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        65, this_._internal_mount_proc(), target);
  }

  cached_has_bits = this_._impl_._has_bits_[1];
  // repeated .nsjail.MountPt mount = 66;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_mount_size());
         i < n; i++) {
      const auto& repfield = this_._internal_mount().Get(i);
      target =
          ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
              66, repfield, repfield.GetCachedSize(),
              target, stream);
    }
  }

  // optional string seccomp_policy_file = 67;
  if (CheckHasBit(cached_has_bits, 0x00000010U)) {
    const ::std::string& _s = this_._internal_seccomp_policy_file();
    target = stream->WriteStringMaybeAliased(67, _s, target);
  }

  // repeated string seccomp_string = 68;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    for (int i = 0, n = this_._internal_seccomp_string_size(); i < n; ++i) {
      const auto& s = this_._internal_seccomp_string().Get(i);
      target = stream->WriteString(68, s, target);
    }
  }

  cached_has_bits = this_._impl_._has_bits_[2];
  // optional bool seccomp_log = 69 [default = false];
  if (CheckHasBit(cached_has_bits, 0x00000100U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        69, this_._internal_seccomp_log(), target);
  }

  // optional uint64 cgroup_mem_max = 70 [default = 0];
  if (CheckHasBit(cached_has_bits, 0x00000008U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt64ToArray(
        70, this_._internal_cgroup_mem_max(), target);
  }

  // optional uint64 cgroup_mem_memsw_max = 71 [default = 0];
  if (CheckHasBit(cached_has_bits, 0x00000010U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt64ToArray(
        71, this_._internal_cgroup_mem_memsw_max(), target);
  }

  // optional int64 cgroup_mem_swap_max = 72 [default = -1];
  if (CheckHasBit(cached_has_bits, 0x80000000U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt64ToArray(
        72, this_._internal_cgroup_mem_swap_max(), target);
  }

  cached_has_bits = this_._impl_._has_bits_[1];
  // optional string cgroup_mem_mount = 73 [default = "/sys/fs/cgroup/memory"];
  if (CheckHasBit(cached_has_bits, 0x00000020U)) {
    const ::std::string& _s = this_._internal_cgroup_mem_mount();
    target = stream->WriteStringMaybeAliased(73, _s, target);
  }

  // optional string cgroup_mem_parent = 74 [default = "NSJAIL"];
  if (CheckHasBit(cached_has_bits, 0x00000040U)) {
    const ::std::string& _s = this_._internal_cgroup_mem_parent();
    target = stream->WriteStringMaybeAliased(74, _s, target);
  }

  cached_has_bits = this_._impl_._has_bits_[2];
  // optional uint64 cgroup_pids_max = 75 [default = 0];
  if (CheckHasBit(cached_has_bits, 0x00000020U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt64ToArray(
        75, this_._internal_cgroup_pids_max(), target);
  }

  cached_has_bits = this_._impl_._has_bits_[1];
  // optional string cgroup_pids_mount = 76 [default = "/sys/fs/cgroup/pids"];
  if (CheckHasBit(cached_has_bits, 0x00000080U)) {
    const ::std::string& _s = this_._internal_cgroup_pids_mount();
    target = stream->WriteStringMaybeAliased(76, _s, target);
  }

  // optional string cgroup_pids_parent = 77 [default = "NSJAIL"];
  if (CheckHasBit(cached_has_bits, 0x00000100U)) {
    const ::std::string& _s = this_._internal_cgroup_pids_parent();
    target = stream->WriteStringMaybeAliased(77, _s, target);
  }

  cached_has_bits = this_._impl_._has_bits_[2];
  // optional uint32 cgroup_net_cls_classid = 78 [default = 0];
  if (CheckHasBit(cached_has_bits, 0x00000040U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
        78, this_._internal_cgroup_net_cls_classid(), target);
  }

  cached_has_bits = this_._impl_._has_bits_[1];
  // optional string cgroup_net_cls_mount = 79 [default = "/sys/fs/cgroup/net_cls"];
  if (CheckHasBit(cached_has_bits, 0x00000200U)) {
    const ::std::string& _s = this_._internal_cgroup_net_cls_mount();
    target = stream->WriteStringMaybeAliased(79, _s, target);
  }

  // optional string cgroup_net_cls_parent = 80 [default = "NSJAIL"];
  if (CheckHasBit(cached_has_bits, 0x00000400U)) {
    const ::std::string& _s = this_._internal_cgroup_net_cls_parent();
    target = stream->WriteStringMaybeAliased(80, _s, target);
  }

  cached_has_bits = this_._impl_._has_bits_[2];
  // optional uint32 cgroup_cpu_ms_per_sec = 81 [default = 0];
  if (CheckHasBit(cached_has_bits, 0x00000080U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
        81, this_._internal_cgroup_cpu_ms_per_sec(), target);
  }

  cached_has_bits = this_._impl_._has_bits_[1];
  // optional string cgroup_cpu_mount = 82 [default = "/sys/fs/cgroup/cpu"];
  if (CheckHasBit(cached_has_bits, 0x00000800U)) {
    const ::std::string& _s = this_._internal_cgroup_cpu_mount();
    target = stream->WriteStringMaybeAliased(82, _s, target);
  }

  // optional string cgroup_cpu_parent = 83 [default = "NSJAIL"];
  if (CheckHasBit(cached_has_bits, 0x00001000U)) {
    const ::std::string& _s = this_._internal_cgroup_cpu_parent();
    target = stream->WriteStringMaybeAliased(83, _s, target);
  }

  // optional string cgroupv2_mount = 84 [default = "/sys/fs/cgroup"];
  if (CheckHasBit(cached_has_bits, 0x00002000U)) {
    const ::std::string& _s = this_._internal_cgroupv2_mount();
    target = stream->WriteStringMaybeAliased(84, _s, target);
  }

  cached_has_bits = this_._impl_._has_bits_[2];
  // optional bool use_cgroupv2 = 85 [default = false];
  if (CheckHasBit(cached_has_bits, 0x00000200U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        85, this_._internal_use_cgroupv2(), target);
  }

  // optional bool detect_cgroupv2 = 86 [default = false];
  if (CheckHasBit(cached_has_bits, 0x00000400U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        86, this_._internal_detect_cgroupv2(), target);
  }

  // optional bool iface_no_lo = 87 [default = false];
  if (CheckHasBit(cached_has_bits, 0x00000800U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        87, this_._internal_iface_no_lo(), target);
  }

  cached_has_bits = this_._impl_._has_bits_[1];
  // repeated string iface_own = 88;
  if (CheckHasBit(cached_has_bits, 0x00000008U)) {
    for (int i = 0, n = this_._internal_iface_own_size(); i < n; ++i) {
      const auto& s = this_._internal_iface_own().Get(i);
      target = stream->WriteString(88, s, target);
    }
  }

  // optional string macvlan_iface = 89;
  if (CheckHasBit(cached_has_bits, 0x00004000U)) {
    const ::std::string& _s = this_._internal_macvlan_iface();
    target = stream->WriteStringMaybeAliased(89, _s, target);
  }

  // optional string macvlan_vs_ip = 90 [default = "192.168.0.2"];
  if (CheckHasBit(cached_has_bits, 0x00008000U)) {
    const ::std::string& _s = this_._internal_macvlan_vs_ip();
    target = stream->WriteStringMaybeAliased(90, _s, target);
  }

  // optional string macvlan_vs_nm = 91 [default = "255.255.255.0"];
  if (CheckHasBit(cached_has_bits, 0x00010000U)) {
    const ::std::string& _s = this_._internal_macvlan_vs_nm();
    target = stream->WriteStringMaybeAliased(91, _s, target);
  }

  // optional string macvlan_vs_gw = 92 [default = "192.168.0.1"];
  if (CheckHasBit(cached_has_bits, 0x00020000U)) {
    const ::std::string& _s = this_._internal_macvlan_vs_gw();
    target = stream->WriteStringMaybeAliased(92, _s, target);
  }

  // optional string macvlan_vs_ma = 93 [default = ""];
  if (CheckHasBit(cached_has_bits, 0x00040000U)) {
    const ::std::string& _s = this_._internal_macvlan_vs_ma();
    target = stream->WriteStringMaybeAliased(93, _s, target);
  }

  // optional string macvlan_vs_mo = 94 [default = "private"];
  if (CheckHasBit(cached_has_bits, 0x00080000U)) {
    const ::std::string& _s = this_._internal_macvlan_vs_mo();
    target = stream->WriteStringMaybeAliased(94, _s, target);
  }

  // optional .nsjail.NsJailConfig.UserNet user_net = 95;
  if (CheckHasBit(cached_has_bits, 0x00100000U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        95, *this_._impl_.user_net_, this_._impl_.user_net_->GetCachedSize(), target,
        stream);
  }

  // optional .nsjail.Exe exec_bin = 96;
  if (CheckHasBit(cached_has_bits, 0x00200000U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        96, *this_._impl_.exec_bin_, this_._impl_.exec_bin_->GetCachedSize(), target,
        stream);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:nsjail.NsJailConfig)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t NsJailConfig::ByteSizeLong(const MessageLite& base) {
  const NsJailConfig& this_ = static_cast<const NsJailConfig&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t NsJailConfig::ByteSizeLong() const {
  const NsJailConfig& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:nsjail.NsJailConfig)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  total_size += ::absl::popcount(0x01f98000U & cached_has_bits) * 3;
  total_size += ::absl::popcount(0x00006000U & cached_has_bits) * 2;
  if (BatchCheckHasBit(cached_has_bits, 0x000000ffU)) {
    // repeated string description = 2;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size +=
          1 * ::google::protobuf::internal::FromIntSize(this_._internal_description().size());
      for (int i = 0, n = this_._internal_description().size(); i < n; ++i) {
        total_size += ::google::protobuf::internal::WireFormatLite::StringSize(
            this_._internal_description().Get(i));
      }
    }
    // repeated string envar = 19;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size +=
          2 * ::google::protobuf::internal::FromIntSize(this_._internal_envar().size());
      for (int i = 0, n = this_._internal_envar().size(); i < n; ++i) {
        total_size += ::google::protobuf::internal::WireFormatLite::StringSize(
            this_._internal_envar().Get(i));
      }
    }
    // repeated string cap = 21;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      total_size +=
          2 * ::google::protobuf::internal::FromIntSize(this_._internal_cap().size());
      for (int i = 0, n = this_._internal_cap().size(); i < n; ++i) {
        total_size += ::google::protobuf::internal::WireFormatLite::StringSize(
            this_._internal_cap().Get(i));
      }
    }
    // repeated int32 pass_fd = 25;
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      ::size_t data_size = ::_pbi::WireFormatLite::Int32Size(
          this_._internal_pass_fd());
      ::size_t tag_size = ::size_t{2} *
          ::_pbi::FromIntSize(this_._internal_pass_fd_size());
      total_size += tag_size + data_size;
    }
    // optional string name = 1 [default = ""];
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_name());
    }
    // optional string hostname = 4 [default = "NSJAIL"];
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_hostname());
    }
    // optional string cwd = 5 [default = "/"];
    if (CheckHasBit(cached_has_bits, 0x00000040U)) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_cwd());
    }
    // optional string bindhost = 8 [default = "::"];
    if (CheckHasBit(cached_has_bits, 0x00000080U)) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_bindhost());
    }
  }
  if (BatchCheckHasBit(cached_has_bits, 0x00001f00U)) {
    // optional string log_file = 16;
    if (CheckHasBit(cached_has_bits, 0x00000100U)) {
      total_size += 2 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_log_file());
    }
    // optional uint32 port = 7 [default = 0];
    if (CheckHasBit(cached_has_bits, 0x00000200U)) {
      total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
          this_._internal_port());
    }
    // optional uint32 max_conns = 9 [default = 0];
    if (CheckHasBit(cached_has_bits, 0x00000400U)) {
      total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
          this_._internal_max_conns());
    }
    // optional uint32 max_conns_per_ip = 10 [default = 0];
    if (CheckHasBit(cached_has_bits, 0x00000800U)) {
      total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
          this_._internal_max_conns_per_ip());
    }
    // optional uint32 max_cpus = 13 [default = 0];
    if (CheckHasBit(cached_has_bits, 0x00001000U)) {
      total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
          this_._internal_max_cpus());
    }
  }
  if (BatchCheckHasBit(cached_has_bits, 0x00060000U)) {
    // optional int32 log_fd = 15;
    if (CheckHasBit(cached_has_bits, 0x00020000U)) {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
          this_._internal_log_fd());
    }
    // optional .nsjail.LogLevel log_level = 17;
    if (CheckHasBit(cached_has_bits, 0x00040000U)) {
      total_size += 2 +
                    ::_pbi::WireFormatLite::EnumSize(this_._internal_log_level());
    }
  }
  if (BatchCheckHasBit(cached_has_bits, 0xfe000000U)) {
    // optional .nsjail.RLimit rlimit_as_type = 30 [default = VALUE];
    if (CheckHasBit(cached_has_bits, 0x02000000U)) {
      total_size += 2 +
                    ::_pbi::WireFormatLite::EnumSize(this_._internal_rlimit_as_type());
    }
    // optional uint64 rlimit_core = 31 [default = 0];
    if (CheckHasBit(cached_has_bits, 0x04000000U)) {
      total_size += 2 + ::_pbi::WireFormatLite::UInt64Size(
                                      this_._internal_rlimit_core());
    }
    // optional .nsjail.Mode mode = 3 [default = ONCE];
    if (CheckHasBit(cached_has_bits, 0x08000000U)) {
      total_size += 1 +
                    ::_pbi::WireFormatLite::EnumSize(this_._internal_mode());
    }
    // optional uint32 time_limit = 11 [default = 600];
    if (CheckHasBit(cached_has_bits, 0x10000000U)) {
      total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
          this_._internal_time_limit());
    }
    // optional uint64 rlimit_as = 29 [default = 4096];
    if (CheckHasBit(cached_has_bits, 0x20000000U)) {
      total_size += 2 + ::_pbi::WireFormatLite::UInt64Size(
                                      this_._internal_rlimit_as());
    }
    // optional int32 nice_level = 14 [default = 19];
    if (CheckHasBit(cached_has_bits, 0x40000000U)) {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
          this_._internal_nice_level());
    }
    // repeated .nsjail.IdMap uidmap = 63;
    if (CheckHasBit(cached_has_bits, 0x80000000U)) {
      total_size += 2UL * this_._internal_uidmap_size();
      for (const auto& msg : this_._internal_uidmap()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
  }
  cached_has_bits = this_._impl_._has_bits_[1];
  total_size += ::absl::popcount(0xf8000000U & cached_has_bits) * 3;
  if (BatchCheckHasBit(cached_has_bits, 0x000000ffU)) {
    // repeated .nsjail.IdMap gidmap = 64;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 2UL * this_._internal_gidmap_size();
      for (const auto& msg : this_._internal_gidmap()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
    // repeated .nsjail.MountPt mount = 66;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 2UL * this_._internal_mount_size();
      for (const auto& msg : this_._internal_mount()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
    // repeated string seccomp_string = 68;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      total_size +=
          2 * ::google::protobuf::internal::FromIntSize(this_._internal_seccomp_string().size());
      for (int i = 0, n = this_._internal_seccomp_string().size(); i < n; ++i) {
        total_size += ::google::protobuf::internal::WireFormatLite::StringSize(
            this_._internal_seccomp_string().Get(i));
      }
    }
    // repeated string iface_own = 88;
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      total_size +=
          2 * ::google::protobuf::internal::FromIntSize(this_._internal_iface_own().size());
      for (int i = 0, n = this_._internal_iface_own().size(); i < n; ++i) {
        total_size += ::google::protobuf::internal::WireFormatLite::StringSize(
            this_._internal_iface_own().Get(i));
      }
    }
    // optional string seccomp_policy_file = 67;
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      total_size += 2 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_seccomp_policy_file());
    }
    // optional string cgroup_mem_mount = 73 [default = "/sys/fs/cgroup/memory"];
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      total_size += 2 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_cgroup_mem_mount());
    }
    // optional string cgroup_mem_parent = 74 [default = "NSJAIL"];
    if (CheckHasBit(cached_has_bits, 0x00000040U)) {
      total_size += 2 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_cgroup_mem_parent());
    }
    // optional string cgroup_pids_mount = 76 [default = "/sys/fs/cgroup/pids"];
    if (CheckHasBit(cached_has_bits, 0x00000080U)) {
      total_size += 2 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_cgroup_pids_mount());
    }
  }
  if (BatchCheckHasBit(cached_has_bits, 0x0000ff00U)) {
    // optional string cgroup_pids_parent = 77 [default = "NSJAIL"];
    if (CheckHasBit(cached_has_bits, 0x00000100U)) {
      total_size += 2 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_cgroup_pids_parent());
    }
    // optional string cgroup_net_cls_mount = 79 [default = "/sys/fs/cgroup/net_cls"];
    if (CheckHasBit(cached_has_bits, 0x00000200U)) {
      total_size += 2 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_cgroup_net_cls_mount());
    }
    // optional string cgroup_net_cls_parent = 80 [default = "NSJAIL"];
    if (CheckHasBit(cached_has_bits, 0x00000400U)) {
      total_size += 2 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_cgroup_net_cls_parent());
    }
    // optional string cgroup_cpu_mount = 82 [default = "/sys/fs/cgroup/cpu"];
    if (CheckHasBit(cached_has_bits, 0x00000800U)) {
      total_size += 2 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_cgroup_cpu_mount());
    }
    // optional string cgroup_cpu_parent = 83 [default = "NSJAIL"];
    if (CheckHasBit(cached_has_bits, 0x00001000U)) {
      total_size += 2 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_cgroup_cpu_parent());
    }
    // optional string cgroupv2_mount = 84 [default = "/sys/fs/cgroup"];
    if (CheckHasBit(cached_has_bits, 0x00002000U)) {
      total_size += 2 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_cgroupv2_mount());
    }
    // optional string macvlan_iface = 89;
    if (CheckHasBit(cached_has_bits, 0x00004000U)) {
      total_size += 2 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_macvlan_iface());
    }
    // optional string macvlan_vs_ip = 90 [default = "192.168.0.2"];
    if (CheckHasBit(cached_has_bits, 0x00008000U)) {
      total_size += 2 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_macvlan_vs_ip());
    }
  }
  if (BatchCheckHasBit(cached_has_bits, 0x00ff0000U)) {
    // optional string macvlan_vs_nm = 91 [default = "255.255.255.0"];
    if (CheckHasBit(cached_has_bits, 0x00010000U)) {
      total_size += 2 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_macvlan_vs_nm());
    }
    // optional string macvlan_vs_gw = 92 [default = "192.168.0.1"];
    if (CheckHasBit(cached_has_bits, 0x00020000U)) {
      total_size += 2 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_macvlan_vs_gw());
    }
    // optional string macvlan_vs_ma = 93 [default = ""];
    if (CheckHasBit(cached_has_bits, 0x00040000U)) {
      total_size += 2 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_macvlan_vs_ma());
    }
    // optional string macvlan_vs_mo = 94 [default = "private"];
    if (CheckHasBit(cached_has_bits, 0x00080000U)) {
      total_size += 2 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_macvlan_vs_mo());
    }
    // optional .nsjail.NsJailConfig.UserNet user_net = 95;
    if (CheckHasBit(cached_has_bits, 0x00100000U)) {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.user_net_);
    }
    // optional .nsjail.Exe exec_bin = 96;
    if (CheckHasBit(cached_has_bits, 0x00200000U)) {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.exec_bin_);
    }
    // optional .nsjail.RLimit rlimit_core_type = 32 [default = VALUE];
    if (CheckHasBit(cached_has_bits, 0x00400000U)) {
      total_size += 2 +
                    ::_pbi::WireFormatLite::EnumSize(this_._internal_rlimit_core_type());
    }
    // optional .nsjail.RLimit rlimit_cpu_type = 34 [default = VALUE];
    if (CheckHasBit(cached_has_bits, 0x00800000U)) {
      total_size += 2 +
                    ::_pbi::WireFormatLite::EnumSize(this_._internal_rlimit_cpu_type());
    }
  }
  if (BatchCheckHasBit(cached_has_bits, 0x07000000U)) {
    // optional .nsjail.RLimit rlimit_fsize_type = 36 [default = VALUE];
    if (CheckHasBit(cached_has_bits, 0x01000000U)) {
      total_size += 2 +
                    ::_pbi::WireFormatLite::EnumSize(this_._internal_rlimit_fsize_type());
    }
    // optional .nsjail.RLimit rlimit_nofile_type = 38 [default = VALUE];
    if (CheckHasBit(cached_has_bits, 0x02000000U)) {
      total_size += 2 +
                    ::_pbi::WireFormatLite::EnumSize(this_._internal_rlimit_nofile_type());
    }
    // optional uint64 rlimit_rtprio = 45 [default = 0];
    if (CheckHasBit(cached_has_bits, 0x04000000U)) {
      total_size += 2 + ::_pbi::WireFormatLite::UInt64Size(
                                      this_._internal_rlimit_rtprio());
    }
  }
  cached_has_bits = this_._impl_._has_bits_[2];
  total_size += ::absl::popcount(0x78007f07U & cached_has_bits) * 3;
  if (BatchCheckHasBit(cached_has_bits, 0x000000f8U)) {
    // optional uint64 cgroup_mem_max = 70 [default = 0];
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      total_size += 2 + ::_pbi::WireFormatLite::UInt64Size(
                                      this_._internal_cgroup_mem_max());
    }
    // optional uint64 cgroup_mem_memsw_max = 71 [default = 0];
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      total_size += 2 + ::_pbi::WireFormatLite::UInt64Size(
                                      this_._internal_cgroup_mem_memsw_max());
    }
    // optional uint64 cgroup_pids_max = 75 [default = 0];
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      total_size += 2 + ::_pbi::WireFormatLite::UInt64Size(
                                      this_._internal_cgroup_pids_max());
    }
    // optional uint32 cgroup_net_cls_classid = 78 [default = 0];
    if (CheckHasBit(cached_has_bits, 0x00000040U)) {
      total_size += 2 + ::_pbi::WireFormatLite::UInt32Size(
                                      this_._internal_cgroup_net_cls_classid());
    }
    // optional uint32 cgroup_cpu_ms_per_sec = 81 [default = 0];
    if (CheckHasBit(cached_has_bits, 0x00000080U)) {
      total_size += 2 + ::_pbi::WireFormatLite::UInt32Size(
                                      this_._internal_cgroup_cpu_ms_per_sec());
    }
  }
   {
    // optional uint64 rlimit_cpu = 33 [default = 600];
    if (CheckHasBit(cached_has_bits, 0x00008000U)) {
      total_size += 2 + ::_pbi::WireFormatLite::UInt64Size(
                                      this_._internal_rlimit_cpu());
    }
  }
  if (BatchCheckHasBit(cached_has_bits, 0x00ff0000U)) {
    // optional uint64 rlimit_fsize = 35 [default = 1];
    if (CheckHasBit(cached_has_bits, 0x00010000U)) {
      total_size += 2 + ::_pbi::WireFormatLite::UInt64Size(
                                      this_._internal_rlimit_fsize());
    }
    // optional uint64 rlimit_nofile = 37 [default = 32];
    if (CheckHasBit(cached_has_bits, 0x00020000U)) {
      total_size += 2 + ::_pbi::WireFormatLite::UInt64Size(
                                      this_._internal_rlimit_nofile());
    }
    // optional uint64 rlimit_nproc = 39 [default = 1024];
    if (CheckHasBit(cached_has_bits, 0x00040000U)) {
      total_size += 2 + ::_pbi::WireFormatLite::UInt64Size(
                                      this_._internal_rlimit_nproc());
    }
    // optional uint64 rlimit_stack = 41 [default = 8];
    if (CheckHasBit(cached_has_bits, 0x00080000U)) {
      total_size += 2 + ::_pbi::WireFormatLite::UInt64Size(
                                      this_._internal_rlimit_stack());
    }
    // optional .nsjail.RLimit rlimit_nproc_type = 40 [default = SOFT];
    if (CheckHasBit(cached_has_bits, 0x00100000U)) {
      total_size += 2 +
                    ::_pbi::WireFormatLite::EnumSize(this_._internal_rlimit_nproc_type());
    }
    // optional .nsjail.RLimit rlimit_stack_type = 42 [default = SOFT];
    if (CheckHasBit(cached_has_bits, 0x00200000U)) {
      total_size += 2 +
                    ::_pbi::WireFormatLite::EnumSize(this_._internal_rlimit_stack_type());
    }
    // optional uint64 rlimit_memlock = 43 [default = 64];
    if (CheckHasBit(cached_has_bits, 0x00400000U)) {
      total_size += 2 + ::_pbi::WireFormatLite::UInt64Size(
                                      this_._internal_rlimit_memlock());
    }
    // optional .nsjail.RLimit rlimit_memlock_type = 44 [default = SOFT];
    if (CheckHasBit(cached_has_bits, 0x00800000U)) {
      total_size += 2 +
                    ::_pbi::WireFormatLite::EnumSize(this_._internal_rlimit_memlock_type());
    }
  }
  if (BatchCheckHasBit(cached_has_bits, 0x87000000U)) {
    // optional .nsjail.RLimit rlimit_rtprio_type = 46 [default = SOFT];
    if (CheckHasBit(cached_has_bits, 0x01000000U)) {
      total_size += 2 +
                    ::_pbi::WireFormatLite::EnumSize(this_._internal_rlimit_rtprio_type());
    }
    // optional uint64 rlimit_msgqueue = 47 [default = 1024];
    if (CheckHasBit(cached_has_bits, 0x02000000U)) {
      total_size += 2 + ::_pbi::WireFormatLite::UInt64Size(
                                      this_._internal_rlimit_msgqueue());
    }
    // optional .nsjail.RLimit rlimit_msgqueue_type = 48 [default = SOFT];
    if (CheckHasBit(cached_has_bits, 0x04000000U)) {
      total_size += 2 +
                    ::_pbi::WireFormatLite::EnumSize(this_._internal_rlimit_msgqueue_type());
    }
    // optional int64 cgroup_mem_swap_max = 72 [default = -1];
    if (CheckHasBit(cached_has_bits, 0x80000000U)) {
      total_size += 2 + ::_pbi::WireFormatLite::Int64Size(
                                      this_._internal_cgroup_mem_swap_max());
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void NsJailConfig::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<NsJailConfig*>(&to_msg);
  auto& from = static_cast<const NsJailConfig&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:nsjail.NsJailConfig)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x000000ffU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _this->_internal_mutable_description()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_description());
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _this->_internal_mutable_envar()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_envar());
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      _this->_internal_mutable_cap()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_cap());
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      _this->_internal_mutable_pass_fd()->MergeFrom(from._internal_pass_fd());
    }
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      _this->_internal_set_name(from._internal_name());
    }
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      _this->_internal_set_hostname(from._internal_hostname());
    }
    if (CheckHasBit(cached_has_bits, 0x00000040U)) {
      _this->_internal_set_cwd(from._internal_cwd());
    }
    if (CheckHasBit(cached_has_bits, 0x00000080U)) {
      _this->_internal_set_bindhost(from._internal_bindhost());
    }
  }
  if (BatchCheckHasBit(cached_has_bits, 0x0000ff00U)) {
    if (CheckHasBit(cached_has_bits, 0x00000100U)) {
      _this->_internal_set_log_file(from._internal_log_file());
    }
    if (CheckHasBit(cached_has_bits, 0x00000200U)) {
      _this->_impl_.port_ = from._impl_.port_;
    }
    if (CheckHasBit(cached_has_bits, 0x00000400U)) {
      _this->_impl_.max_conns_ = from._impl_.max_conns_;
    }
    if (CheckHasBit(cached_has_bits, 0x00000800U)) {
      _this->_impl_.max_conns_per_ip_ = from._impl_.max_conns_per_ip_;
    }
    if (CheckHasBit(cached_has_bits, 0x00001000U)) {
      _this->_impl_.max_cpus_ = from._impl_.max_cpus_;
    }
    if (CheckHasBit(cached_has_bits, 0x00002000U)) {
      _this->_impl_.no_pivotroot_ = from._impl_.no_pivotroot_;
    }
    if (CheckHasBit(cached_has_bits, 0x00004000U)) {
      _this->_impl_.daemon_ = from._impl_.daemon_;
    }
    if (CheckHasBit(cached_has_bits, 0x00008000U)) {
      _this->_impl_.keep_env_ = from._impl_.keep_env_;
    }
  }
  if (BatchCheckHasBit(cached_has_bits, 0x00ff0000U)) {
    if (CheckHasBit(cached_has_bits, 0x00010000U)) {
      _this->_impl_.keep_caps_ = from._impl_.keep_caps_;
    }
    if (CheckHasBit(cached_has_bits, 0x00020000U)) {
      _this->_impl_.log_fd_ = from._impl_.log_fd_;
    }
    if (CheckHasBit(cached_has_bits, 0x00040000U)) {
      _this->_impl_.log_level_ = from._impl_.log_level_;
    }
    if (CheckHasBit(cached_has_bits, 0x00080000U)) {
      _this->_impl_.silent_ = from._impl_.silent_;
    }
    if (CheckHasBit(cached_has_bits, 0x00100000U)) {
      _this->_impl_.skip_setsid_ = from._impl_.skip_setsid_;
    }
    if (CheckHasBit(cached_has_bits, 0x00200000U)) {
      _this->_impl_.stderr_to_null_ = from._impl_.stderr_to_null_;
    }
    if (CheckHasBit(cached_has_bits, 0x00400000U)) {
      _this->_impl_.disable_no_new_privs_ = from._impl_.disable_no_new_privs_;
    }
    if (CheckHasBit(cached_has_bits, 0x00800000U)) {
      _this->_impl_.forward_signals_ = from._impl_.forward_signals_;
    }
  }
  if (BatchCheckHasBit(cached_has_bits, 0xff000000U)) {
    if (CheckHasBit(cached_has_bits, 0x01000000U)) {
      _this->_impl_.disable_tsc_ = from._impl_.disable_tsc_;
    }
    if (CheckHasBit(cached_has_bits, 0x02000000U)) {
      _this->_impl_.rlimit_as_type_ = from._impl_.rlimit_as_type_;
    }
    if (CheckHasBit(cached_has_bits, 0x04000000U)) {
      _this->_impl_.rlimit_core_ = from._impl_.rlimit_core_;
    }
    if (CheckHasBit(cached_has_bits, 0x08000000U)) {
      _this->_impl_.mode_ = from._impl_.mode_;
    }
    if (CheckHasBit(cached_has_bits, 0x10000000U)) {
      _this->_impl_.time_limit_ = from._impl_.time_limit_;
    }
    if (CheckHasBit(cached_has_bits, 0x20000000U)) {
      _this->_impl_.rlimit_as_ = from._impl_.rlimit_as_;
    }
    if (CheckHasBit(cached_has_bits, 0x40000000U)) {
      _this->_impl_.nice_level_ = from._impl_.nice_level_;
    }
    if (CheckHasBit(cached_has_bits, 0x80000000U)) {
      _this->_internal_mutable_uidmap()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_uidmap());
    }
  }
  cached_has_bits = from._impl_._has_bits_[1];
  if (BatchCheckHasBit(cached_has_bits, 0x000000ffU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _this->_internal_mutable_gidmap()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_gidmap());
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _this->_internal_mutable_mount()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_mount());
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      _this->_internal_mutable_seccomp_string()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_seccomp_string());
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      _this->_internal_mutable_iface_own()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_iface_own());
    }
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      _this->_internal_set_seccomp_policy_file(from._internal_seccomp_policy_file());
    }
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      _this->_internal_set_cgroup_mem_mount(from._internal_cgroup_mem_mount());
    }
    if (CheckHasBit(cached_has_bits, 0x00000040U)) {
      _this->_internal_set_cgroup_mem_parent(from._internal_cgroup_mem_parent());
    }
    if (CheckHasBit(cached_has_bits, 0x00000080U)) {
      _this->_internal_set_cgroup_pids_mount(from._internal_cgroup_pids_mount());
    }
  }
  if (BatchCheckHasBit(cached_has_bits, 0x0000ff00U)) {
    if (CheckHasBit(cached_has_bits, 0x00000100U)) {
      _this->_internal_set_cgroup_pids_parent(from._internal_cgroup_pids_parent());
    }
    if (CheckHasBit(cached_has_bits, 0x00000200U)) {
      _this->_internal_set_cgroup_net_cls_mount(from._internal_cgroup_net_cls_mount());
    }
    if (CheckHasBit(cached_has_bits, 0x00000400U)) {
      _this->_internal_set_cgroup_net_cls_parent(from._internal_cgroup_net_cls_parent());
    }
    if (CheckHasBit(cached_has_bits, 0x00000800U)) {
      _this->_internal_set_cgroup_cpu_mount(from._internal_cgroup_cpu_mount());
    }
    if (CheckHasBit(cached_has_bits, 0x00001000U)) {
      _this->_internal_set_cgroup_cpu_parent(from._internal_cgroup_cpu_parent());
    }
    if (CheckHasBit(cached_has_bits, 0x00002000U)) {
      _this->_internal_set_cgroupv2_mount(from._internal_cgroupv2_mount());
    }
    if (CheckHasBit(cached_has_bits, 0x00004000U)) {
      _this->_internal_set_macvlan_iface(from._internal_macvlan_iface());
    }
    if (CheckHasBit(cached_has_bits, 0x00008000U)) {
      _this->_internal_set_macvlan_vs_ip(from._internal_macvlan_vs_ip());
    }
  }
  if (BatchCheckHasBit(cached_has_bits, 0x00ff0000U)) {
    if (CheckHasBit(cached_has_bits, 0x00010000U)) {
      _this->_internal_set_macvlan_vs_nm(from._internal_macvlan_vs_nm());
    }
    if (CheckHasBit(cached_has_bits, 0x00020000U)) {
      _this->_internal_set_macvlan_vs_gw(from._internal_macvlan_vs_gw());
    }
    if (CheckHasBit(cached_has_bits, 0x00040000U)) {
      _this->_internal_set_macvlan_vs_ma(from._internal_macvlan_vs_ma());
    }
    if (CheckHasBit(cached_has_bits, 0x00080000U)) {
      _this->_internal_set_macvlan_vs_mo(from._internal_macvlan_vs_mo());
    }
    if (CheckHasBit(cached_has_bits, 0x00100000U)) {
      ABSL_DCHECK(from._impl_.user_net_ != nullptr);
      if (_this->_impl_.user_net_ == nullptr) {
        _this->_impl_.user_net_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.user_net_);
      } else {
        _this->_impl_.user_net_->MergeFrom(*from._impl_.user_net_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00200000U)) {
      ABSL_DCHECK(from._impl_.exec_bin_ != nullptr);
      if (_this->_impl_.exec_bin_ == nullptr) {
        _this->_impl_.exec_bin_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.exec_bin_);
      } else {
        _this->_impl_.exec_bin_->MergeFrom(*from._impl_.exec_bin_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00400000U)) {
      _this->_impl_.rlimit_core_type_ = from._impl_.rlimit_core_type_;
    }
    if (CheckHasBit(cached_has_bits, 0x00800000U)) {
      _this->_impl_.rlimit_cpu_type_ = from._impl_.rlimit_cpu_type_;
    }
  }
  if (BatchCheckHasBit(cached_has_bits, 0xff000000U)) {
    if (CheckHasBit(cached_has_bits, 0x01000000U)) {
      _this->_impl_.rlimit_fsize_type_ = from._impl_.rlimit_fsize_type_;
    }
    if (CheckHasBit(cached_has_bits, 0x02000000U)) {
      _this->_impl_.rlimit_nofile_type_ = from._impl_.rlimit_nofile_type_;
    }
    if (CheckHasBit(cached_has_bits, 0x04000000U)) {
      _this->_impl_.rlimit_rtprio_ = from._impl_.rlimit_rtprio_;
    }
    if (CheckHasBit(cached_has_bits, 0x08000000U)) {
      _this->_impl_.disable_rl_ = from._impl_.disable_rl_;
    }
    if (CheckHasBit(cached_has_bits, 0x10000000U)) {
      _this->_impl_.persona_addr_compat_layout_ = from._impl_.persona_addr_compat_layout_;
    }
    if (CheckHasBit(cached_has_bits, 0x20000000U)) {
      _this->_impl_.persona_mmap_page_zero_ = from._impl_.persona_mmap_page_zero_;
    }
    if (CheckHasBit(cached_has_bits, 0x40000000U)) {
      _this->_impl_.persona_read_implies_exec_ = from._impl_.persona_read_implies_exec_;
    }
    if (CheckHasBit(cached_has_bits, 0x80000000U)) {
      _this->_impl_.persona_addr_limit_3gb_ = from._impl_.persona_addr_limit_3gb_;
    }
  }
  cached_has_bits = from._impl_._has_bits_[2];
  if (BatchCheckHasBit(cached_has_bits, 0x000000ffU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _this->_impl_.persona_addr_no_randomize_ = from._impl_.persona_addr_no_randomize_;
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _this->_impl_.clone_newtime_ = from._impl_.clone_newtime_;
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      _this->_impl_.mount_proc_ = from._impl_.mount_proc_;
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      _this->_impl_.cgroup_mem_max_ = from._impl_.cgroup_mem_max_;
    }
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      _this->_impl_.cgroup_mem_memsw_max_ = from._impl_.cgroup_mem_memsw_max_;
    }
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      _this->_impl_.cgroup_pids_max_ = from._impl_.cgroup_pids_max_;
    }
    if (CheckHasBit(cached_has_bits, 0x00000040U)) {
      _this->_impl_.cgroup_net_cls_classid_ = from._impl_.cgroup_net_cls_classid_;
    }
    if (CheckHasBit(cached_has_bits, 0x00000080U)) {
      _this->_impl_.cgroup_cpu_ms_per_sec_ = from._impl_.cgroup_cpu_ms_per_sec_;
    }
  }
  if (BatchCheckHasBit(cached_has_bits, 0x0000ff00U)) {
    if (CheckHasBit(cached_has_bits, 0x00000100U)) {
      _this->_impl_.seccomp_log_ = from._impl_.seccomp_log_;
    }
    if (CheckHasBit(cached_has_bits, 0x00000200U)) {
      _this->_impl_.use_cgroupv2_ = from._impl_.use_cgroupv2_;
    }
    if (CheckHasBit(cached_has_bits, 0x00000400U)) {
      _this->_impl_.detect_cgroupv2_ = from._impl_.detect_cgroupv2_;
    }
    if (CheckHasBit(cached_has_bits, 0x00000800U)) {
      _this->_impl_.iface_no_lo_ = from._impl_.iface_no_lo_;
    }
    if (CheckHasBit(cached_has_bits, 0x00001000U)) {
      _this->_impl_.clone_newipc_ = from._impl_.clone_newipc_;
    }
    if (CheckHasBit(cached_has_bits, 0x00002000U)) {
      _this->_impl_.clone_newuts_ = from._impl_.clone_newuts_;
    }
    if (CheckHasBit(cached_has_bits, 0x00004000U)) {
      _this->_impl_.clone_newcgroup_ = from._impl_.clone_newcgroup_;
    }
    if (CheckHasBit(cached_has_bits, 0x00008000U)) {
      _this->_impl_.rlimit_cpu_ = from._impl_.rlimit_cpu_;
    }
  }
  if (BatchCheckHasBit(cached_has_bits, 0x00ff0000U)) {
    if (CheckHasBit(cached_has_bits, 0x00010000U)) {
      _this->_impl_.rlimit_fsize_ = from._impl_.rlimit_fsize_;
    }
    if (CheckHasBit(cached_has_bits, 0x00020000U)) {
      _this->_impl_.rlimit_nofile_ = from._impl_.rlimit_nofile_;
    }
    if (CheckHasBit(cached_has_bits, 0x00040000U)) {
      _this->_impl_.rlimit_nproc_ = from._impl_.rlimit_nproc_;
    }
    if (CheckHasBit(cached_has_bits, 0x00080000U)) {
      _this->_impl_.rlimit_stack_ = from._impl_.rlimit_stack_;
    }
    if (CheckHasBit(cached_has_bits, 0x00100000U)) {
      _this->_impl_.rlimit_nproc_type_ = from._impl_.rlimit_nproc_type_;
    }
    if (CheckHasBit(cached_has_bits, 0x00200000U)) {
      _this->_impl_.rlimit_stack_type_ = from._impl_.rlimit_stack_type_;
    }
    if (CheckHasBit(cached_has_bits, 0x00400000U)) {
      _this->_impl_.rlimit_memlock_ = from._impl_.rlimit_memlock_;
    }
    if (CheckHasBit(cached_has_bits, 0x00800000U)) {
      _this->_impl_.rlimit_memlock_type_ = from._impl_.rlimit_memlock_type_;
    }
  }
  if (BatchCheckHasBit(cached_has_bits, 0xff000000U)) {
    if (CheckHasBit(cached_has_bits, 0x01000000U)) {
      _this->_impl_.rlimit_rtprio_type_ = from._impl_.rlimit_rtprio_type_;
    }
    if (CheckHasBit(cached_has_bits, 0x02000000U)) {
      _this->_impl_.rlimit_msgqueue_ = from._impl_.rlimit_msgqueue_;
    }
    if (CheckHasBit(cached_has_bits, 0x04000000U)) {
      _this->_impl_.rlimit_msgqueue_type_ = from._impl_.rlimit_msgqueue_type_;
    }
    if (CheckHasBit(cached_has_bits, 0x08000000U)) {
      _this->_impl_.clone_newnet_ = from._impl_.clone_newnet_;
    }
    if (CheckHasBit(cached_has_bits, 0x10000000U)) {
      _this->_impl_.clone_newuser_ = from._impl_.clone_newuser_;
    }
    if (CheckHasBit(cached_has_bits, 0x20000000U)) {
      _this->_impl_.clone_newns_ = from._impl_.clone_newns_;
    }
    if (CheckHasBit(cached_has_bits, 0x40000000U)) {
      _this->_impl_.clone_newpid_ = from._impl_.clone_newpid_;
    }
    if (CheckHasBit(cached_has_bits, 0x80000000U)) {
      _this->_impl_.cgroup_mem_swap_max_ = from._impl_.cgroup_mem_swap_max_;
    }
  }
  _this->_impl_._has_bits_.Or(from._impl_._has_bits_);
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

void NsJailConfig::CopyFrom(const NsJailConfig& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:nsjail.NsJailConfig)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

PROTOBUF_NOINLINE bool NsJailConfig::IsInitializedImpl(
    const MessageLite& msg) {
  auto& this_ = static_cast<const NsJailConfig&>(msg);
  if (!::google::protobuf::internal::AllAreInitialized(this_._internal_mount()))
    return false;
  if (CheckHasBit(this_._impl_._has_bits_[1], 0x00200000U)) {
    if (!this_._impl_.exec_bin_->IsInitialized()) return false;
  }
  return true;
}

void NsJailConfig::InternalSwap(NsJailConfig* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  auto* arena = GetArena();
  ABSL_DCHECK_EQ(arena, other->GetArena());
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  swap(_impl_._has_bits_[1], other->_impl_._has_bits_[1]);
  swap(_impl_._has_bits_[2], other->_impl_._has_bits_[2]);
  _impl_.description_.InternalSwap(&other->_impl_.description_);
  _impl_.envar_.InternalSwap(&other->_impl_.envar_);
  _impl_.cap_.InternalSwap(&other->_impl_.cap_);
  _impl_.pass_fd_.InternalSwap(&other->_impl_.pass_fd_);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.name_, &other->_impl_.name_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.hostname_, &other->_impl_.hostname_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.cwd_, &other->_impl_.cwd_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.bindhost_, &other->_impl_.bindhost_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.log_file_, &other->_impl_.log_file_, arena);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_.nice_level_)
      + sizeof(NsJailConfig::_impl_.nice_level_)
      - PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_.port_)>(
          reinterpret_cast<char*>(&_impl_.port_),
          reinterpret_cast<char*>(&other->_impl_.port_));
  _impl_.uidmap_.InternalSwap(&other->_impl_.uidmap_);
  _impl_.gidmap_.InternalSwap(&other->_impl_.gidmap_);
  _impl_.mount_.InternalSwap(&other->_impl_.mount_);
  _impl_.seccomp_string_.InternalSwap(&other->_impl_.seccomp_string_);
  _impl_.iface_own_.InternalSwap(&other->_impl_.iface_own_);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.seccomp_policy_file_, &other->_impl_.seccomp_policy_file_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.cgroup_mem_mount_, &other->_impl_.cgroup_mem_mount_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.cgroup_mem_parent_, &other->_impl_.cgroup_mem_parent_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.cgroup_pids_mount_, &other->_impl_.cgroup_pids_mount_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.cgroup_pids_parent_, &other->_impl_.cgroup_pids_parent_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.cgroup_net_cls_mount_, &other->_impl_.cgroup_net_cls_mount_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.cgroup_net_cls_parent_, &other->_impl_.cgroup_net_cls_parent_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.cgroup_cpu_mount_, &other->_impl_.cgroup_cpu_mount_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.cgroup_cpu_parent_, &other->_impl_.cgroup_cpu_parent_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.cgroupv2_mount_, &other->_impl_.cgroupv2_mount_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.macvlan_iface_, &other->_impl_.macvlan_iface_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.macvlan_vs_ip_, &other->_impl_.macvlan_vs_ip_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.macvlan_vs_nm_, &other->_impl_.macvlan_vs_nm_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.macvlan_vs_gw_, &other->_impl_.macvlan_vs_gw_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.macvlan_vs_ma_, &other->_impl_.macvlan_vs_ma_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.macvlan_vs_mo_, &other->_impl_.macvlan_vs_mo_, arena);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_.cgroup_mem_swap_max_)
      + sizeof(NsJailConfig::_impl_.cgroup_mem_swap_max_)
      - PROTOBUF_FIELD_OFFSET(NsJailConfig, _impl_.user_net_)>(
          reinterpret_cast<char*>(&_impl_.user_net_),
          reinterpret_cast<char*>(&other->_impl_.user_net_));
}

::google::protobuf::Metadata NsJailConfig::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// @@protoc_insertion_point(namespace_scope)
}  // namespace nsjail
namespace google {
namespace protobuf {
}  // namespace protobuf
}  // namespace google
// @@protoc_insertion_point(global_scope)
PROTOBUF_ATTRIBUTE_INIT_PRIORITY2 static ::std::false_type
    _static_init2_ [[maybe_unused]] =
        (::_pbi::AddDescriptors(&descriptor_table_config_2eproto),
         ::std::false_type{});
#include "google/protobuf/port_undef.inc"
