Friday, July 22: Stage 19: Castelnau Magnoac - Cahors, 188.3 km
Stage 18 map & profile | Stage 19 photos
Christophe Laporte takes stage 19. Charly Lopez/ASO photo
Plato's dialogue Phaedo is available in both audiobook & Kindle eBook versions. To get your copy, just click on the Amazon link on the right.
Weather at the finish city of Cahors at 1:20 PM, local time: 31C (87F), fair, with the wind from the west at 14 km/hr (9 mph). There is just a 1% chance of rain.
Rated ascents
The race: GC 11th place Enric Mas (Movistar) tested positive for Covid-19 and did not start. That left a starting peloton of 139 riders who began the stage at 1:09 PM.
Here's the race organizer's stage 19 summary:
Christophe Laporte avoided the host country having no stage wins like in the 1926 and 1999 Tour de France as he powered to victory almost 2km before the finishing line of stage 19 in Cahors. He surprised pure sprinters Jasper Philipsen and Alberto Dainese who came second and third. He got the green light from Wout van Aert to go and get the fifth stage victory in this Tour de France, his personal first one at the age of 29 after he transferred from Cofidis to Jumbo-Visma, the Dutch team that keeps dominating the overall classification with Jonas Vingegaard two days before reaching Paris.
139 riders took the start of stage 19 in Castelnau-Magnoac, the village of rugby player Antoine Dupont, at 13:09. Mikkel Honoré (Quick Step), Quinn Simmons (Trek-Segafredo) and Taco van der Hoorn (Intermarché-Wanty Gobert) rode away at km 4, quickly joined by Matej Mohoric (Bahrain Victorious) and Nils Politt (Bora-Hansgrohe).
They got a maximum advantage of 1’30’’ as sprinters’ teams like Lotto-Soudal, Alpecin-Deceuninck, BikeExchange-Jayco and DSM kept them on a leash, riding fast with a three-quarter tailwind.
Simmons won the intermediate sprint at Auch (km 38.4) where a tribute was paid to the late Nicolas Portal who was the head sport director of Team Sky. The breakaway group was almost reeled in at Fleurance, km 53. Politt sat up but Honoré relaunched the move and Simmons, Mohoric and Van der Hoorn went with him.
Cyril Barthe (B&B Hotels-KTM) escaped from the peloton but failed to bridge the gap by a mere five seconds. The Frenchman got brought back and the advantage of the quartet went up again: 1’ at km 80.
Philippe Gilbert led the bunch for most of the race for Lotto-Soudal, with other sprinters’ teams like BikeExchange-Hayco, Alpecin-Deceuninck and DSM also involved in the chase.
Simmons attacked up the hill to the medieval town of Lauzerte. Mohoric went with him to sprint for the cat. 4 KOM prize in a spectacular manner. Simmons continued solo with 48km remaining. He was brought back 13km further. Alexis Gougeard (B&B Hotels-KTM) counter-attacked and the next rider who tried to escape from the peloton after having had a bike change due to a mechanical was no less than… Tadej Pogacar! Wout van Aert reacted quickly. Gougeard was joined in the lead by Fred Wright (Bahrain Victorious) and Jasper Stuyven (Trek-Segafredo) with 32km to go.
The trio rode into the last 20km with 30’’ lead over the peloton led mostly by TotalEnergies. Lotto-Soudal took over with Brent Van Moer. Stage favourites Wout van Aert (Jumbo-Visma) and Michael Matthews (BikeExchange-Jayco) pulled the peloton as they were racing for Christophe Laporte and Dylan Groenewegen respectively.
Wright sped up but 1.5km before the end, Laporte was the first rider to catch the trio and he put the hammer down. He accelerated a second time 500 meters before the end. He continued his effort till the finishing line at the end of a slightly uphill road to take the first French stage victory of the 109th Tour de France while Pogacar sprinted to fifth place.
Complete results:
188.3 kilometers raced at an average speed of 48.684 km/hr
1 | Christophe Laporte | Jumbo-Visma | 3hr 52min 4sec |
2 | Jasper Philipsen | Alpecin-Deceuninck | @ 1sec |
3 | Alberto Dainese | Team DSM | s.t. |
4 | Florian Sénéchal | Quick-Step Alpha Vinyl | s.t. |
5 | Tadej Pogacar | UAE Team Emirates | s.t. |
6 | Amaury Capiot | Arkéa-Samsic | s.t. |
7 | Dylan Groenewegen | BikeExchange-Jayco | s.t. |
8 | Hugo Hofstetter | Arkéa-Samsic | s.t. |
9 | Luka Mezgec | BikeExchange-Jayco | s.t. |
10 | Caleb Ewan | Lotto Soudal | s.t. |
11 | Alberto Bettiol | EF Education-EasyPost | s.t. |
12 | Aleksandr Vlasov | BORA-hansgrohe | s.t. |
13 | Jonas Vingegaard | Jumbo-Visma | s.t. |
14 | Geraint Thomas | INEOS Grenadiers | s.t. |
15 | Alexander Kristoff | Intermarché-Wanty-Gobert | s.t. |
16 | David Gaudu | Groupama-FDJ | s.t. |
17 | Yves Lampaert | Quick-Step Alpha Vinyl | s.t. |
18 | Fred Wright | Bahrain Victorious | s.t. |
19 | Simone Velasco | Astana Qazaqstan | s.t. |
20 | Andrea Pasqualon | Intermarché-Wanty-Gobert | s.t. |
21 | Louis Meintjes | Intermarché-Wanty-Gobert | s.t. |
22 | Nairo Quintana | Arkéa-Samsic | s.t. |
23 | Romain Bardet | Team DSM | s.t. |
24 | Hugo Houle | Israel-Premier Tech | s.t. |
25 | Gregor Muhlberger | Movistar | s.t. |
26 | Dylan Van Baarle | INEOS Grenadiers | s.t. |
27 | Stefan Küng | Groupama-FDJ | s.t. |
28 | Valentin Madouas | Groupama-FDJ | s.t. |
29 | Luis León Sánchez | Bahrain Victorious | 0:21 |
30 | Alexey Lutsenko | Astana Qazaqstan | s.t. |
31 | Adam Yates | INEOS Grenadiers | s.t. |
32 | Toms Skujins | Trek-Segafredo | s.t. |
33 | Gorka Izagirre | Movistar | s.t. |
34 | Peter Sagan | TotalEnergies | s.t. |
35 | Patrick Konrad | BORA-hansgrohe | s.t. |
36 | Sebastian Schönberger | B&B Hotels-KTM | 0:25 |
37 | Thibaut Pinot | Groupama-FDJ | s.t. |
38 | Neilson Powless | EF Education-EasyPost | s.t. |
39 | Matteo Jorgenson | Movistar | s.t. |
40 | Bob Jungels | Ag2r-Citroën | s.t. |
41 | Guillaume Boivin | Israel-Premier Tech | s.t. |
42 | Jasper Stuyven | Trek-Segafredo | 0:31 |
43 | Nils Politt | BORA-hansgrohe | 0:35 |
44 | Alexis Gougeard | B&B Hotels-KTM | 0:40 |
45 | Maciej Bodnar | TotalEnergies | 0:41 |
46 | Stefan Bissegger | EF Education-EasyPost | 0:48 |
47 | Reinardt Janse Van Rensburg | Lotto Soudal | s.t. |
48 | Benjamin Thomas | Cofidis | 0:56 |
49 | Andrey Zeits | Astana Qazaqstan | 0:57 |
50 | Maximilian Schachmann | BORA-hansgrohe | s.t. |
51 | Sepp Kuss | Jumbo-Visma | s.t. |
52 | Ion Izagirre | Cofidis | s.t. |
53 | Lukasz Owsian | Arkéa-Samsic | s.t. |
54 | Matis Louvel | Arkéa-Samsic | 1:09 |
55 | Carlos Verona | Movistar | 1:16 |
56 | Benoît Cosnefroy | Ag2r-Citroën | s.t. |
57 | Edvald Boasson-Hagen | TotalEnergies | 1:33 |
58 | John Degenkolb | Team DSM | 1:47 |
59 | Florian Vermeersch | Lotto Soudal | 1:49 |
60 | Sven Erik Bystrøm | Intermarché-Wanty-Gobert | s.t. |
61 | Krists Neilands | Israel-Premier Tech | s.t. |
62 | Cyril Barthe | B&B Hotels-KTM | s.t. |
63 | Antoine Duchesne | Groupama-FDJ | 1:53 |
64 | Tom Pidcock | INEOS Grenadiers | s.t. |
65 | Tiesj Benoot | Jumbo-Visma | 2:08 |
66 | Alexander Krieger | Alpecin-Deceuninck | 2:23 |
67 | Edward Planckaert | Alpecin-Deceuninck | s.t. |
68 | Alexandr Riabushenko | Astana Qazaqstan | 2:26 |
69 | Brandon McNulty | UAE Team Emirates | s.t. |
70 | Nathan Van Hooydonck | Jumbo-Visma | s.t. |
71 | Wout van Aert | Jumbo-Visma | s.t. |
72 | Pierre-Luc Périchon | Cofidis | s.t. |
73 | Maxime Bouet | Arkéa-Samsic | s.t. |
74 | Nelson Oliveira | Movistar | s.t. |
75 | Jonas Rutsch | EF Education-EasyPost | s.t. |
76 | Andreas Leknessund | Team DSM | s.t. |
77 | Martijn Tusveld | Team DSM | s.t. |
78 | Georg Zimmermann | Intermarché-Wanty-Gobert | s.t. |
79 | Dylan Teuns | Bahrain Victorious | s.t. |
80 | Frederik Frison | Lotto Soudal | s.t. |
81 | Tony Gallopin | Trek-Segafredo | s.t. |
82 | Kristian Sbaragli | Alpecin-Deceuninck | s.t. |
83 | Michael Woods | Israel-Premier Tech | s.t. |
84 | Olivier Le Gac | Groupama-FDJ | s.t. |
85 | Joe Dombrowski | Astana Qazaqstan | s.t. |
86 | Cyril Lemoine | B&B Hotels-KTM | 2:36 |
87 | Brent Van Moer | Lotto Soudal | 2:39 |
88 | Nick Schultz | BikeExchange-Jayco | s.t. |
89 | Kevin Geniets | Groupama-FDJ | s.t. |
90 | Silvan Dillier | Alpecin-Deceuninck | s.t. |
91 | Kobe Goossens | Intermarché-Wanty-Gobert | s.t. |
92 | Stan Dewulf | Ag2r-Citroën | s.t. |
93 | Marc Hirschi | UAE Team Emirates | s.t. |
94 | Luca Mozzato | B&B Hotels-KTM | 3:01 |
95 | Felix Grossschartner | BORA-hansgrohe | 3:06 |
96 | Jan Tratnik | Bahrain Victorious | s.t. |
97 | Adrien Petit | Intermarché-Wanty-Gobert | 3:08 |
98 | Fabio Jakobsen | Quick-Step Alpha Vinyl | 3:28 |
99 | Owain Doull | EF Education-EasyPost | 3:47 |
100 | Connor Swift | Arkéa-Samsic | s.t. |
101 | Marco Haller | BORA-hansgrohe | 3:52 |
102 | Rigoberto Uran | EF Education-EasyPost | 3:54 |
103 | Andrea Bagioli | Quick-Step Alpha Vinyl | 4:00 |
104 | Luke Rowe | INEOS Grenadiers | s.t. |
105 | Filippo Ganna | INEOS Grenadiers | s.t. |
106 | Danny Van Poppel | BORA-hansgrohe | s.t. |
107 | Mathieu Burgaudeau | TotalEnergies | s.t. |
108 | Michael Matthews | BikeExchange-Jayco | s.t. |
109 | Mikkel Bjerg | UAE Team Emirates | 4:07 |
110 | Bauke Mollema | Trek-Segafredo | 5:14 |
111 | Mattia Cattaneo | Quick-Step Alpha Vinyl | 6:09 |
112 | Matej Mohoric | Bahrain Victorious | s.t. |
113 | Nils Eekhoff | Team DSM | 6:35 |
114 | Anthony Turgis | TotalEnergies | 7:22 |
115 | Dmitriy Gruzdev | Astana Qazaqstan | 7:53 |
116 | Michael Storer | Groupama-FDJ | s.t. |
117 | Giulio Ciccone | Trek-Segafredo | 7:58 |
118 | Andreas Kron | Lotto Soudal | 8:02 |
119 | Mads Pedersen | Trek-Segafredo | s.t. |
120 | Jack Bauer | BikeExchange-Jayco | s.t. |
121 | Quinn Simmons | Trek-Segafredo | s.t. |
122 | Guillaume Van Keirsbulck | Alpecin-Deceuninck | 8:42 |
123 | Philippe Gilbert | Lotto Soudal | s.t. |
124 | Jérémy Lecroq | B&B Hotels-KTM | 8:44 |
125 | Daniel Martinez | INEOS Grenadiers | 9:31 |
126 | Kamil Gradek | Bahrain Victorious | s.t. |
127 | Jonathan Castroviejo | INEOS Grenadiers | s.t. |
128 | Pierre Latour | TotalEnergies | s.t. |
129 | Amund Grøndahl Jansen | BikeExchange-Jayco | 9:41 |
130 | Mikkel Honore | Quick-Step Alpha Vinyl | 10:47 |
131 | Christopher Juul-Jensen | BikeExchange-Jayco | s.t. |
132 | Guy Niv | Israel-Premier Tech | s.t. |
133 | Simon Geschke | Cofidis | s.t. |
134 | Anthony Perez | Cofidis | s.t. |
135 | Chris Hamilton | Team DSM | s.t. |
136 | Pierre Rolland | B&B Hotels-KTM | s.t. |
137 | Taco Van Der Hoorn | Intermarché-Wanty-Gobert | s.t. |
138 | Albert Torres | Movistar | s.t. |
139 | Franck Bonnamour | B&B Hotels-KTM | 21:55 |
GC after stage 19:
3,187.5 kilometers raced so far at an average speed of 42.073 km/hr
1 | Jonas Vingegaard | Jumbo-Visma | 75hr 45min 39sec |
2 | Tadej Pogacar | UAE Team Emirates | @ 3min 26sec |
3 | Geraint Thomas | INEOS Grenadiers | 8:00 |
4 | David Gaudu | Groupama-FDJ | 11:05 |
5 | Nairo Quintana | Arkéa-Samsic | 13:35 |
6 | Louis Meintjes | Intermarché-Wanty-Gobert | 13:43 |
7 | Aleksandr Vlasov | BORA-hansgrohe | 14:10 |
8 | Romain Bardet | Team DSM | 16:11 |
9 | Alexey Lutsenko | Astana Qazaqstan | 20:29 |
10 | Adam Yates | INEOS Grenadiers | 20:37 |
11 | Valentin Madouas | Groupama-FDJ | 33:34 |
12 | Bob Jungels | Ag2r-Citroën | 42:47 |
13 | Neilson Powless | EF Education-EasyPost | 45:22 |
14 | Thibaut Pinot | Groupama-FDJ | 46:33 |
15 | Luis León Sánchez | Bahrain Victorious | 47:27 |
16 | Patrick Konrad | BORA-hansgrohe | 51:58 |
17 | Tom Pidcock | INEOS Grenadiers | 54:52 |
18 | Sepp Kuss | Jumbo-Visma | 58:55 |
19 | Dylan Teuns | Bahrain Victorious | 1:08:26 |
20 | Brandon McNulty | UAE Team Emirates | 1:26:05 |
21 | Matteo Jorgenson | Movistar | 1:31:46 |
22 | Hugo Houle | Israel-Premier Tech | 1:35:51 |
23 | Wout van Aert | Jumbo-Visma | 1:36:14 |
24 | Nick Schultz | BikeExchange-Jayco | 1:38:11 |
25 | Bauke Mollema | Trek-Segafredo | 1:43:18 |
26 | Rigoberto Uran | EF Education-EasyPost | 1:44:16 |
27 | Carlos Verona | Movistar | 1:46:32 |
28 | Gregor Muhlberger | Movistar | 1:53:17 |
29 | Andreas Leknessund | Team DSM | 1:55:45 |
30 | Daniel Martinez | INEOS Grenadiers | 1:57:57 |
31 | Simone Velasco | Astana Qazaqstan | 2:01:40 |
32 | Gorka Izagirre | Movistar | 2:08:27 |
33 | Sebastian Schönberger | B&B Hotels-KTM | 2:11:36 |
34 | Michael Woods | Israel-Premier Tech | 2:13:06 |
35 | Dylan Van Baarle | INEOS Grenadiers | 2:13:51 |
36 | Stefan Küng | Groupama-FDJ | 2:15:01 |
37 | Chris Hamilton | Team DSM | 2:16:44 |
38 | Michael Storer | Groupama-FDJ | 2:18:48 |
39 | Tiesj Benoot | Jumbo-Visma | 2:19:19 |
40 | Andrey Zeits | Astana Qazaqstan | 2:22:32 |
41 | Tony Gallopin | Trek-Segafredo | 2:22:55 |
42 | Ion Izagirre | Cofidis | 2:26:27 |
43 | Joe Dombrowski | Astana Qazaqstan | 2:31:29 |
44 | Lukasz Owsian | Arkéa-Samsic | 2:33:12 |
45 | Simon Geschke | Cofidis | 2:33:23 |
46 | Alberto Bettiol | EF Education-EasyPost | 2:33:29 |
47 | Georg Zimmermann | Intermarché-Wanty-Gobert | 2:34:03 |
48 | Maximilian Schachmann | BORA-hansgrohe | 2:38:13 |
49 | Kobe Goossens | Intermarché-Wanty-Gobert | 2:42:05 |
50 | Kevin Geniets | Groupama-FDJ | 2:45:17 |
51 | Jonathan Castroviejo | INEOS Grenadiers | 2:45:28 |
52 | Maxime Bouet | Arkéa-Samsic | 2:46:16 |
53 | Andrea Pasqualon | Intermarché-Wanty-Gobert | 2:52:12 |
54 | Felix Grossschartner | BORA-hansgrohe | 2:53:53 |
55 | Nelson Oliveira | Movistar | 2:54:01 |
56 | Benjamin Thomas | Cofidis | 3:00:57 |
57 | Fred Wright | Bahrain Victorious | 3:03:46 |
58 | Nils Politt | BORA-hansgrohe | 3:07:47 |
59 | Edvald Boasson-Hagen | TotalEnergies | 3:07:49 |
60 | Pierre Latour | TotalEnergies | 3:08:33 |
61 | Giulio Ciccone | Trek-Segafredo | 3:08:45 |
62 | Silvan Dillier | Alpecin-Deceuninck | 3:10:56 |
63 | Antoine Duchesne | Groupama-FDJ | 3:11:44 |
64 | Toms Skujins | Trek-Segafredo | 3:12:35 |
65 | Pierre-Luc Périchon | Cofidis | 3:18:25 |
66 | Martijn Tusveld | Team DSM | 3:22:03 |
67 | Franck Bonnamour | B&B Hotels-KTM | 3:22:14 |
68 | Quinn Simmons | Trek-Segafredo | 3:22:35 |
69 | Stan Dewulf | Ag2r-Citroën | 3:24:18 |
70 | Andreas Kron | Lotto Soudal | 3:24:42 |
71 | Pierre Rolland | B&B Hotels-KTM | 3:25:52 |
72 | Mathieu Burgaudeau | TotalEnergies | 3:28:02 |
73 | Kristian Sbaragli | Alpecin-Deceuninck | 3:29:50 |
74 | Connor Swift | Arkéa-Samsic | 3:33:12 |
75 | Philippe Gilbert | Lotto Soudal | 3:33:28 |
76 | Jan Tratnik | Bahrain Victorious | 3:34:04 |
77 | Christophe Laporte | Jumbo-Visma | 3:34:13 |
78 | Matis Louvel | Arkéa-Samsic | 3:35:33 |
79 | Guy Niv | Israel-Premier Tech | 3:36:48 |
80 | Krists Neilands | Israel-Premier Tech | 3:40:45 |
81 | Michael Matthews | BikeExchange-Jayco | 3:42:43 |
82 | Cyril Barthe | B&B Hotels-KTM | 3:43:07 |
83 | Jasper Stuyven | Trek-Segafredo | 3:43:56 |
84 | Hugo Hofstetter | Arkéa-Samsic | 3:44:20 |
85 | Anthony Perez | Cofidis | 3:45:59 |
86 | Marco Haller | BORA-hansgrohe | 3:46:28 |
87 | Amaury Capiot | Arkéa-Samsic | 3:46:59 |
88 | Stefan Bissegger | EF Education-EasyPost | 3:47:30 |
89 | Matej Mohoric | Bahrain Victorious | 3:48:14 |
90 | Olivier Le Gac | Groupama-FDJ | 3:48:26 |
91 | Benoît Cosnefroy | Ag2r-Citroën | 3:48:47 |
92 | Jonas Rutsch | EF Education-EasyPost | 3:50:21 |
93 | Alexis Gougeard | B&B Hotels-KTM | 3:52:56 |
94 | Jasper Philipsen | Alpecin-Deceuninck | 3:52:58 |
95 | Owain Doull | EF Education-EasyPost | 3:53:54 |
96 | Sven Erik Bystrøm | Intermarché-Wanty-Gobert | 3:54:24 |
97 | Alexandr Riabushenko | Astana Qazaqstan | 3:59:14 |
98 | Mattia Cattaneo | Quick-Step Alpha Vinyl | 4:00:05 |
99 | Filippo Ganna | INEOS Grenadiers | 4:01:45 |
100 | Andrea Bagioli | Quick-Step Alpha Vinyl | 4:02:15 |
101 | Mads Pedersen | Trek-Segafredo | 4:06:07 |
102 | Nathan Van Hooydonck | Jumbo-Visma | 4:07:06 |
103 | Alberto Dainese | Team DSM | 4:08:37 |
104 | Luka Mezgec | BikeExchange-Jayco | 4:09:27 |
105 | Alexander Kristoff | Intermarché-Wanty-Gobert | 4:10:58 |
106 | Luca Mozzato | B&B Hotels-KTM | 4:11:29 |
107 | Alexander Krieger | Alpecin-Deceuninck | 4:12:24 |
108 | John Degenkolb | Team DSM | 4:15:48 |
109 | Luke Rowe | INEOS Grenadiers | 4:18:29 |
110 | Florian Sénéchal | Quick-Step Alpha Vinyl | 4:21:07 |
111 | Danny Van Poppel | BORA-hansgrohe | 4:23:34 |
112 | Florian Vermeersch | Lotto Soudal | 4:25:47 |
113 | Mikkel Honore | Quick-Step Alpha Vinyl | 4:26:48 |
114 | Edward Planckaert | Alpecin-Deceuninck | 4:26:55 |
115 | Adrien Petit | Intermarché-Wanty-Gobert | 4:28:38 |
116 | Cyril Lemoine | B&B Hotels-KTM | 4:29:52 |
117 | Dmitriy Gruzdev | Astana Qazaqstan | 4:31:15 |
118 | Dylan Groenewegen | BikeExchange-Jayco | 4:33:58 |
119 | Peter Sagan | TotalEnergies | 4:34:28 |
120 | Guillaume Boivin | Israel-Premier Tech | 4:34:46 |
121 | Maciej Bodnar | TotalEnergies | 4:37:40 |
122 | Nils Eekhoff | Team DSM | 4:38:04 |
123 | Yves Lampaert | Quick-Step Alpha Vinyl | 4:38:29 |
124 | Kamil Gradek | Bahrain Victorious | 4:39:01 |
125 | Jack Bauer | BikeExchange-Jayco | 4:40:58 |
126 | Brent Van Moer | Lotto Soudal | 4:44:04 |
127 | Guillaume Van Keirsbulck | Alpecin-Deceuninck | 4:46:47 |
128 | Taco Van Der Hoorn | Intermarché-Wanty-Gobert | 4:53:41 |
129 | Mikkel Bjerg | UAE Team Emirates | 4:56:11 |
130 | Marc Hirschi | UAE Team Emirates | 5:05:37 |
131 | Christopher Juul-Jensen | BikeExchange-Jayco | 5:07:13 |
132 | Jérémy Lecroq | B&B Hotels-KTM | 5:08:02 |
133 | Anthony Turgis | TotalEnergies | 5:13:40 |
134 | Fabio Jakobsen | Quick-Step Alpha Vinyl | 5:16:34 |
135 | Amund Grøndahl Jansen | BikeExchange-Jayco | 5:22:01 |
136 | Frederik Frison | Lotto Soudal | 5:22:42 |
137 | Reinardt Janse Van Rensburg | Lotto Soudal | 5:26:40 |
138 | Albert Torres | Movistar | 5:29:13 |
139 | Caleb Ewan | Lotto Soudal | 5:33:02 |
Stage 19 map & profile:
Stage 19 map
Stage 19 profile
Stage 19 photos by Fotoreporter Sirotti:
Approaching the line, stage winner Christophe Laporte has time to sit up and enjoy his victory. Behind him in the white jersey you can see "never-say-die" Tadej Pogacar sprinting.
Stage winner Christophe Laporte delivered a surprise that I'm sure the pure sprinters didn't appreciate.
Jonas Vingegaard finishes the stage with Geraint Thomas right behind him.
Wout van Aert just has to finish this Tour to win the Points Classification. That should be his teammate Nathan Van Hooydonck on his right.
Franck Bonnamour was the last man across the line.
Christophe Laporte just after the stage.
GC leader Jonas Vingegaard just after the stage finish.
Simon Geschke gets to keep wearing the polka dots since the leader of the mountains classification is Vingegaard, who is in yellow. As the second-place rider in the category, the jersey lands on Geschke's shoulders.
Stage winner Christophe Laporte.
Tadej Pogacar remains in the Best Young Rider's white jersey.
Points classification leader Wout van Aert.
Jonas Vingegaard has two more stages to go.