(cherry picked from commit a1f952a600061aa71dd6cafc53fccac3fd5b9bfe)
(cherry picked from commit 42caadfb3041c89f2957fe7a05f447dfa8727ffb)