Get all your news in one place.
100’s of premium titles.
One app.
Start reading
The Guardian - UK
The Guardian - UK
Sport
Luke McLaughlin

Dortmund 0-0 Manchester City, Celtic 1-1 Shakhtar: Champions League – as it happened

Jude Bellingham (right) of Dortmund shields the ball from Phil Foden of Manchester City.
Jude Bellingham (right) of Dortmund shields the ball from Phil Foden of Manchester City. Photograph: Friedemann Vogel/EPA

Tonight’s match reports and other news bits:

That’s the lot from me. Thanks for reading, emailing, tweeting and everything else. Goodbye!

Updated

Celtic are out of Europe this season after their 1-1 draw against Shakhtar Donetsk.

Disappointing for them – but a massively impressive effort from the Ukrainian club, given all they have had to deal with this year.

Match report:

Nice goal from Rafael Leao for Milan, but not sure Dinamo Zagreb can be particularly proud of that defending:

Dortmund’s Jude Bellingham has a chat with BT Sport: “It’s good for us … defensively we were really good, not many teams keep clean sheets against City, especially this season with all the quality they’ve got … to do that is really promising for us …

“We could have gone for it a bit more, I think we had chances to win the game, obviously they missed a penalty and Greg [Kobel] made a huge save. There’s different things to take away from the game, but overall we’re happy, because we were here to get to the next round, and we’ve done it …”

On denying Haaland a goal: “It’s nice to keep all of them out, him in particular, because we know how dangerous he is … of course we got the draw, we’re just happy to go through really, so we can carry on this journey.”

Updated

Haaland catches up with his old Dortmund mates.

Hummels looks on as Haaland and Bellingham have a hug.
Mats Hummels (left) looks on as Haaland and Bellingham have a hug. Photograph: Wolfgang Rattay/Reuters

Updated

Pep Guardiola speaks to BT Sport: “We topped the group again, we achieved what we want. We’re in the last 16 … so yeah, really good.

“Erling had a little bit of fever before the game, Joao as well … that’s why we changed it [at half-time].

“[At half-time] We adjusted a little bit our pressing because in the first half we had a problem on our left side … a draw was good for them, for us as well, so that’s why we are there [in the last 16].”

Who will take penalties following Mahrez’s latest miss from the spot? “We’ll see. Of course it’s a problem. Since I’ve been here we’ve missed 24, 25 penalties, most of them in Champions League. It’s too much … I always admire the courage, to take responsibility to do it, but we miss a lot of penalties. It’s a problem. In Copenhagen, here as well. We have to improve.”

On BT Sport Jake Humphrey says it is indeed 25 penalties that Manchester City have missed since Pep Guardiola arrived.

Updated

Bayern Munich, Benfica, Club Brugge, Chelsea, Dortmund, Manchester City, Napoli, PSG and Real Madrid are the nine sides confirmed through to the last 16 after tonight’s matches.

Jonathan Liew’s match report from Dortmund:

Manchester City are through as Group G winners. Dortmund through in second place.

Pos Team P GD Pts
1 Chelsea 5 5 10
2 AC Milan 5 1 7
3 Red Bull Salzburg 5 0 6
4 Dinamo Zagreb 5 -6 4
Pos Team P GD Pts
1 Real Madrid 5 5 10
2 RB Leipzig 5 0 9
3 Shakhtar Donetsk 5 2 6
4 Celtic 5 -7 2
Pos Team P GD Pts
1 Man City 5 10 11
2 Borussia Dortmund 5 5 8
3 Sevilla 5 -4 5
4 FC Copenhagen 5 -11 2
Pos Team P GD Pts
1 PSG 5 8 11
2 Benfica 5 4 11
3 Juventus 5 -3 3
4 Maccabi Haifa 5 -9 3

Updated

Tonight's Champions League scores

Salzburg 1-2 Chelsea
Dinamo Zagreb 0-4 Milan
Leipzig 3-2 Real Madrid
Celtic 1-1 Shakhtar Donetsk
Sevilla 3-0 Copenhagen
Dortmund 0-0 Manchester City
Benfica 4-3 Juventus
PSG 7-2 Maccabi Haifa

Full-time! Benfica 4-3 Juventus

That was an epic match. Juventus came out on the wrong side and they are out of the Champions League. You have to worry for Allegri’s job.

