(cherry picked from commit 95b7f1d29a5e2dadd70a56fca5faa006c5bd74fc) (cherry picked from commit c85026038a6ef8d38b7a8563fbb64ac6edd1d4ce)
(cherry picked from commit 95b7f1d29a5e2dadd70a56fca5faa006c5bd74fc) (cherry picked from commit c85026038a6ef8d38b7a8563fbb64ac6edd1d4ce)