Auto-generate files after cl/665944029
diff --git a/src/google/protobuf/any.pb.cc b/src/google/protobuf/any.pb.cc
index f27d031..2f38832 100644
--- a/src/google/protobuf/any.pb.cc
+++ b/src/google/protobuf/any.pb.cc
@@ -10,7 +10,6 @@
 #include "google/protobuf/io/coded_stream.h"
 #include "google/protobuf/generated_message_tctable_impl.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"
@@ -189,13 +188,6 @@
   _impl_.~Impl_();
 }
 
-inline void* Any::PlacementNew_(const void*, void* mem,
-                                        ::google::protobuf::Arena* arena) {
-  return ::new (mem) Any(arena);
-}
-constexpr auto Any::InternalNewImpl_() {
-  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(Any));
-}
 PROTOBUF_CONSTINIT
 PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
 const ::google::protobuf::MessageLite::ClassDataFull
@@ -206,9 +198,9 @@
             nullptr,  // OnDemandRegisterArenaDtor
             nullptr,  // IsInitialized
             &Any::MergeImpl,
-            ::google::protobuf::Message::GetNewImpl<Any>(),
 #if defined(PROTOBUF_CUSTOM_VTABLE)
             ::google::protobuf::Message::GetDeleteImpl<Any>(),
+            ::google::protobuf::Message::GetNewImpl<Any>(),
             ::google::protobuf::Message::GetClearImpl<Any>(), &Any::ByteSizeLong,
                 &Any::_InternalSerialize,
 #endif  // PROTOBUF_CUSTOM_VTABLE
diff --git a/src/google/protobuf/any.pb.h b/src/google/protobuf/any.pb.h
index c073a19..79bea6d 100644
--- a/src/google/protobuf/any.pb.h
+++ b/src/google/protobuf/any.pb.h
@@ -190,7 +190,7 @@
 
   // implements Message ----------------------------------------------
 
-  Any* New(::google::protobuf::Arena* arena = nullptr) const {
+  Any* New(::google::protobuf::Arena* arena = nullptr) const PROTOBUF_FINAL {
     return ::google::protobuf::Message::DefaultConstruct<Any>(arena);
   }
   using ::google::protobuf::Message::CopyFrom;
@@ -246,9 +246,6 @@
     *this = ::std::move(from);
   }
   const ::google::protobuf::Message::ClassData* GetClassData() const PROTOBUF_FINAL;
-  static void* PlacementNew_(const void*, void* mem,
-                             ::google::protobuf::Arena* arena);
-  static constexpr auto InternalNewImpl_();
   static const ::google::protobuf::Message::ClassDataFull _class_data_;
 
  public:
diff --git a/src/google/protobuf/api.pb.cc b/src/google/protobuf/api.pb.cc
index ddec083..2d51ccf 100644
--- a/src/google/protobuf/api.pb.cc
+++ b/src/google/protobuf/api.pb.cc
@@ -10,7 +10,6 @@
 #include "google/protobuf/io/coded_stream.h"
 #include "google/protobuf/generated_message_tctable_impl.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"
@@ -335,32 +334,6 @@
   _impl_.~Impl_();
 }
 
-inline void* Api::PlacementNew_(const void*, void* mem,
-                                        ::google::protobuf::Arena* arena) {
-  return ::new (mem) Api(arena);
-}
-constexpr auto Api::InternalNewImpl_() {
-  constexpr auto arena_bits = ::google::protobuf::internal::EncodePlacementArenaOffsets({
-      PROTOBUF_FIELD_OFFSET(Api, _impl_.methods_) +
-          decltype(Api::_impl_.methods_)::
-              InternalGetArenaOffset(
-                  ::google::protobuf::Message::internal_visibility()),
-      PROTOBUF_FIELD_OFFSET(Api, _impl_.options_) +
-          decltype(Api::_impl_.options_)::
-              InternalGetArenaOffset(
-                  ::google::protobuf::Message::internal_visibility()),
-      PROTOBUF_FIELD_OFFSET(Api, _impl_.mixins_) +
-          decltype(Api::_impl_.mixins_)::
-              InternalGetArenaOffset(
-                  ::google::protobuf::Message::internal_visibility()),
-  });
-  if (arena_bits.has_value()) {
-    return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(Api), *arena_bits);
-  } else {
-    return ::google::protobuf::internal::MessageCreator(&Api::PlacementNew_,
-                                 sizeof(Api));
-  }
-}
 PROTOBUF_CONSTINIT
 PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
 const ::google::protobuf::MessageLite::ClassDataFull
@@ -371,9 +344,9 @@
             nullptr,  // OnDemandRegisterArenaDtor
             nullptr,  // IsInitialized
             &Api::MergeImpl,
-            ::google::protobuf::Message::GetNewImpl<Api>(),
 #if defined(PROTOBUF_CUSTOM_VTABLE)
             ::google::protobuf::Message::GetDeleteImpl<Api>(),
+            ::google::protobuf::Message::GetNewImpl<Api>(),
             ::google::protobuf::Message::GetClearImpl<Api>(), &Api::ByteSizeLong,
                 &Api::_InternalSerialize,
 #endif  // PROTOBUF_CUSTOM_VTABLE
@@ -796,24 +769,6 @@
   _impl_.~Impl_();
 }
 
-inline void* Method::PlacementNew_(const void*, void* mem,
-                                        ::google::protobuf::Arena* arena) {
-  return ::new (mem) Method(arena);
-}
-constexpr auto Method::InternalNewImpl_() {
-  constexpr auto arena_bits = ::google::protobuf::internal::EncodePlacementArenaOffsets({
-      PROTOBUF_FIELD_OFFSET(Method, _impl_.options_) +
-          decltype(Method::_impl_.options_)::
-              InternalGetArenaOffset(
-                  ::google::protobuf::Message::internal_visibility()),
-  });
-  if (arena_bits.has_value()) {
-    return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(Method), *arena_bits);
-  } else {
-    return ::google::protobuf::internal::MessageCreator(&Method::PlacementNew_,
-                                 sizeof(Method));
-  }
-}
 PROTOBUF_CONSTINIT
 PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
 const ::google::protobuf::MessageLite::ClassDataFull
@@ -824,9 +779,9 @@
             nullptr,  // OnDemandRegisterArenaDtor
             nullptr,  // IsInitialized
             &Method::MergeImpl,
-            ::google::protobuf::Message::GetNewImpl<Method>(),
 #if defined(PROTOBUF_CUSTOM_VTABLE)
             ::google::protobuf::Message::GetDeleteImpl<Method>(),
+            ::google::protobuf::Message::GetNewImpl<Method>(),
             ::google::protobuf::Message::GetClearImpl<Method>(), &Method::ByteSizeLong,
                 &Method::_InternalSerialize,
 #endif  // PROTOBUF_CUSTOM_VTABLE
@@ -1192,13 +1147,6 @@
   _impl_.~Impl_();
 }
 
-inline void* Mixin::PlacementNew_(const void*, void* mem,
-                                        ::google::protobuf::Arena* arena) {
-  return ::new (mem) Mixin(arena);
-}
-constexpr auto Mixin::InternalNewImpl_() {
-  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(Mixin));
-}
 PROTOBUF_CONSTINIT
 PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
 const ::google::protobuf::MessageLite::ClassDataFull
@@ -1209,9 +1157,9 @@
             nullptr,  // OnDemandRegisterArenaDtor
             nullptr,  // IsInitialized
             &Mixin::MergeImpl,
-            ::google::protobuf::Message::GetNewImpl<Mixin>(),
 #if defined(PROTOBUF_CUSTOM_VTABLE)
             ::google::protobuf::Message::GetDeleteImpl<Mixin>(),
+            ::google::protobuf::Message::GetNewImpl<Mixin>(),
             ::google::protobuf::Message::GetClearImpl<Mixin>(), &Mixin::ByteSizeLong,
                 &Mixin::_InternalSerialize,
 #endif  // PROTOBUF_CUSTOM_VTABLE
diff --git a/src/google/protobuf/api.pb.h b/src/google/protobuf/api.pb.h
index 234e7c4..d05be84 100644
--- a/src/google/protobuf/api.pb.h
+++ b/src/google/protobuf/api.pb.h
@@ -150,7 +150,7 @@
 
   // implements Message ----------------------------------------------
 
-  Mixin* New(::google::protobuf::Arena* arena = nullptr) const {
+  Mixin* New(::google::protobuf::Arena* arena = nullptr) const PROTOBUF_FINAL {
     return ::google::protobuf::Message::DefaultConstruct<Mixin>(arena);
   }
   using ::google::protobuf::Message::CopyFrom;
@@ -206,9 +206,6 @@
     *this = ::std::move(from);
   }
   const ::google::protobuf::Message::ClassData* GetClassData() const PROTOBUF_FINAL;