Full-time! Dortmund 0-0 Manchester City

After just a few minutes it looked pretty likely to finish 0-0 … there was a missed penalty by Mahrez, but so it proved. A stalemate which guarantees Dortmund’s qualification for the knockout stages.

Full-time! Celtic 1-1 Shakhtar Donetsk

All over in Glasgow. Celtic are out of the Europa League as well as the Champions League, they cannot catch third-placed Shakhtar in Group F.

Updated

Celtic, unless they score, are out of Europe including the Europa League. They are locked at 1-1 with Shakhtar Donetsk right now.

Updated

Carlos Soler makes it 7-2 to PSG v Maccabi Haifa. Messi tees him up with a ball cut back to the edge of the box and Soler sweeps in a fine low finish.

Updated

Latest scores:

Dinamo Zagreb 0-4 Milan
Leipzig 3-1 Real Madrid
Celtic 1-1 Shakhtar
Dortmund 0-0 Man City
Benfica 4-3 Juventus
PSG 6-2 Maccabi Haifa
Salzburg 1-2 Chelsea (FT)
Sevilla 3-0 Copenhagen (FT)

RB Leipzig 3-1 Real Madrid (Werner 81)

Simakan embarks on a sensational run down the right, Werner makes an excellent run to the far post, and Leipzig look to have the match wrapped up.

Timo Werner pops up at the far post to slot home Leipzig’s third goal against Real Madrid.
Timo Werner pops up at the far post to slot home Leipzig’s third goal against Real Madrid. Photograph: Martin Divíšek/EPA

Updated

Benfica 4-2 Juventus (McKennie 79)

Again it’s Iling-Junior who breaks on the left … and this time McKennie scores! Could Juventus pull off a remarkable comeback?

Benfica 4-2 Juventus (Milik 77)

Samuel Iling-Junior crosses from the left and the Poland international volleys in.

Updated

PSG nearly run in another one against Maccabi Haifa in Paris but it’s still 6-2 there.

Updated

That chap, Mahrez, is a very fine player but he often misses penalties, why do City let him kick from the penalty spot, can’t they find a better solution for such situations?” emails Bogdan Kotarlic.

“I don’t know what he does be showing in training, but don’t think I’ve ever seen such a bad penalty taker allowed to constantly step up to the spot,” writes Paul Fitzgerald.

Updated

Shakhtar Donetsk miss an absolute sitter against Celtic – Mudryk squares for Sikan, who has an open goal, but gets his first touch horrendously wrong, and the ball squirts out for a goal kick.

Shakhtar's Danylo Sikan reacts after missing an open goal.
Shakhtar's Danylo Sikan reacts after missing an open goal. Photograph: Stuart Wallace/Shutterstock

Updated

It’s 6-2 for Paris now v Maccabi Haifa, with a comedy own-goal coming from Goldberg (67).

It’s 5-2 in Paris. Mbappe with the latest goal for the Group H leaders. (Benfica are also on 11 pts)

I hate to be that guy, but I am a lawyer, and in UEFA’s Regulations of the Champions League, Article 17.01a says that “higher number of points obtained in the group matches played among the teams in question” is the first tiebreaker,” emails Matt Burtz. “Goal difference in group games is the second tiebreaker.”

Thanks Matt. By all means, please do be that guy.

In the case of Dortmund and Man City, it would come down to goal difference should Dortmund win tonight, as they’d both have taken three points off each other in their two matches.

Updated

PSG 4-2 Maccabi Haifa (Seck 50)

A fine looping header after a bit of pinball in the penalty area, and Maccabi Haifa are putting up a good fight against the Galacticos of PSG.

Abdoulaye Seck celebrates his second goal.
Abdoulaye Seck celebrates his second goal. Photograph: Soccrates Images/Getty Images

Dinamo Zagreb 0-3 Milan (Giroud 59)

The former Chelsea forward strokes a penalty into the top corner and Milan appear to have the match won against Zagreb.

Updated

Missed penalty by Mahrez for Manchester City!

Emre Can fouls Mahrez while the Algeria international is on a darting, jinking run towards the penalty spot. Mahrez gets up to take the kick. Kobel dives to his right and makes a fantastic save.

