Chevron agrees to buy Noble Energy for $5 billion