-  static void* PlacementNew_(const void*, void* mem,
-                             ::google::protobuf::Arena* arena);
-  static constexpr auto InternalNewImpl_();
   static const ::google::protobuf::Message::ClassDataFull _class_data_;
 
  public:
@@ -363,7 +360,7 @@
 
   // implements Message ----------------------------------------------
 
-  Method* New(::google::protobuf::Arena* arena = nullptr) const {
+  Method* New(::google::protobuf::Arena* arena = nullptr) const PROTOBUF_FINAL {
     return ::google::protobuf::Message::DefaultConstruct<Method>(arena);
   }
   using ::google::protobuf::Message::CopyFrom;
@@ -419,9 +416,6 @@
     *this = ::std::move(from);
   }
   const ::google::protobuf::Message::ClassData* GetClassData() const PROTOBUF_FINAL;
-  static void* PlacementNew_(const void*, void* mem,
-                             ::google::protobuf::Arena* arena);
-  static constexpr auto InternalNewImpl_();
   static const ::google::protobuf::Message::ClassDataFull _class_data_;
 
  public:
@@ -649,7 +643,7 @@
 
   // implements Message ----------------------------------------------
 
-  Api* New(::google::protobuf::Arena* arena = nullptr) const {
+  Api* New(::google::protobuf::Arena* arena = nullptr) const PROTOBUF_FINAL {
     return ::google::protobuf::Message::DefaultConstruct<Api>(arena);
   }
   using ::google::protobuf::Message::CopyFrom;
@@ -705,9 +699,6 @@
     *this = ::std::move(from);
   }
   const ::google::protobuf::Message::ClassData* GetClassData() const PROTOBUF_FINAL;
-  static void* PlacementNew_(const void*, void* mem,
-                             ::google::protobuf::Arena* arena);
-  static constexpr auto InternalNewImpl_();
   static const ::google::protobuf::Message::ClassDataFull _class_data_;
 
  public:
diff --git a/src/google/protobuf/duration.pb.cc b/src/google/protobuf/duration.pb.cc
index 526fb9b..ddbda94 100644
--- a/src/google/protobuf/duration.pb.cc
+++ b/src/google/protobuf/duration.pb.cc
@@ -10,7 +10,6 @@
 #include "google/protobuf/io/coded_stream.h"
 #include "google/protobuf/generated_message_tctable_impl.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"
@@ -152,13 +151,6 @@
   _impl_.~Impl_();
 }
 
-inline void* Duration::PlacementNew_(const void*, void* mem,
-                                        ::google::protobuf::Arena* arena) {
-  return ::new (mem) Duration(arena);
-}
-constexpr auto Duration::InternalNewImpl_() {
-  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(Duration));
-}
 PROTOBUF_CONSTINIT
 PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
 const ::google::protobuf::MessageLite::ClassDataFull
@@ -169,9 +161,9 @@
             nullptr,  // OnDemandRegisterArenaDtor
             nullptr,  // IsInitialized
             &Duration::MergeImpl,
-            ::google::protobuf::Message::GetNewImpl<Duration>(),
 #if defined(PROTOBUF_CUSTOM_VTABLE)
             ::google::protobuf::Message::GetDeleteImpl<Duration>(),
+            ::google::protobuf::Message::GetNewImpl<Duration>(),
             ::google::protobuf::Message::GetClearImpl<Duration>(), &Duration::ByteSizeLong,
                 &Duration::_InternalSerialize,
 #endif  // PROTOBUF_CUSTOM_VTABLE
diff --git a/src/google/protobuf/duration.pb.h b/src/google/protobuf/duration.pb.h
index d3c3b4d..b1414b3 100644
--- a/src/google/protobuf/duration.pb.h
+++ b/src/google/protobuf/duration.pb.h
@@ -142,7 +142,7 @@
 
   // implements Message ----------------------------------------------
 
-  Duration* New(::google::protobuf::Arena* arena = nullptr) const {
+  Duration* New(::google::protobuf::Arena* arena = nullptr) const PROTOBUF_FINAL {
     return ::google::protobuf::Message::DefaultConstruct<Duration>(arena);
   }
   using ::google::protobuf::Message::CopyFrom;
@@ -198,9 +198,6 @@
     *this = ::std::move(from);
   }
   const ::google::protobuf::Message::ClassData* GetClassData() const PROTOBUF_FINAL;
-  static void* PlacementNew_(const void*, void* mem,
-                             ::google::protobuf::Arena* arena);
-  static constexpr auto InternalNewImpl_();
   static const ::google::protobuf::Message::ClassDataFull _class_data_;
 
  public:
diff --git a/src/google/protobuf/empty.pb.cc b/src/google/protobuf/empty.pb.cc
index 31811d5..ce7099c 100644
--- a/src/google/protobuf/empty.pb.cc
+++ b/src/google/protobuf/empty.pb.cc
@@ -10,7 +10,6 @@
 #include "google/protobuf/io/coded_stream.h"
 #include "google/protobuf/generated_message_tctable_impl.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"
@@ -127,13 +126,6 @@
   // @@protoc_insertion_point(copy_constructor:google.protobuf.Empty)
 }
 
-inline void* Empty::PlacementNew_(const void*, void* mem,
-                                        ::google::protobuf::Arena* arena) {
-  return ::new (mem) Empty(arena);
-}
-constexpr auto Empty::InternalNewImpl_() {
-  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(Empty));
-}
 PROTOBUF_CONSTINIT
 PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
 const ::google::protobuf::MessageLite::ClassDataFull
@@ -144,9 +136,9 @@
             nullptr,  // OnDemandRegisterArenaDtor
             nullptr,  // IsInitialized
             &Empty::MergeImpl,
-            ::google::protobuf::internal::ZeroFieldsBase::GetNewImpl<Empty>(),
 #if defined(PROTOBUF_CUSTOM_VTABLE)
             ::google::protobuf::internal::ZeroFieldsBase::GetDeleteImpl<Empty>(),
+            ::google::protobuf::internal::ZeroFieldsBase::GetNewImpl<Empty>(),
             ::google::protobuf::internal::ZeroFieldsBase::GetClearImpl<Empty>(), &Empty::ByteSizeLong,
                 &Empty::_InternalSerialize,
 #endif  // PROTOBUF_CUSTOM_VTABLE
diff --git a/src/google/protobuf/empty.pb.h b/src/google/protobuf/empty.pb.h
index 328d119..cc0f39a 100644
--- a/src/google/protobuf/empty.pb.h
+++ b/src/google/protobuf/empty.pb.h
@@ -142,7 +142,7 @@
 
   // implements Message ----------------------------------------------
 
-  Empty* New(::google::protobuf::Arena* arena = nullptr) const {
+  Empty* New(::google::protobuf::Arena* arena = nullptr) const PROTOBUF_FINAL {
     return ::google::protobuf::internal::ZeroFieldsBase::DefaultConstruct<Empty>(arena);
   }
   using ::google::protobuf::internal::ZeroFieldsBase::CopyFrom;
@@ -170,9 +170,6 @@
     *this = ::std::move(from);
   }
   const ::google::protobuf::internal::ZeroFieldsBase::ClassData* GetClassData() const PROTOBUF_FINAL;
-  static void* PlacementNew_(const void*, void* mem,
-                             ::google::protobuf::Arena* arena);
-  static constexpr auto InternalNewImpl_();
   static const ::google::protobuf::internal::ZeroFieldsBase::ClassDataFull _class_data_;
 
  public:
diff --git a/src/google/protobuf/field_mask.pb.cc b/src/google/protobuf/field_mask.pb.cc
index 8b0cebc..9de7ccf 100644
--- a/src/google/protobuf/field_mask.pb.cc
+++ b/src/google/protobuf/field_mask.pb.cc
@@ -10,7 +10,6 @@
 #include "google/protobuf/io/coded_stream.h"
 #include "google/protobuf/generated_message_tctable_impl.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"
@@ -162,24 +161,6 @@
   _impl_.~Impl_();
 }
 
