Walmart offers to pay $3.1 billion over sales of prescription opioids