Tour de France: Viviani wins Stage 4