-inline void* FieldMask::PlacementNew_(const void*, void* mem,
-                                        ::google::protobuf::Arena* arena) {
-  return ::new (mem) FieldMask(arena);
-}
-constexpr auto FieldMask::InternalNewImpl_() {
-  constexpr auto arena_bits = ::google::protobuf::internal::EncodePlacementArenaOffsets({
-      PROTOBUF_FIELD_OFFSET(FieldMask, _impl_.paths_) +
-          decltype(FieldMask::_impl_.paths_)::
-              InternalGetArenaOffset(
-                  ::google::protobuf::Message::internal_visibility()),
-  });
-  if (arena_bits.has_value()) {
-    return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(FieldMask), *arena_bits);
-  } else {
-    return ::google::protobuf::internal::MessageCreator(&FieldMask::PlacementNew_,
-                                 sizeof(FieldMask));
-  }
-}
 PROTOBUF_CONSTINIT
 PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
 const ::google::protobuf::MessageLite::ClassDataFull
@@ -190,9 +171,9 @@
             nullptr,  // OnDemandRegisterArenaDtor
             nullptr,  // IsInitialized
             &FieldMask::MergeImpl,
-            ::google::protobuf::Message::GetNewImpl<FieldMask>(),
 #if defined(PROTOBUF_CUSTOM_VTABLE)
             ::google::protobuf::Message::GetDeleteImpl<FieldMask>(),
+            ::google::protobuf::Message::GetNewImpl<FieldMask>(),
             ::google::protobuf::Message::GetClearImpl<FieldMask>(), &FieldMask::ByteSizeLong,
                 &FieldMask::_InternalSerialize,
 #endif  // PROTOBUF_CUSTOM_VTABLE
diff --git a/src/google/protobuf/field_mask.pb.h b/src/google/protobuf/field_mask.pb.h
index 552a6e9..b6f7e49 100644
--- a/src/google/protobuf/field_mask.pb.h
+++ b/src/google/protobuf/field_mask.pb.h
@@ -142,7 +142,7 @@
 
   // implements Message ----------------------------------------------
 
-  FieldMask* New(::google::protobuf::Arena* arena = nullptr) const {
+  FieldMask* New(::google::protobuf::Arena* arena = nullptr) const PROTOBUF_FINAL {
     return ::google::protobuf::Message::DefaultConstruct<FieldMask>(arena);
   }
   using ::google::protobuf::Message::CopyFrom;
@@ -198,9 +198,6 @@
     *this = ::std::move(from);
   }
   const ::google::protobuf::Message::ClassData* GetClassData() const PROTOBUF_FINAL;
-  static void* PlacementNew_(const void*, void* mem,
-                             ::google::protobuf::Arena* arena);
-  static constexpr auto InternalNewImpl_();
   static const ::google::protobuf::Message::ClassDataFull _class_data_;
 
  public:
diff --git a/src/google/protobuf/source_context.pb.cc b/src/google/protobuf/source_context.pb.cc
index 86b0aef..84c62f1 100644
--- a/src/google/protobuf/source_context.pb.cc
+++ b/src/google/protobuf/source_context.pb.cc
@@ -10,7 +10,6 @@
 #include "google/protobuf/io/coded_stream.h"
 #include "google/protobuf/generated_message_tctable_impl.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"
@@ -165,13 +164,6 @@
   _impl_.~Impl_();
 }
 
-inline void* SourceContext::PlacementNew_(const void*, void* mem,
-                                        ::google::protobuf::Arena* arena) {
-  return ::new (mem) SourceContext(arena);
-}
-constexpr auto SourceContext::InternalNewImpl_() {
-  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(SourceContext));
-}
 PROTOBUF_CONSTINIT
 PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
 const ::google::protobuf::MessageLite::ClassDataFull
@@ -182,9 +174,9 @@
             nullptr,  // OnDemandRegisterArenaDtor
             nullptr,  // IsInitialized
             &SourceContext::MergeImpl,
-            ::google::protobuf::Message::GetNewImpl<SourceContext>(),
 #if defined(PROTOBUF_CUSTOM_VTABLE)
             ::google::protobuf::Message::GetDeleteImpl<SourceContext>(),
+            ::google::protobuf::Message::GetNewImpl<SourceContext>(),
             ::google::protobuf::Message::GetClearImpl<SourceContext>(), &SourceContext::ByteSizeLong,
                 &SourceContext::_InternalSerialize,
 #endif  // PROTOBUF_CUSTOM_VTABLE
diff --git a/src/google/protobuf/source_context.pb.h b/src/google/protobuf/source_context.pb.h
index 099fb83..806d614 100644
--- a/src/google/protobuf/source_context.pb.h
+++ b/src/google/protobuf/source_context.pb.h
@@ -142,7 +142,7 @@
 
   // implements Message ----------------------------------------------
 
-  SourceContext* New(::google::protobuf::Arena* arena = nullptr) const {
+  SourceContext* New(::google::protobuf::Arena* arena = nullptr) const PROTOBUF_FINAL {
     return ::google::protobuf::Message::DefaultConstruct<SourceContext>(arena);
   }
   using ::google::protobuf::Message::CopyFrom;
@@ -198,9 +198,6 @@
     *this = ::std::move(from);
   }
   const ::google::protobuf::Message::ClassData* GetClassData() const PROTOBUF_FINAL;
-  static void* PlacementNew_(const void*, void* mem,
-                             ::google::protobuf::Arena* arena);
-  static constexpr auto InternalNewImpl_();
   static const ::google::protobuf::Message::ClassDataFull _class_data_;
 
  public:
diff --git a/src/google/protobuf/struct.pb.cc b/src/google/protobuf/struct.pb.cc
index c4e5e7c..df86974 100644
--- a/src/google/protobuf/struct.pb.cc
+++ b/src/google/protobuf/struct.pb.cc
@@ -10,7 +10,6 @@
 #include "google/protobuf/io/coded_stream.h"
 #include "google/protobuf/generated_message_tctable_impl.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"
@@ -245,13 +244,6 @@
               Struct_FieldsEntry_DoNotUse::Struct_FieldsEntry_DoNotUse() : SuperType() {}
               Struct_FieldsEntry_DoNotUse::Struct_FieldsEntry_DoNotUse(::google::protobuf::Arena* arena) : SuperType(arena) {}
 #endif  // PROTOBUF_CUSTOM_VTABLE
-              inline void* Struct_FieldsEntry_DoNotUse::PlacementNew_(const void*, void* mem,
-                                                      ::google::protobuf::Arena* arena) {
-                return ::new (mem) Struct_FieldsEntry_DoNotUse(arena);
-              }
-              constexpr auto Struct_FieldsEntry_DoNotUse::InternalNewImpl_() {
-                return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(Struct_FieldsEntry_DoNotUse));
-              }
               PROTOBUF_CONSTINIT
               PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
               const ::google::protobuf::MessageLite::ClassDataFull
@@ -262,9 +254,9 @@
                           nullptr,  // OnDemandRegisterArenaDtor
                           nullptr,  // IsInitialized
                           &Struct_FieldsEntry_DoNotUse::MergeImpl,
-                          ::google::protobuf::Message::GetNewImpl<Struct_FieldsEntry_DoNotUse>(),
               #if defined(PROTOBUF_CUSTOM_VTABLE)
                           ::google::protobuf::Message::GetDeleteImpl<Struct_FieldsEntry_DoNotUse>(),
+                          ::google::protobuf::Message::GetNewImpl<Struct_FieldsEntry_DoNotUse>(),
                           ::google::protobuf::Message::ClearImpl, ::google::protobuf::Message::ByteSizeLongImpl,
                               ::google::protobuf::Message::_InternalSerializeImpl,
               #endif  // PROTOBUF_CUSTOM_VTABLE
@@ -379,28 +371,6 @@
   _impl_.~Impl_();
 }
 
-inline void* Struct::PlacementNew_(const void*, void* mem,
-                                        ::google::protobuf::Arena* arena) {
-  return ::new (mem) Struct(arena);
-}
-constexpr auto Struct::InternalNewImpl_() {
-  constexpr auto arena_bits = ::google::protobuf::internal::EncodePlacementArenaOffsets({
-      PROTOBUF_FIELD_OFFSET(Struct, _impl_.fields_) +
-          decltype(Struct::_impl_.fields_)::
-              InternalGetArenaOffset(
-                  ::google::protobuf::Message::internal_visibility()),
-      PROTOBUF_FIELD_OFFSET(Struct, _impl_.fields_) +
-          decltype(Struct::_impl_.fields_)::
-              InternalGetArenaOffsetAlt(
-                  ::google::protobuf::Message::internal_visibility()),
-  });
-  if (arena_bits.has_value()) {
-    return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(Struct), *arena_bits);
-  } else {
-    return ::google::protobuf::internal::MessageCreator(&Struct::PlacementNew_,
-                                 sizeof(Struct));
-  }
-}
 PROTOBUF_CONSTINIT
 PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
 const ::google::protobuf::MessageLite::ClassDataFull
