Synced with the source at 0c4862b0b276c8d4bce8c0b988d882cf6c3813e7.