Dortmund’s Emre Can (left) fouls Riyad Mahrez of Manchester City in the penalty box and the referee points to the spot.
Dortmund’s Emre Can (left) fouls Riyad Mahrez of Manchester City in the penalty box and the referee points to the spot. Photograph: Friedemann Vogel/EPA
Mahrez misses.
Mahrez dusts himself down and takes the penalty … Photograph: Matthew Ashton/AMA/Getty Images
Riyad Mahrez of Manchester City has a penalty saved by Gregor Kobel of Borussia Dortmund
But it’s saved by Dortmund keeper Gregor Kobel. Photograph: Matthias Hangst/Getty Images

Updated

Goal! Celtic 1-1 Shakhtar (Mudryk)

Stunning goal by Mudryk. Celtic are pegged back.

Shakhtar Donetsk's Mykhailo Mudryk thumps home to level the scoring.
Shakhtar Donetsk's Mykhailo Mudryk thumps home to level the scoring. Photograph: Lee Smith/Action Images/Reuters

Updated

Goals in a couple of other games:

Benfica 4-1 Juventus (Silva)
Dinamo Zagreb 0-2 Milan (Leao)

A beautiful dinked finish by Silva for Benfica. Juventus were all over the shop then. The manager, Massimiliano Allegri, is surely in a spot of bother (even more than he was before) after this capitulation.

Benfica's Rafa Silva (centre) scores their fourth goal.
A deft finish from Rafa Silva (centre) gives Benfica their fourth goal. Photograph: Tiago Petinga/EPA

Updated

The BT Sport panel just got in a muddle over whether or not placings are firstly determined by goal difference or head to head. It’s head to head*. (If Dortmund were to win tonight, they’d be level with City on 11 points at the top but City would have superior goal difference, unless Dortmund managed to bang in five.)

*Edited after I got it wrong first time round.

Updated

Here we go again.

Pep Guardiola has taken off Haaland and Cancelo, with Akanji and Silva coming on.

Your half-time scores:

Dortmund 0-0 Man City
Celtic 1-0 Shakhtar Donetsk
Dinamo Zagreb 0-1 Milan
RB Leipzig 2-1 Real Madrid
Benfica 3-1 Juventus
PSG 4-1 Maccabi Haifa

Juventus are going out as it stands. See you in a few.

In Paris, Messi makes it 4-1 against Maccabi Haifa.

Updated

RB Leipzig 2-1 Real Madrid (Vinícius Jr)

Sensational headed goal by Vinícius Jr.

Asensio bursts to the byline on the right, clips in a cultured cross, and the Brazilian meets it with a lovely cushioned header that drops into the net via a post. Good scenes.

Updated

As a supporter of underdogs I’m dismayed to see PSG’s Haifa-lootin’, er highfalutin attacking trident run riot,” writes in the Prince of Puns, Peter Oh.

Dinamo Zagreb 0-1 Milan (Gabbia)

Milan move second in the virtual Group E table, above Salzburg, with that goal.

Goal! PSG 3-1 Maccabi Haifa (Seck)

Seck is given the freedom of the PSG penalty area at a free-kick, and plants a towering header into the net with Donnarumma nowhere. Can Maccabi Haifa get back into this? Let’s face it, probably not.

Updated

PSG are 3-0 up on Maccabi Haifa now. Neymar with the goal. So that’s Messi, Mbappe and Neymar all hitting the onion bag before half-time.

Paris St Germain's Neymar celebrates scoring their third goal with Lionel Messi.
Paris St Germain's Neymar celebrates scoring their third goal with Lionel Messi. Photograph: Sarah Meyssonnier/Reuters

Updated

Goals, goals, goals! Benfica 3-1 Juventus (Silva 35)

A magical bit of skill at the near post from Rafa Silva, who outrageously flicks the ball into the net after a cross is drilled in from the left.

Goal! Celtic 1-0 Shakhtar Donetsk (Giakoumakis 34)

Giakoumakis pounces on a loose ball at point-blank range and crashes a low shot into the net!

Celtic's Georgios Giakoumakis fires the home side into the lead against Shakhtar Donetsk.
Celtic's Georgios Giakoumakis fires the home side into the lead against Shakhtar Donetsk. Photograph: Russell Cheyne/Reuters

Updated

Goal: PSG 2-0 Maccabi Haifa

Mbappé clips a tremendous curling shot into the top corner after linking up with Neymar. Nice finish.

