(cherry picked from commit 8addf0892cd19084aeae37e81388a0177fabcc42)
(cherry picked from commit 51623e2de9734997b2e67c8a4e8eb34287b76cb8)