@@ -411,9 +381,9 @@
             nullptr,  // OnDemandRegisterArenaDtor
             nullptr,  // IsInitialized
             &Struct::MergeImpl,
-            ::google::protobuf::Message::GetNewImpl<Struct>(),
 #if defined(PROTOBUF_CUSTOM_VTABLE)
             ::google::protobuf::Message::GetDeleteImpl<Struct>(),
+            ::google::protobuf::Message::GetNewImpl<Struct>(),
             ::google::protobuf::Message::GetClearImpl<Struct>(), &Struct::ByteSizeLong,
                 &Struct::_InternalSerialize,
 #endif  // PROTOBUF_CUSTOM_VTABLE
@@ -460,7 +430,7 @@
         decltype(Struct()._impl_.fields_)>(
         1, 0, 0, 9,
         11)},
-    {::_pbi::TcParser::GetTable<::google::protobuf::Value>()},
+    {::_pbi::TcParser::CreateInArenaStorageCb<::google::protobuf::Value>},
   }}, {{
     "\26\6\0\0\0\0\0\0"
     "google.protobuf.Struct"
@@ -745,13 +715,6 @@
 }
 
 
-inline void* Value::PlacementNew_(const void*, void* mem,
-                                        ::google::protobuf::Arena* arena) {
-  return ::new (mem) Value(arena);
-}
-constexpr auto Value::InternalNewImpl_() {
-  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(Value));
-}
 PROTOBUF_CONSTINIT
 PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
 const ::google::protobuf::MessageLite::ClassDataFull
@@ -762,9 +725,9 @@
             nullptr,  // OnDemandRegisterArenaDtor
             nullptr,  // IsInitialized
             &Value::MergeImpl,
-            ::google::protobuf::Message::GetNewImpl<Value>(),
 #if defined(PROTOBUF_CUSTOM_VTABLE)
             ::google::protobuf::Message::GetDeleteImpl<Value>(),
+            ::google::protobuf::Message::GetNewImpl<Value>(),
             ::google::protobuf::Message::GetClearImpl<Value>(), &Value::ByteSizeLong,
                 &Value::_InternalSerialize,
 #endif  // PROTOBUF_CUSTOM_VTABLE
@@ -1102,24 +1065,6 @@
   _impl_.~Impl_();
 }
 
-inline void* ListValue::PlacementNew_(const void*, void* mem,
-                                        ::google::protobuf::Arena* arena) {
-  return ::new (mem) ListValue(arena);
-}
-constexpr auto ListValue::InternalNewImpl_() {
-  constexpr auto arena_bits = ::google::protobuf::internal::EncodePlacementArenaOffsets({
-      PROTOBUF_FIELD_OFFSET(ListValue, _impl_.values_) +
-          decltype(ListValue::_impl_.values_)::
-              InternalGetArenaOffset(
-                  ::google::protobuf::Message::internal_visibility()),
-  });
-  if (arena_bits.has_value()) {
-    return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(ListValue), *arena_bits);
-  } else {
-    return ::google::protobuf::internal::MessageCreator(&ListValue::PlacementNew_,
-                                 sizeof(ListValue));
-  }
-}
 PROTOBUF_CONSTINIT
 PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
 const ::google::protobuf::MessageLite::ClassDataFull
@@ -1130,9 +1075,9 @@
             nullptr,  // OnDemandRegisterArenaDtor
             nullptr,  // IsInitialized
             &ListValue::MergeImpl,
-            ::google::protobuf::Message::GetNewImpl<ListValue>(),
 #if defined(PROTOBUF_CUSTOM_VTABLE)
             ::google::protobuf::Message::GetDeleteImpl<ListValue>(),
+            ::google::protobuf::Message::GetNewImpl<ListValue>(),
             ::google::protobuf::Message::GetClearImpl<ListValue>(), &ListValue::ByteSizeLong,
                 &ListValue::_InternalSerialize,
 #endif  // PROTOBUF_CUSTOM_VTABLE
diff --git a/src/google/protobuf/struct.pb.h b/src/google/protobuf/struct.pb.h
index c4e3ec5..9fceeb3 100644
--- a/src/google/protobuf/struct.pb.h
+++ b/src/google/protobuf/struct.pb.h
@@ -187,7 +187,7 @@
 
   // implements Message ----------------------------------------------
 
-  ListValue* New(::google::protobuf::Arena* arena = nullptr) const {
+  ListValue* New(::google::protobuf::Arena* arena = nullptr) const PROTOBUF_FINAL {
     return ::google::protobuf::Message::DefaultConstruct<ListValue>(arena);
   }
   using ::google::protobuf::Message::CopyFrom;
@@ -243,9 +243,6 @@
     *this = ::std::move(from);
   }
   const ::google::protobuf::Message::ClassData* GetClassData() const PROTOBUF_FINAL;
-  static void* PlacementNew_(const void*, void* mem,
-                             ::google::protobuf::Arena* arena);
-  static constexpr auto InternalNewImpl_();
   static const ::google::protobuf::Message::ClassDataFull _class_data_;
 
  public:
@@ -383,7 +380,7 @@
 
   // implements Message ----------------------------------------------
 
-  Struct* New(::google::protobuf::Arena* arena = nullptr) const {
+  Struct* New(::google::protobuf::Arena* arena = nullptr) const PROTOBUF_FINAL {
     return ::google::protobuf::Message::DefaultConstruct<Struct>(arena);
   }
   using ::google::protobuf::Message::CopyFrom;
@@ -439,9 +436,6 @@
     *this = ::std::move(from);
   }
   const ::google::protobuf::Message::ClassData* GetClassData() const PROTOBUF_FINAL;
-  static void* PlacementNew_(const void*, void* mem,
-                             ::google::protobuf::Arena* arena);
-  static constexpr auto InternalNewImpl_();
   static const ::google::protobuf::Message::ClassDataFull _class_data_;
 
  public:
@@ -525,9 +519,6 @@
 
 
  private:
-  friend class ::google::protobuf::MessageLite;
-  friend struct ::TableStruct_google_2fprotobuf_2fstruct_2eproto;
-
   friend class ::google::protobuf::internal::TcParser;
   static const ::google::protobuf::internal::TcParseTable<
       1, 2, 1,
@@ -535,10 +526,8 @@
       _table_;
 
   const ::google::protobuf::Message::ClassData* GetClassData() const PROTOBUF_FINAL;
-  static void* PlacementNew_(const void*, void* mem,
-                             ::google::protobuf::Arena* arena);
-  static constexpr auto InternalNewImpl_();
   static const ::google::protobuf::Message::ClassDataFull _class_data_;
+  friend struct ::TableStruct_google_2fprotobuf_2fstruct_2eproto;
 };
 // -------------------------------------------------------------------
 
@@ -628,7 +617,7 @@
 
   // implements Message ----------------------------------------------
 
-  Value* New(::google::protobuf::Arena* arena = nullptr) const {
+  Value* New(::google::protobuf::Arena* arena = nullptr) const PROTOBUF_FINAL {
     return ::google::protobuf::Message::DefaultConstruct<Value>(arena);
   }
   using ::google::protobuf::Message::CopyFrom;
@@ -684,9 +673,6 @@
     *this = ::std::move(from);
   }
   const ::google::protobuf::Message::ClassData* GetClassData() const PROTOBUF_FINAL;
-  static void* PlacementNew_(const void*, void* mem,
-                             ::google::protobuf::Arena* arena);
-  static constexpr auto InternalNewImpl_();
   static const ::google::protobuf::Message::ClassDataFull _class_data_;
 
  public:
diff --git a/src/google/protobuf/timestamp.pb.cc b/src/google/protobuf/timestamp.pb.cc
index 8f7597e..9dbca85 100644
--- a/src/google/protobuf/timestamp.pb.cc
+++ b/src/google/protobuf/timestamp.pb.cc
@@ -10,7 +10,6 @@
 #include "google/protobuf/io/coded_stream.h"
 #include "google/protobuf/generated_message_tctable_impl.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"
@@ -152,13 +151,6 @@
   _impl_.~Impl_();
 }
 
-inline void* Timestamp::PlacementNew_(const void*, void* mem,
-                                        ::google::protobuf::Arena* arena) {
-  return ::new (mem) Timestamp(arena);
-}
-constexpr auto Timestamp::InternalNewImpl_() {
-  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(Timestamp));
-}
 PROTOBUF_CONSTINIT
 PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
 const ::google::protobuf::MessageLite::ClassDataFull
@@ -169,9 +161,9 @@
             nullptr,  // OnDemandRegisterArenaDtor
             nullptr,  // IsInitialized
             &Timestamp::MergeImpl,
