(cherry picked from commit 15077019810bd9a3c6eb0233066761b24d71685e)
(cherry picked from commit c5458fb29c323fc1cc7c551cbd0b7783d1a17d0d)