If it is true that teams embody their manager’s personality, then perhaps it is no surprise that Chelsea exuded calm when their hopes of cruising into the last 16 of the Champions League were placed in doubt by a thrilling surge from RB Salzburg.

Benfica 2-1 Juventus (Joao Mario pen 28)

Juan Cuadrado was penalised for handball, and Joao Mario belted the resulting penalty into the top corner. Juventus back in crisis!

Updated

25 min: Dortmund broke through on the City left, yet again, just now. The home players seemed to be queuing up in the penalty area, Adeyemi picked out Reyna, whose low side-footed shot was straight at Ortega.

Updated

GOALS!

Benfica 1-1 Juventus (Vlahovic 22)
PSG 1-0 Maccabi Haifa (Messi 19)

Lionel Messi of Paris Saint Germain opens the scoring against Maccabi Haifa.
Lionel Messi of Paris Saint Germain opens the scoring against Maccabi Haifa. Photograph: David S. Bustamante/Soccrates Images/Getty Images

Updated

22 min: This match between Dortmund and Manchester City is being played with all the intensity of an encounter between one team that has already qualified, and one team that needs a point to qualify.

Updated

GOALS elsewhere in Germany: Leipzig 2-0 Real Madrid

Gvardiol and Nkunku have made it double trouble for the champions, Real Madrid, in Leipzig. Leipzig will be through to the last 16 if they win. The goals came on 13 and 18 minutes. Courtois has also made a couple of good saves. It could be a cricket score in Leipzig!

Updated

Goal! Benfica 1-0 Juventus. Antonio Silva has put the Portuguese side in front in Lisbon. Bad news for Juve, who are going out of the Champions League if they don’t win.

Updated

15 min: Dortmund’s Karim Adeyemi is suddenly in, one-on-one, after a bit of slackness by Stones on City’s left. Ortega stands up well and makes a save with his right foot. It was a pretty weak attempt by Adeyemi but Ortega will feel better having made a save. A nice starter for 10.

Updated

14 min: Now it’s Dortmund’s turn to give the ball away cheaply: Haaland pounces on a loose pass and City break downfield. Rodri hits a shot from distance which dribbles gently wide of the goal.

13 min: It’s goalless at Celtic Park between Celtic and Shakhtar Donetsk. Georgios Giakoumakis fires a shot over the crossbar, the first clear sight of goal for either side.

Updated

10 min: City are playing some attractive stuff, working Dortmund’s defenders around the pitch with some slick one-touch passing. Cancelo bends a cross over from the left wing but it bounces out for a goal kick.

7 min: Manchester City’s Cancelo is booked for a challenge on Adeyemi. Brandt takes the free-kick, and whips it around the wall and into the side netting.

Updated

No insight with any gravitas from me, other than to say that every time I see the name “Vlachodimos” I just think of Barry Glendenning pointing out how great it sounds when Steve McManaman says it,” emails Adam. “That name in a Scouse accent can raise my spirits no matter how down I feel.”

6 min: Not much has occurred since that early counterattack by Dortmund. Meanwhile, on Twitter:

3 min: Rodri coughs up possession in midfield, Dortmund break fluently with City all out of position. Julian Brandt is close to getting a shot in from close range, but an excellent challenge by Stones prevents him doing so. Before that, City began the evening by stroking the ball around the midfield in the manner of the home side.

Updated

First half kick-off!

Haaland puts boot to ball at the Westfalenstadion and we are under way. I’ll bring you goal updates from tonight’s matches while focusing on Dortmund v City.

Dortmund will play a 3-5-2. The pleasantries are done. It’s time.

Dortmund, who put five past Stuttgart in the Bundesliga last weekend, need a point to be sure of progress to the last 16. The teams are out on the pitch. Foden claps in the direction of the City fans. Rodri points to the heavens, inviting divine intervention of some sort.

It’s a big night for Ortega in the Manchester City goal, as he makes his competitive debut. A quick reminder that Stones, Ake, Gundogan, Foden and Alvarez also come into the side.

Manchester City have qualified, but will be confirmed as group winners with a win tonight. The uefa.com site has them lining up in a 4-4-2, with Foden on the left and Mahrez on the right, Gundogan and Rodri in the middle of the park. Let’s see if that is indeed how they line up.

Updated

RB Leipzig v Real Madrid teams