-            ::google::protobuf::Message::GetNewImpl<Timestamp>(),
 #if defined(PROTOBUF_CUSTOM_VTABLE)
             ::google::protobuf::Message::GetDeleteImpl<Timestamp>(),
+            ::google::protobuf::Message::GetNewImpl<Timestamp>(),
             ::google::protobuf::Message::GetClearImpl<Timestamp>(), &Timestamp::ByteSizeLong,
                 &Timestamp::_InternalSerialize,
 #endif  // PROTOBUF_CUSTOM_VTABLE
diff --git a/src/google/protobuf/timestamp.pb.h b/src/google/protobuf/timestamp.pb.h
index 3f68d60..1b9cc67 100644
--- a/src/google/protobuf/timestamp.pb.h
+++ b/src/google/protobuf/timestamp.pb.h
@@ -142,7 +142,7 @@
 
   // implements Message ----------------------------------------------
 
-  Timestamp* New(::google::protobuf::Arena* arena = nullptr) const {
+  Timestamp* New(::google::protobuf::Arena* arena = nullptr) const PROTOBUF_FINAL {
     return ::google::protobuf::Message::DefaultConstruct<Timestamp>(arena);
   }
   using ::google::protobuf::Message::CopyFrom;
@@ -198,9 +198,6 @@
     *this = ::std::move(from);
   }
   const ::google::protobuf::Message::ClassData* GetClassData() const PROTOBUF_FINAL;
-  static void* PlacementNew_(const void*, void* mem,
-                             ::google::protobuf::Arena* arena);
-  static constexpr auto InternalNewImpl_();
   static const ::google::protobuf::Message::ClassDataFull _class_data_;
 
  public:
diff --git a/src/google/protobuf/type.pb.cc b/src/google/protobuf/type.pb.cc
index 654f320..5597e6d 100644
--- a/src/google/protobuf/type.pb.cc
+++ b/src/google/protobuf/type.pb.cc
@@ -10,7 +10,6 @@
 #include "google/protobuf/io/coded_stream.h"
 #include "google/protobuf/generated_message_tctable_impl.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"
@@ -527,32 +526,6 @@
   _impl_.~Impl_();
 }
 
-inline void* Type::PlacementNew_(const void*, void* mem,
-                                        ::google::protobuf::Arena* arena) {
-  return ::new (mem) Type(arena);
-}
-constexpr auto Type::InternalNewImpl_() {
-  constexpr auto arena_bits = ::google::protobuf::internal::EncodePlacementArenaOffsets({
-      PROTOBUF_FIELD_OFFSET(Type, _impl_.fields_) +
-          decltype(Type::_impl_.fields_)::
-              InternalGetArenaOffset(
-                  ::google::protobuf::Message::internal_visibility()),
-      PROTOBUF_FIELD_OFFSET(Type, _impl_.oneofs_) +
-          decltype(Type::_impl_.oneofs_)::
-              InternalGetArenaOffset(
-                  ::google::protobuf::Message::internal_visibility()),
-      PROTOBUF_FIELD_OFFSET(Type, _impl_.options_) +
-          decltype(Type::_impl_.options_)::
-              InternalGetArenaOffset(
-                  ::google::protobuf::Message::internal_visibility()),
-  });
-  if (arena_bits.has_value()) {
-    return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(Type), *arena_bits);
-  } else {
-    return ::google::protobuf::internal::MessageCreator(&Type::PlacementNew_,
-                                 sizeof(Type));
-  }
-}
 PROTOBUF_CONSTINIT
 PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
 const ::google::protobuf::MessageLite::ClassDataFull
@@ -563,9 +536,9 @@
             nullptr,  // OnDemandRegisterArenaDtor
             nullptr,  // IsInitialized
             &Type::MergeImpl,
-            ::google::protobuf::Message::GetNewImpl<Type>(),
 #if defined(PROTOBUF_CUSTOM_VTABLE)
             ::google::protobuf::Message::GetDeleteImpl<Type>(),
+            ::google::protobuf::Message::GetNewImpl<Type>(),
             ::google::protobuf::Message::GetClearImpl<Type>(), &Type::ByteSizeLong,
                 &Type::_InternalSerialize,
 #endif  // PROTOBUF_CUSTOM_VTABLE
@@ -985,24 +958,6 @@
   _impl_.~Impl_();
 }
 
-inline void* Field::PlacementNew_(const void*, void* mem,
-                                        ::google::protobuf::Arena* arena) {
-  return ::new (mem) Field(arena);
-}
-constexpr auto Field::InternalNewImpl_() {
-  constexpr auto arena_bits = ::google::protobuf::internal::EncodePlacementArenaOffsets({
-      PROTOBUF_FIELD_OFFSET(Field, _impl_.options_) +
-          decltype(Field::_impl_.options_)::
-              InternalGetArenaOffset(
-                  ::google::protobuf::Message::internal_visibility()),
-  });
-  if (arena_bits.has_value()) {
-    return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(Field), *arena_bits);
-  } else {
-    return ::google::protobuf::internal::MessageCreator(&Field::PlacementNew_,
-                                 sizeof(Field));
-  }
-}
 PROTOBUF_CONSTINIT
 PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
 const ::google::protobuf::MessageLite::ClassDataFull
@@ -1013,9 +968,9 @@
             nullptr,  // OnDemandRegisterArenaDtor
             nullptr,  // IsInitialized
             &Field::MergeImpl,
-            ::google::protobuf::Message::GetNewImpl<Field>(),
 #if defined(PROTOBUF_CUSTOM_VTABLE)
             ::google::protobuf::Message::GetDeleteImpl<Field>(),
+            ::google::protobuf::Message::GetNewImpl<Field>(),
             ::google::protobuf::Message::GetClearImpl<Field>(), &Field::ByteSizeLong,
                 &Field::_InternalSerialize,
 #endif  // PROTOBUF_CUSTOM_VTABLE
@@ -1480,28 +1435,6 @@
   _impl_.~Impl_();
 }
 
-inline void* Enum::PlacementNew_(const void*, void* mem,
-                                        ::google::protobuf::Arena* arena) {
-  return ::new (mem) Enum(arena);
-}
-constexpr auto Enum::InternalNewImpl_() {
-  constexpr auto arena_bits = ::google::protobuf::internal::EncodePlacementArenaOffsets({
-      PROTOBUF_FIELD_OFFSET(Enum, _impl_.enumvalue_) +
-          decltype(Enum::_impl_.enumvalue_)::
-              InternalGetArenaOffset(
-                  ::google::protobuf::Message::internal_visibility()),
-      PROTOBUF_FIELD_OFFSET(Enum, _impl_.options_) +
-          decltype(Enum::_impl_.options_)::
-              InternalGetArenaOffset(
-                  ::google::protobuf::Message::internal_visibility()),
-  });
-  if (arena_bits.has_value()) {
-    return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(Enum), *arena_bits);
-  } else {
-    return ::google::protobuf::internal::MessageCreator(&Enum::PlacementNew_,
-                                 sizeof(Enum));
-  }
-}
 PROTOBUF_CONSTINIT
 PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
 const ::google::protobuf::MessageLite::ClassDataFull
@@ -1512,9 +1445,9 @@
             nullptr,  // OnDemandRegisterArenaDtor
             nullptr,  // IsInitialized
             &Enum::MergeImpl,
-            ::google::protobuf::Message::GetNewImpl<Enum>(),
 #if defined(PROTOBUF_CUSTOM_VTABLE)
             ::google::protobuf::Message::GetDeleteImpl<Enum>(),
+            ::google::protobuf::Message::GetNewImpl<Enum>(),
             ::google::protobuf::Message::GetClearImpl<Enum>(), &Enum::ByteSizeLong,
                 &Enum::_InternalSerialize,
 #endif  // PROTOBUF_CUSTOM_VTABLE
@@ -1888,24 +1821,6 @@
   _impl_.~Impl_();
 }
 
-inline void* EnumValue::PlacementNew_(const void*, void* mem,
-                                        ::google::protobuf::Arena* arena) {
-  return ::new (mem) EnumValue(arena);
-}
-constexpr auto EnumValue::InternalNewImpl_() {
-  constexpr auto arena_bits = ::google::protobuf::internal::EncodePlacementArenaOffsets({
-      PROTOBUF_FIELD_OFFSET(EnumValue, _impl_.options_) +
-          decltype(EnumValue::_impl_.options_)::
-              InternalGetArenaOffset(
-                  ::google::protobuf::Message::internal_visibility()),
-  });
-  if (arena_bits.has_value()) {
-    return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(EnumValue), *arena_bits);
-  } else {
-    return ::google::protobuf::internal::MessageCreator(&EnumValue::PlacementNew_,
-                                 sizeof(EnumValue));
-  }
-}
 PROTOBUF_CONSTINIT
 PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
 const ::google::protobuf::MessageLite::ClassDataFull
