Oil gains most in 7 weeks