RB Leipzig: Blaswich, Simakan, Orban, Gvardiol, Raum, Haidara, Schlager, Szoboszlai, Nkunku, Forsberg, Andre Silva. Substitutes: Olmo, Poulsen, Werner, Nickisch, Diallo, Novoa, Henrichs, Kampl.

Real Madrid: Courtois, Lucas, Eder Militao, Rudiger, Nacho, Camavinga, Tchouameni, Kroos, Asensio, Rodrygo, Vinicius Junior. Substitutes: Carvajal, Alaba, Vallejo, Hazard, Lunin, Odriozola, Mendy, Lopez, Dotor, Arribas, Rodriguez.

Referee: Daniele Orsato (Italy)

Benfica v Juventus teams

Benfica: Vlachodimos, Bah, Silva, Otamendi, Grimaldo, Jeremias, Florentino, Joao Mario, Rafa Silva, Aursnes, Goncalo Ramos. Substitutes: Gilberto, Lucas Verissimo, Neres, Goncalves, Chiquinho, Ristic, Brooks, Musa, Joao Victor, Araujo, Bernardo, Helton Leite.

Juventus: Szczesny, Danilo, Bonucci, Gatti, Cuadrado, McKennie, Locatelli, Rabiot, Kostic, Vlahovic, Kean. Substitutes: Alex Sandro, Milik, Miretti, Pinsoglio, Rugani, Soule, Perin, Iling-Junior, Fagioli.

Referee: Srdjan Jovanovic (Serbia)

Dinamo Zagreb v Milan teams

Dinamo Zagreb: Livakovic, Ristovski, Josip Sutalo, Peric, Moharrami, Ivanusec, Misic, Ademi, Ljubicic, Petkovic, Orsic. Substitutes: Zagorac, Stefulj, Lauritsen, Baturina, Emreli, Bockaj, Drmic, Marin, Theophile-Catherine, Bulat, Menalo, Spikic.

Milan: Tatarusanu, Kalulu Kyatengwa, Gabbia, Kjaer, Hernandez, Tonali, Bennacer, Rebic, De Ketelaere, Leao, Giroud. Substitutes: Toure, Diaz, Origi, Messias, Pobega, Krunic, Coubis, Jungdal, Nava.

Referee: Szymon Marciniak (Poland)

Chelsea have closed out the win, 2-1, against RB Salzburg, thanks to a sumptuous second-half strike by Kai Havertz. They are into the knockout stages. Reaction here with Scott Murray:

BT Sport are showing an interview with Jude Bellingham. There is some good footage of him playing at youth level for Birmingham City. What a remarkable talent he is.

Mr. Liew wonders if Haaland scoring so much will become passé at some point,” emails Mary Waltz. “I root for Everton. We have played 12 games. We have scored 11 goals. No, no one will get bored with Haaland’s incredible goal scoring streak.”

Anthony Gordon of Everton.
Anthony Gordon of Everton. Photograph: Robbie Jay Barratt/AMA/Getty Images

Having lived in Sweden, I am pretty sure that Haaland is pronounced ‘Hawland’ but that’s just the tip of the iceberg,” writes Julian Menz.

“Havertz is also having a bad time of it, depending on the pundit/commentator, and that segues rather nicely into my MBM-writers question …

”I remember Ozil being Özil, while Schurrle was deemed not worthy of an Umlaut, and German Umlauts are pretty simple.

“Do you ever get to the ”oh eff it” point when trying to type MBM in a game involving, say, Polish or Czech players?”

Thank you for getting in töuch. Such is the lightning speed with which we write these MBMs, we often dispense with accents and umlauts. In regard to Polish and Czech players we avoid accents altogether, online and in print.

Celtic v Shakhtar Donetsk teams

Celtic: Hart, Juranovic, Carter-Vickers, Jenz, Taylor, O’Riley, Hatate, Abada, Haksabanovic, Giakoumakis, Furuhashi. Substitutes: Mooy, Turnbull, McCarthy, Bernabei, Abildgaard, Bain, Siegrist, Maeda, Forrest, Ralston.

Shakhtar Donetsk: Trubin, Taylor, Bondar, Matviyenko, Mykhaylichenko, Zubkov, Bondarenko, Stepanenko, Sudakov, Mudryk, Traore. Substitutes: Shevchenko, Kryvtsov, Totovytsky, Sikan, Kryskiv, Djurasek, Kulakov, Topalov, Konoplya, Pyatov, Kozik, Petryak.