@@ -1916,9 +1831,9 @@
             nullptr,  // OnDemandRegisterArenaDtor
             nullptr,  // IsInitialized
             &EnumValue::MergeImpl,
-            ::google::protobuf::Message::GetNewImpl<EnumValue>(),
 #if defined(PROTOBUF_CUSTOM_VTABLE)
             ::google::protobuf::Message::GetDeleteImpl<EnumValue>(),
+            ::google::protobuf::Message::GetNewImpl<EnumValue>(),
             ::google::protobuf::Message::GetClearImpl<EnumValue>(), &EnumValue::ByteSizeLong,
                 &EnumValue::_InternalSerialize,
 #endif  // PROTOBUF_CUSTOM_VTABLE
@@ -2200,13 +2115,6 @@
   _impl_.~Impl_();
 }
 
-inline void* Option::PlacementNew_(const void*, void* mem,
-                                        ::google::protobuf::Arena* arena) {
-  return ::new (mem) Option(arena);
-}
-constexpr auto Option::InternalNewImpl_() {
-  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(Option));
-}
 PROTOBUF_CONSTINIT
 PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
 const ::google::protobuf::MessageLite::ClassDataFull
@@ -2217,9 +2125,9 @@
             nullptr,  // OnDemandRegisterArenaDtor
             nullptr,  // IsInitialized
             &Option::MergeImpl,
-            ::google::protobuf::Message::GetNewImpl<Option>(),
 #if defined(PROTOBUF_CUSTOM_VTABLE)
             ::google::protobuf::Message::GetDeleteImpl<Option>(),
+            ::google::protobuf::Message::GetNewImpl<Option>(),
             ::google::protobuf::Message::GetClearImpl<Option>(), &Option::ByteSizeLong,
                 &Option::_InternalSerialize,
 #endif  // PROTOBUF_CUSTOM_VTABLE
diff --git a/src/google/protobuf/type.pb.h b/src/google/protobuf/type.pb.h
index ced03de..21ecb39 100644
--- a/src/google/protobuf/type.pb.h
+++ b/src/google/protobuf/type.pb.h
@@ -276,7 +276,7 @@
 
   // implements Message ----------------------------------------------
 
-  Option* New(::google::protobuf::Arena* arena = nullptr) const {
+  Option* New(::google::protobuf::Arena* arena = nullptr) const PROTOBUF_FINAL {
     return ::google::protobuf::Message::DefaultConstruct<Option>(arena);
   }
   using ::google::protobuf::Message::CopyFrom;
@@ -332,9 +332,6 @@
     *this = ::std::move(from);
   }
   const ::google::protobuf::Message::ClassData* GetClassData() const PROTOBUF_FINAL;
-  static void* PlacementNew_(const void*, void* mem,
-                             ::google::protobuf::Arena* arena);
-  static constexpr auto InternalNewImpl_();
   static const ::google::protobuf::Message::ClassDataFull _class_data_;
 
  public:
@@ -489,7 +486,7 @@
 
   // implements Message ----------------------------------------------
 
-  Field* New(::google::protobuf::Arena* arena = nullptr) const {
+  Field* New(::google::protobuf::Arena* arena = nullptr) const PROTOBUF_FINAL {
     return ::google::protobuf::Message::DefaultConstruct<Field>(arena);
   }
   using ::google::protobuf::Message::CopyFrom;
@@ -545,9 +542,6 @@
     *this = ::std::move(from);
   }
   const ::google::protobuf::Message::ClassData* GetClassData() const PROTOBUF_FINAL;
-  static void* PlacementNew_(const void*, void* mem,
-                             ::google::protobuf::Arena* arena);
-  static constexpr auto InternalNewImpl_();
   static const ::google::protobuf::Message::ClassDataFull _class_data_;
 
  public:
@@ -874,7 +868,7 @@
 
   // implements Message ----------------------------------------------
 
-  EnumValue* New(::google::protobuf::Arena* arena = nullptr) const {
+  EnumValue* New(::google::protobuf::Arena* arena = nullptr) const PROTOBUF_FINAL {
     return ::google::protobuf::Message::DefaultConstruct<EnumValue>(arena);
   }
   using ::google::protobuf::Message::CopyFrom;
@@ -930,9 +924,6 @@
     *this = ::std::move(from);
   }
   const ::google::protobuf::Message::ClassData* GetClassData() const PROTOBUF_FINAL;
-  static void* PlacementNew_(const void*, void* mem,
-                             ::google::protobuf::Arena* arena);
-  static constexpr auto InternalNewImpl_();
   static const ::google::protobuf::Message::ClassDataFull _class_data_;
 
  public:
@@ -1100,7 +1091,7 @@
 
   // implements Message ----------------------------------------------
 
-  Type* New(::google::protobuf::Arena* arena = nullptr) const {
+  Type* New(::google::protobuf::Arena* arena = nullptr) const PROTOBUF_FINAL {
     return ::google::protobuf::Message::DefaultConstruct<Type>(arena);
   }
   using ::google::protobuf::Message::CopyFrom;
@@ -1156,9 +1147,6 @@
     *this = ::std::move(from);
   }
   const ::google::protobuf::Message::ClassData* GetClassData() const PROTOBUF_FINAL;
-  static void* PlacementNew_(const void*, void* mem,
-                             ::google::protobuf::Arena* arena);
-  static constexpr auto InternalNewImpl_();
   static const ::google::protobuf::Message::ClassDataFull _class_data_;
 
  public:
@@ -1405,7 +1393,7 @@
 
   // implements Message ----------------------------------------------
 
-  Enum* New(::google::protobuf::Arena* arena = nullptr) const {
+  Enum* New(::google::protobuf::Arena* arena = nullptr) const PROTOBUF_FINAL {
     return ::google::protobuf::Message::DefaultConstruct<Enum>(arena);
   }
   using ::google::protobuf::Message::CopyFrom;
@@ -1461,9 +1449,6 @@
     *this = ::std::move(from);
   }
   const ::google::protobuf::Message::ClassData* GetClassData() const PROTOBUF_FINAL;
-  static void* PlacementNew_(const void*, void* mem,
-                             ::google::protobuf::Arena* arena);
-  static constexpr auto InternalNewImpl_();
   static const ::google::protobuf::Message::ClassDataFull _class_data_;
 
  public:
diff --git a/src/google/protobuf/wrappers.pb.cc b/src/google/protobuf/wrappers.pb.cc
index 8d12cfb..b8d53d0 100644
--- a/src/google/protobuf/wrappers.pb.cc
+++ b/src/google/protobuf/wrappers.pb.cc
@@ -10,7 +10,6 @@
 #include "google/protobuf/io/coded_stream.h"
 #include "google/protobuf/generated_message_tctable_impl.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"
@@ -443,13 +442,6 @@
   _impl_.~Impl_();
 }
 
-inline void* DoubleValue::PlacementNew_(const void*, void* mem,
-                                        ::google::protobuf::Arena* arena) {
-  return ::new (mem) DoubleValue(arena);
-}
-constexpr auto DoubleValue::InternalNewImpl_() {
-  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(DoubleValue));
-}
 PROTOBUF_CONSTINIT
 PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
 const ::google::protobuf::MessageLite::ClassDataFull
@@ -460,9 +452,9 @@
             nullptr,  // OnDemandRegisterArenaDtor
             nullptr,  // IsInitialized
             &DoubleValue::MergeImpl,
-            ::google::protobuf::Message::GetNewImpl<DoubleValue>(),
 #if defined(PROTOBUF_CUSTOM_VTABLE)
             ::google::protobuf::Message::GetDeleteImpl<DoubleValue>(),
+            ::google::protobuf::Message::GetNewImpl<DoubleValue>(),
             ::google::protobuf::Message::GetClearImpl<DoubleValue>(), &DoubleValue::ByteSizeLong,
                 &DoubleValue::_InternalSerialize,
 #endif  // PROTOBUF_CUSTOM_VTABLE
@@ -648,13 +640,6 @@
   _impl_.~Impl_();
 }
 
-inline void* FloatValue::PlacementNew_(const void*, void* mem,
-                                        ::google::protobuf::Arena* arena) {
-  return ::new (mem) FloatValue(arena);
-}
-constexpr auto FloatValue::InternalNewImpl_() {
-  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(FloatValue));
-}
 PROTOBUF_CONSTINIT
 PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
 const ::google::protobuf::MessageLite::ClassDataFull
