(cherry picked from commit68e9315c7d) (cherry picked from commitee763ef281) (cherry picked from commit9a5f308287) (cherry picked from commit468a3bcdac)
(cherry picked from commit68e9315c7d) (cherry picked from commitee763ef281) (cherry picked from commit9a5f308287) (cherry picked from commit468a3bcdac)