(cherry picked from commit c7921c9bddb79c9db5059b6c3f7a3a586a3cd95b) (cherry picked from commit 49c0d9b325a21fc0a05da58bb9d4c76d82181a5d)
(cherry picked from commit c7921c9bddb79c9db5059b6c3f7a3a586a3cd95b) (cherry picked from commit 49c0d9b325a21fc0a05da58bb9d4c76d82181a5d)