@@ -665,9 +650,9 @@
             nullptr,  // OnDemandRegisterArenaDtor
             nullptr,  // IsInitialized
             &FloatValue::MergeImpl,
-            ::google::protobuf::Message::GetNewImpl<FloatValue>(),
 #if defined(PROTOBUF_CUSTOM_VTABLE)
             ::google::protobuf::Message::GetDeleteImpl<FloatValue>(),
+            ::google::protobuf::Message::GetNewImpl<FloatValue>(),
             ::google::protobuf::Message::GetClearImpl<FloatValue>(), &FloatValue::ByteSizeLong,
                 &FloatValue::_InternalSerialize,
 #endif  // PROTOBUF_CUSTOM_VTABLE
@@ -853,13 +838,6 @@
   _impl_.~Impl_();
 }
 
-inline void* Int64Value::PlacementNew_(const void*, void* mem,
-                                        ::google::protobuf::Arena* arena) {
-  return ::new (mem) Int64Value(arena);
-}
-constexpr auto Int64Value::InternalNewImpl_() {
-  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(Int64Value));
-}
 PROTOBUF_CONSTINIT
 PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
 const ::google::protobuf::MessageLite::ClassDataFull
@@ -870,9 +848,9 @@
             nullptr,  // OnDemandRegisterArenaDtor
             nullptr,  // IsInitialized
             &Int64Value::MergeImpl,
-            ::google::protobuf::Message::GetNewImpl<Int64Value>(),
 #if defined(PROTOBUF_CUSTOM_VTABLE)
             ::google::protobuf::Message::GetDeleteImpl<Int64Value>(),
+            ::google::protobuf::Message::GetNewImpl<Int64Value>(),
             ::google::protobuf::Message::GetClearImpl<Int64Value>(), &Int64Value::ByteSizeLong,
                 &Int64Value::_InternalSerialize,
 #endif  // PROTOBUF_CUSTOM_VTABLE
@@ -1059,13 +1037,6 @@
   _impl_.~Impl_();
 }
 
-inline void* UInt64Value::PlacementNew_(const void*, void* mem,
-                                        ::google::protobuf::Arena* arena) {
-  return ::new (mem) UInt64Value(arena);
-}
-constexpr auto UInt64Value::InternalNewImpl_() {
-  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(UInt64Value));
-}
 PROTOBUF_CONSTINIT
 PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
 const ::google::protobuf::MessageLite::ClassDataFull
@@ -1076,9 +1047,9 @@
             nullptr,  // OnDemandRegisterArenaDtor
             nullptr,  // IsInitialized
             &UInt64Value::MergeImpl,
-            ::google::protobuf::Message::GetNewImpl<UInt64Value>(),
 #if defined(PROTOBUF_CUSTOM_VTABLE)
             ::google::protobuf::Message::GetDeleteImpl<UInt64Value>(),
+            ::google::protobuf::Message::GetNewImpl<UInt64Value>(),
             ::google::protobuf::Message::GetClearImpl<UInt64Value>(), &UInt64Value::ByteSizeLong,
                 &UInt64Value::_InternalSerialize,
 #endif  // PROTOBUF_CUSTOM_VTABLE
@@ -1265,13 +1236,6 @@
   _impl_.~Impl_();
 }
 
-inline void* Int32Value::PlacementNew_(const void*, void* mem,
-                                        ::google::protobuf::Arena* arena) {
-  return ::new (mem) Int32Value(arena);
-}
-constexpr auto Int32Value::InternalNewImpl_() {
-  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(Int32Value));
-}
 PROTOBUF_CONSTINIT
 PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
 const ::google::protobuf::MessageLite::ClassDataFull
@@ -1282,9 +1246,9 @@
             nullptr,  // OnDemandRegisterArenaDtor
             nullptr,  // IsInitialized
             &Int32Value::MergeImpl,
-            ::google::protobuf::Message::GetNewImpl<Int32Value>(),
 #if defined(PROTOBUF_CUSTOM_VTABLE)
             ::google::protobuf::Message::GetDeleteImpl<Int32Value>(),
+            ::google::protobuf::Message::GetNewImpl<Int32Value>(),
             ::google::protobuf::Message::GetClearImpl<Int32Value>(), &Int32Value::ByteSizeLong,
                 &Int32Value::_InternalSerialize,
 #endif  // PROTOBUF_CUSTOM_VTABLE
@@ -1471,13 +1435,6 @@
   _impl_.~Impl_();
 }
 
-inline void* UInt32Value::PlacementNew_(const void*, void* mem,
-                                        ::google::protobuf::Arena* arena) {
-  return ::new (mem) UInt32Value(arena);
-}
-constexpr auto UInt32Value::InternalNewImpl_() {
-  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(UInt32Value));
-}
 PROTOBUF_CONSTINIT
 PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
 const ::google::protobuf::MessageLite::ClassDataFull
@@ -1488,9 +1445,9 @@
             nullptr,  // OnDemandRegisterArenaDtor
             nullptr,  // IsInitialized
             &UInt32Value::MergeImpl,
-            ::google::protobuf::Message::GetNewImpl<UInt32Value>(),
 #if defined(PROTOBUF_CUSTOM_VTABLE)
             ::google::protobuf::Message::GetDeleteImpl<UInt32Value>(),
+            ::google::protobuf::Message::GetNewImpl<UInt32Value>(),
             ::google::protobuf::Message::GetClearImpl<UInt32Value>(), &UInt32Value::ByteSizeLong,
                 &UInt32Value::_InternalSerialize,
 #endif  // PROTOBUF_CUSTOM_VTABLE
@@ -1677,13 +1634,6 @@
   _impl_.~Impl_();
 }
 
-inline void* BoolValue::PlacementNew_(const void*, void* mem,
-                                        ::google::protobuf::Arena* arena) {
-  return ::new (mem) BoolValue(arena);
-}
-constexpr auto BoolValue::InternalNewImpl_() {
-  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(BoolValue));
-}
 PROTOBUF_CONSTINIT
 PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
 const ::google::protobuf::MessageLite::ClassDataFull
@@ -1694,9 +1644,9 @@
             nullptr,  // OnDemandRegisterArenaDtor
             nullptr,  // IsInitialized
             &BoolValue::MergeImpl,
-            ::google::protobuf::Message::GetNewImpl<BoolValue>(),
 #if defined(PROTOBUF_CUSTOM_VTABLE)
             ::google::protobuf::Message::GetDeleteImpl<BoolValue>(),
+            ::google::protobuf::Message::GetNewImpl<BoolValue>(),
             ::google::protobuf::Message::GetClearImpl<BoolValue>(), &BoolValue::ByteSizeLong,
                 &BoolValue::_InternalSerialize,
 #endif  // PROTOBUF_CUSTOM_VTABLE
@@ -1900,13 +1850,6 @@
   _impl_.~Impl_();
 }
 
-inline void* StringValue::PlacementNew_(const void*, void* mem,
-                                        ::google::protobuf::Arena* arena) {
-  return ::new (mem) StringValue(arena);
-}
-constexpr auto StringValue::InternalNewImpl_() {
-  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(StringValue));
-}
 PROTOBUF_CONSTINIT
 PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
 const ::google::protobuf::MessageLite::ClassDataFull
@@ -1917,9 +1860,9 @@
             nullptr,  // OnDemandRegisterArenaDtor
             nullptr,  // IsInitialized
             &StringValue::MergeImpl,
-            ::google::protobuf::Message::GetNewImpl<StringValue>(),
 #if defined(PROTOBUF_CUSTOM_VTABLE)
             ::google::protobuf::Message::GetDeleteImpl<StringValue>(),
+            ::google::protobuf::Message::GetNewImpl<StringValue>(),
             ::google::protobuf::Message::GetClearImpl<StringValue>(), &StringValue::ByteSizeLong,
                 &StringValue::_InternalSerialize,
 #endif  // PROTOBUF_CUSTOM_VTABLE
@@ -2130,13 +2073,6 @@
   _impl_.~Impl_();
 }
 
-inline void* BytesValue::PlacementNew_(const void*, void* mem,
-                                        ::google::protobuf::Arena* arena) {
-  return ::new (mem) BytesValue(arena);
-}
-constexpr auto BytesValue::InternalNewImpl_() {
-  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(BytesValue));
-}
 PROTOBUF_CONSTINIT
 PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
 const ::google::protobuf::MessageLite::ClassDataFull
@@ -2147,9 +2083,9 @@
             nullptr,  // OnDemandRegisterArenaDtor
             nullptr,  // IsInitialized
             &BytesValue::MergeImpl,