Referee: Serdar Gozubuyuk (Netherlands)

Dortmund v Manchester City team news

Stefan Ortega makes his competitive debut in goal tonight, with Stones, Ake, Gundogan, Foden and Alvarez also coming into Guardiola’s side. Ortega Moreno signed from Arminia Bielefeld in the summer.

Dortmund: Kobel, Schlotterbeck, Hummels, Sule, Reyna, Can, Bellingham, Hazard, Brandt, Moukoko, Adeyemi. Substitutes: Meyer, Unbehaun, Wolf, Modeste, Malen, Passlack, Rothe, Coulibaly, Papadopoulos

Manchester City: Ortega, Stones, Dias, Ake, Cancelo, Mahrez, Rodrigo, Gundogan, Foden, Alvarez, Haaland. Substitutes: Ederson, Carson, Grealish, Laporte, De Bruyne, Bernardo, Akanji, Palmer, Lewis, Wilson-Esbrand

Updated

Courtesy of the elite content team at uefa.com, here are some permutations for this evening:

Qualified teams that may be confirmed as group winners tonight: Bayern, Club Brugge, Manchester City, Napoli, Real Madrid

Teams with a chance of qualifying tonight: Benfica, Chelsea, Dortmund, Inter, Leipzig, Liverpool, Marseille, Paris, Porto, Salzburg, Sporting CP, Tottenham

Updated

Kai Havertz has just made it 2-1 to “Chelsh” in Salzburg with a stunning curling finish from the edge of the penalty area.

Here is how Group G looks before City’s match in Dortmund:

Pos Team P GD Pts
1 Man City 4 10 10
2 Borussia Dortmund 4 5 7
3 Sevilla 5 -7 3
4 FC Copenhagen 5 -8 3

The Champions League match between Benfica and Juventus will be played without goal-line technology due to works at the Portuguese club’s stadium, Uefa has said.

Benfica commissioned works at the Estádio da Luz “without the knowledge of Uefa and Uefa’s goal-line technology supplier”, European football’s governing body said in a statement, which made the goal-line technology system dysfunctional. The works included replacement of the giant screens, installation of LED lighting and a new sound system, Benfica said on their website.

“Unfortunately it will not be possible to replace and install a new system in time for the match and therefore the match will go ahead without the use of goal-line technology as per the Uefa Champions League regulations,” Uefa said.

Juventus, who are third in Group H on three points, must beat Benfica to have any hope of reaching the knockout stages. A win for the Portuguese, second on eight points with leaders Paris St Germain, would guarantee a last-16 spot. (Reuters)

Salzburg are level with Chelsea at 1-1. Luka Sucic with the equaliser.

Meanwhile, here’s Sid Lowe on Unai Emery’s mission at Aston Villa:

Updated

I’m keeping a beady eye on the wires for team news. That’ll be coming up before too long.

Here’s Jonathan Liew on Erling Haaland. Will the novelty wear off?

Scott Murray is live-blogging Red Bull Salzburg v Chelsea here. Chelsea are a goal up. Click here to find out more:

Preamble

Is there hope for humanity? If Erling Haaland is any measure, the answer is probably yes. Simply consider his superiority as a player compared to his dad, Alf-Inge Haaland, a hard-running but limited central midfielder. That is what you call progress.

Anyway, before we get too existential, there is football on tonight. Manchester City are off to Dortmund, to see if they can back up the 2-1 win at the Etihad last month. Haaland junior scored the winner then, as if you needed reminding, and the chances of his former club keeping him out tonight are surely close to zero.

Celtic are already eliminated but will be playing for a pride-boosting victory – and the chance of a place in the Europa League – against Shakhtar Donetsk in Glasgow, on top of which there is Paris Saint-Germain v Maccabi Haifa, Dinamo Zagreb v Milan, Benfica v Juventus and RB Leipzig v Real Madrid. Let’s get it on!

Updated

Sign up to read this article
Read news from 100’s of titles, curated specifically for you.
Already a member? Sign in here
Related Stories
Top stories on inkl right now
Our Picks
Fourteen days free
Download the app
One app. One membership.
100+ trusted global sources.