Merge from upstream to 46506fa33789c1504ea3c2d7750c771f1547d5f3