-            ::google::protobuf::Message::GetNewImpl<BytesValue>(),
 #if defined(PROTOBUF_CUSTOM_VTABLE)
             ::google::protobuf::Message::GetDeleteImpl<BytesValue>(),
+            ::google::protobuf::Message::GetNewImpl<BytesValue>(),
             ::google::protobuf::Message::GetClearImpl<BytesValue>(), &BytesValue::ByteSizeLong,
                 &BytesValue::_InternalSerialize,
 #endif  // PROTOBUF_CUSTOM_VTABLE
diff --git a/src/google/protobuf/wrappers.pb.h b/src/google/protobuf/wrappers.pb.h
index 46eb591..6e156ce 100644
--- a/src/google/protobuf/wrappers.pb.h
+++ b/src/google/protobuf/wrappers.pb.h
@@ -166,7 +166,7 @@
 
   // implements Message ----------------------------------------------
 
-  UInt64Value* New(::google::protobuf::Arena* arena = nullptr) const {
+  UInt64Value* New(::google::protobuf::Arena* arena = nullptr) const PROTOBUF_FINAL {
     return ::google::protobuf::Message::DefaultConstruct<UInt64Value>(arena);
   }
   using ::google::protobuf::Message::CopyFrom;
@@ -222,9 +222,6 @@
     *this = ::std::move(from);
   }
   const ::google::protobuf::Message::ClassData* GetClassData() const PROTOBUF_FINAL;
-  static void* PlacementNew_(const void*, void* mem,
-                             ::google::protobuf::Arena* arena);
-  static constexpr auto InternalNewImpl_();
   static const ::google::protobuf::Message::ClassDataFull _class_data_;
 
  public:
@@ -355,7 +352,7 @@
 
   // implements Message ----------------------------------------------
 
-  UInt32Value* New(::google::protobuf::Arena* arena = nullptr) const {
+  UInt32Value* New(::google::protobuf::Arena* arena = nullptr) const PROTOBUF_FINAL {
     return ::google::protobuf::Message::DefaultConstruct<UInt32Value>(arena);
   }
   using ::google::protobuf::Message::CopyFrom;
@@ -411,9 +408,6 @@
     *this = ::std::move(from);
   }
   const ::google::protobuf::Message::ClassData* GetClassData() const PROTOBUF_FINAL;
-  static void* PlacementNew_(const void*, void* mem,
-                             ::google::protobuf::Arena* arena);
-  static constexpr auto InternalNewImpl_();
   static const ::google::protobuf::Message::ClassDataFull _class_data_;
 
  public:
@@ -544,7 +538,7 @@
 
   // implements Message ----------------------------------------------
 
-  StringValue* New(::google::protobuf::Arena* arena = nullptr) const {
+  StringValue* New(::google::protobuf::Arena* arena = nullptr) const PROTOBUF_FINAL {
     return ::google::protobuf::Message::DefaultConstruct<StringValue>(arena);
   }
   using ::google::protobuf::Message::CopyFrom;
@@ -600,9 +594,6 @@
     *this = ::std::move(from);
   }
   const ::google::protobuf::Message::ClassData* GetClassData() const PROTOBUF_FINAL;
-  static void* PlacementNew_(const void*, void* mem,
-                             ::google::protobuf::Arena* arena);
-  static constexpr auto InternalNewImpl_();
   static const ::google::protobuf::Message::ClassDataFull _class_data_;
 
  public:
@@ -739,7 +730,7 @@
 
   // implements Message ----------------------------------------------
 
-  Int64Value* New(::google::protobuf::Arena* arena = nullptr) const {
+  Int64Value* New(::google::protobuf::Arena* arena = nullptr) const PROTOBUF_FINAL {
     return ::google::protobuf::Message::DefaultConstruct<Int64Value>(arena);
   }
   using ::google::protobuf::Message::CopyFrom;
@@ -795,9 +786,6 @@
     *this = ::std::move(from);
   }
   const ::google::protobuf::Message::ClassData* GetClassData() const PROTOBUF_FINAL;
-  static void* PlacementNew_(const void*, void* mem,
-                             ::google::protobuf::Arena* arena);
-  static constexpr auto InternalNewImpl_();
   static const ::google::protobuf::Message::ClassDataFull _class_data_;
 
  public:
@@ -928,7 +916,7 @@
 
   // implements Message ----------------------------------------------
 
-  Int32Value* New(::google::protobuf::Arena* arena = nullptr) const {
+  Int32Value* New(::google::protobuf::Arena* arena = nullptr) const PROTOBUF_FINAL {
     return ::google::protobuf::Message::DefaultConstruct<Int32Value>(arena);
   }
   using ::google::protobuf::Message::CopyFrom;
@@ -984,9 +972,6 @@
     *this = ::std::move(from);
   }
   const ::google::protobuf::Message::ClassData* GetClassData() const PROTOBUF_FINAL;
-  static void* PlacementNew_(const void*, void* mem,
-                             ::google::protobuf::Arena* arena);
-  static constexpr auto InternalNewImpl_();
   static const ::google::protobuf::Message::ClassDataFull _class_data_;
 
  public:
@@ -1117,7 +1102,7 @@
 
   // implements Message ----------------------------------------------
 
-  FloatValue* New(::google::protobuf::Arena* arena = nullptr) const {
+  FloatValue* New(::google::protobuf::Arena* arena = nullptr) const PROTOBUF_FINAL {
     return ::google::protobuf::Message::DefaultConstruct<FloatValue>(arena);
   }
   using ::google::protobuf::Message::CopyFrom;
@@ -1173,9 +1158,6 @@
     *this = ::std::move(from);
   }
   const ::google::protobuf::Message::ClassData* GetClassData() const PROTOBUF_FINAL;
-  static void* PlacementNew_(const void*, void* mem,
-                             ::google::protobuf::Arena* arena);
-  static constexpr auto InternalNewImpl_();
   static const ::google::protobuf::Message::ClassDataFull _class_data_;
 
  public:
@@ -1306,7 +1288,7 @@
 
   // implements Message ----------------------------------------------
 
-  DoubleValue* New(::google::protobuf::Arena* arena = nullptr) const {
+  DoubleValue* New(::google::protobuf::Arena* arena = nullptr) const PROTOBUF_FINAL {
     return ::google::protobuf::Message::DefaultConstruct<DoubleValue>(arena);
   }
   using ::google::protobuf::Message::CopyFrom;
@@ -1362,9 +1344,6 @@
     *this = ::std::move(from);
   }
   const ::google::protobuf::Message::ClassData* GetClassData() const PROTOBUF_FINAL;
-  static void* PlacementNew_(const void*, void* mem,
-                             ::google::protobuf::Arena* arena);
-  static constexpr auto InternalNewImpl_();
   static const ::google::protobuf::Message::ClassDataFull _class_data_;
 
  public:
@@ -1495,7 +1474,7 @@
 
   // implements Message ----------------------------------------------
 
-  BytesValue* New(::google::protobuf::Arena* arena = nullptr) const {
+  BytesValue* New(::google::protobuf::Arena* arena = nullptr) const PROTOBUF_FINAL {
     return ::google::protobuf::Message::DefaultConstruct<BytesValue>(arena);
   }
   using ::google::protobuf::Message::CopyFrom;
@@ -1551,9 +1530,6 @@
     *this = ::std::move(from);
   }
   const ::google::protobuf::Message::ClassData* GetClassData() const PROTOBUF_FINAL;
-  static void* PlacementNew_(const void*, void* mem,
-                             ::google::protobuf::Arena* arena);
-  static constexpr auto InternalNewImpl_();
   static const ::google::protobuf::Message::ClassDataFull _class_data_;
 
  public:
@@ -1690,7 +1666,7 @@
 
   // implements Message ----------------------------------------------
 
-  BoolValue* New(::google::protobuf::Arena* arena = nullptr) const {
+  BoolValue* New(::google::protobuf::Arena* arena = nullptr) const PROTOBUF_FINAL {
     return ::google::protobuf::Message::DefaultConstruct<BoolValue>(arena);
   }
   using ::google::protobuf::Message::CopyFrom;
@@ -1746,9 +1722,6 @@
     *this = ::std::move(from);
   }
   const ::google::protobuf::Message::ClassData* GetClassData() const PROTOBUF_FINAL;
-  static void* PlacementNew_(const void*, void* mem,
-                             ::google::protobuf::Arena* arena);
-  static constexpr auto InternalNewImpl_();
   static const ::google::protobuf::Message::ClassDataFull _class_data_;
 
  public: