Update from upstream

These are all the changes since we forked.