Merge from mainline.
106 files changed