(cherry picked from commit bc053580ad21669cf507dea1aa14a8dd5cb59ef6) (cherry picked from commit ea9ea11eaf8a3e0613c101b0d9324ea6700a234e)
(cherry picked from commit bc053580ad21669cf507dea1aa14a8dd5cb59ef6) (cherry picked from commit ea9ea11eaf8a3e0613c101b0d9324ea6700a234e)