Skip to content
Surf Wiki
Save to docs
sports

From Surf Wiki (app.surf) — the open knowledge base

Gerard Granollers

Spanish tennis player (born 1989)


Summary

Spanish tennis player (born 1989)

FieldValue
nameGerard Granollers Pujol
imageGranollers G. RG19 (13) (48199226007).jpg
captionGranollers at the 2019 French Open
countrySpain
residenceBarcelona, Spain
birth_date
birth_placeBarcelona, Spain
height6 ft
retired2021 (last match played)
playsRight handed
careerprizemoneyUS$ 408, 897
singlesrecord
singlestitles0
highestsinglesrankingNo. 217 (5 August 2013)
AustralianOpenresultQ1 (2012, 2014)
FrenchOpenresultQ1 (2014)
WimbledonresultQ1 (2014)
USOpenresultQ1 (2013)
doublesrecord
doublestitles0
highestdoublesrankingNo. 92 (24 December 2018)
AustralianOpenDoublesresult1R (2019)
FrenchOpenDoublesresult1R (2019)
WimbledonDoublesresult1R (2019)
updated3 October 2022

Gerard Granollers Pujol (; ; born 30 January 1989 in Barcelona) is a former professional tennis player from Spain. He has won 12 ATP Challenger tournament titles, all of them in doubles. His brother Marcel is also a tennis player, and they have won five Challenger doubles titles together.

Grand Slam performance timelines

Singles

Tournament2012201320142015
192020SRW–L
Australian OpenQ1AQ1AA0 / 00–0
French OpenAAQ1AA0 / 00–0
WimbledonAAQ1ANH0 / 00–0
US OpenAQ1AAA0 / 00–0
Win–loss0–00–00–00–00–00 / 00–0

Doubles

Tournament20192020SRW–L
Australian Open1RA0 / 10–1
French Open1RA0 / 10–1
Wimbledon1RNH0 / 10–1
US OpenAA0 / 00–0
Win–loss0–30–00 / 30–3

ATP Challenger and ITF Futures finals

Singles: 37 (16–21)

Legend
ATP Challenger (0–0)
ITF Futures (16–21)

|

Finals by surface
Hard (5–3)
Clay (11–17)
Grass (0–0)
Carpet (0–1)

|}

ResultW–LDateTournamentTierSurfaceOpponentScore
Loss0–1Spain F29, XàtivaFuturesClayESP Roberto Bautista Agut4–6, 4–6
Loss0–2Romania F9, IașiFuturesClayROU Victor Ioniță6–4, 2–6, 1–6
Loss0–3Spain F25, DéniaFuturesClayPOR Pedro Sousa0–6, 2–6
Loss0–4Turkey F5, AntalyaFuturesClayFRA Gianni Mina3–6, 1–6
Loss0–5Morocco F3, RabatFuturesClayFRA Augustin Gensse3–6, 4–6
Loss0–6Morocco F4, KenitraFuturesClayFRA Florian Reynet6–1, 2–6, 2–6
Loss0–7Egypt F4, CairoFuturesClayRUS Aleksandr Lobkov4–6, 2–6
Win1–7Portugal F2, LouléFuturesHardSVK Kamil Čapkovič6–3, 6–3
Win2–7Portugal F3, AlbufeiraFuturesHardPOL Adam Chadaj7–6(7–3), 4–6, 7–5
Loss2–8Spain F17, GetxoFuturesClayESP Guillermo Olaso7–5, 0–6, 2–6
Win3–8Romania F3, CraiovaFuturesClayROU Petru-Alexandru Luncanu6–4, 6–4
Loss3–9Italy F14, PaduaFuturesClayAUT Philipp Oswald4–6, 3–6
Win4–9Spain F31, SantanderFuturesClayGER Alexander Flock7–6(7–5), 4–6, 7–6(7–1)
Win5–9Spain F37, Sant CugatFuturesClayESP Marc Fornell Mestres6–2, 6–4
Loss5–10Spain F16, MartosFuturesHardESP José Checa Calvo4–6, 3–6
Win6–10Spain F30, SevilleFuturesClayAUS Jason Kubler6–0, 4–6, 6–1
Loss6–11Spain F32, SabadellFuturesClayESP Roberto Carballés Baena4–6, 1–6
Loss6–12Turkey F4, AntalyaFuturesHardTPE Huang Liang-chi6–2, 4–6, 3–6
Win7–12Turkey F11, AntalyaFuturesHardFRA Jules Marie6–2, 6–0
Loss7–13Spain F9, VillajoyosaFuturesCarpetESP Roberto Ortega Olmedo0–6, 7–5, 3–6
Loss7–14Spain F11, VicFuturesClayESP José Checa Calvo6–3, 4–6, 0–6
Loss7–15Romania F3, BacăuFuturesClayESP Jordi Samper Montaña4–6, 3–6
Win8–15Spain F19, Palma del RíoFuturesHardESP Roberto Carballés Baena7–6(7–5), 4–6, 6–3
Win9–15Spain F32, SevilleFuturesClayGER Jean-Marc Werner6–1, 4–6, 6–1
Loss9–16Hungary F1, BudapestFuturesClayBEL Niels Desein7–5, 3–6, 2–6
Loss9–17Croatia F4, PorečFuturesClayCRO Duje Kekez1–6, 1–6
Win10–17Morocco F4, CasablancaFuturesClayNED Matwé Middelkoop6–4, 6–2
Loss10–18Tunisia F4, El KantaouiFuturesHardGER Peter Heller5–7, 6–7(6–8)
Win11–18Spain F12, LleidaFuturesClayESP Álvaro López San Martín1–6, 7–6(7–5), 6–4
Win12–18Spain F15, Santa Margarida de MontbuiFuturesHardJPN Yasutaka Uchiyama6–7(1–7), 7–6(7–4), 6–3
Win13–18Estonia F1, PärnuFuturesClayEST Vladimir Ivanov6–2, 6–4
Win14–18Romania F12, IașiFuturesClayLTU Laurynas Grigelis6–3, 3–6, 7–6(7–0)
Loss14–19Spain F31, SabadellFuturesClayESP Marc Giner3–6, 6–1, 3–6
Win15–19Spain F1, CastelldefelsFuturesClayCAN Steven Diez6–3, 6–1
Loss15–20Spain F6, TarragonaFuturesClayCAN Steven Diez7–5, 1–6, 0–6
Win16–20Portugal F5, CascaisFuturesClayJPN Makoto Ochi6–1, 6–3
Loss16–21Spain F12, LleidaFuturesClayESP Pedro Martínez3–6, 7–5, 4–6

Doubles: 91 (61–30)

Legend
ATP Challenger (15–13)
ITF Futures (46–17)

|

Finals by surface
Hard (15–7)
Clay (46–22)
Grass (0–0)
Carpet (0–1)

|}

ResultW–LDateTournamentTierSurfacePartnerOpponentsScore
Loss0–1Spain F15, ReusFuturesClayESP Julián AlonsoESP David Marrero
ESP Pablo Santos González4–6, 4–6
Win1–1Spain F31, IrunFuturesClayESP David Díaz-VenturaESP Agustín Boje-Ordóñez
ESP Pablo Martín-Adalia6–3, 1–6, 6–2
Loss1–2Spain F16, ReusFuturesClayESP Ignacio Coll RiudavetsESP David Cañudas-Fernández
ESP Pedro Clar Rosselló3–6, 6–4, [8–10]
Loss1–3Spain F24, Santa Cruz de TenerifeFuturesHardESP Ignacio Coll RiudavetsESP Agustín Boje-Ordóñez
ESP Pablo Martín-Adalia4–6, 3–6
Loss1–4Spain F27, GandiaFuturesClayESP Íñigo Cervantes HuegunNED Stephan Fransen
NED Romano Frantzen6–7(2–7), 3–6
Win2–4Spain F29, XàtivaFuturesClayESP Ignacio Coll RiudavetsNED Stephan Fransen
NED Romano Frantzen7–6(7–5), 0–6, [10–5]
Win3–4Spain F31, IrunFuturesClayESP Íñigo Cervantes HuegunFRA Thomas Cazes-Carrère
FRA Romain Jouan6–7(5–7), 7–6(7–5), [10–6]
Win4–4Spain F39, SabadellFuturesClayESP Íñigo Cervantes HuegunESP David Ollivier Baquero
ESP Carlos Rexach Itoiz7–5, 3–6, [10–7]
Win5–4Spain F42, Las PalmasFuturesHardESP Andoni Vivanco-GuzmánESP Agustín Boje-Ordóñez
ESP Ignacio Coll Riudavets6–3, 6–3
Win6–4Spain F1, Ciutadella de MenorcaFuturesClayESP Íñigo Cervantes HuegunJAM Dustin Brown
GER Peter Steinberger6–3, 7–5
Win7–4Spain F10, CastelldefelsFuturesClayESP Marc Fornell MestresITA Stefano Ianni
ITA Mattia Livraghi6–4, 3–6, [10–5]
Win8–4Spain F11, ZaragozaFuturesClay (i)ESP Ignacio Coll RiudavetsESP Agustín Boje-Ordóñez
ESP Andoni Vivanco-Guzmán7–6(7–1), 6–4
Win9–4Spain F14, VicFuturesClayESP José Antonio Sánchez de LunaESP Pedro Clar Rosselló
ESP Jordi Marsé-Vidri7–6(9–7), 6–0
Win10–4Spain F15, BalaguerFuturesClayESP José Antonio Sánchez de LunaESP Marc Fornell Mestres
ESP Jordi Marsé-Vidri5–7, 7–6(7–0), [10–5]
Win11–4Spain F18, TeldeFuturesClayESP Marc Fornell MestresESP Sergio Gutiérrez Ferrol
ESP Rafael Mazón-Hernández6–3, 6–4
Win12–4Spain F20, La PalmaFuturesHardESP Adrián Menéndez MaceirasESP Javier Martí
ESP Andoni Vivanco-Guzmán6–4, 6–2
Loss12–5Spain F24, GandiaFuturesClayESP Jordi Samper MontañaESP Carlos Calderón Rodríguez
ESP José Checa Calvo6–7(5–7), 3–6
Win13–5Spain F29, SantanderFuturesClayESP Carlos Calderón RodríguezESP Rafael Mazón-Hernández
ESP Santos Sánchez-Patiño6–1, 6–1
Win14–5Romania F15, BrașovFuturesClayESP Carlos Calderón RodríguezROU Marius Copil
CAN Vasek Pospisil7–5, 6–7(2–7), [12–10]
Win15–5Bulgaria F7, DobrichFuturesClayESP Carlos Calderón RodríguezBUL Dimitar Kuzmanov
BUL Tzvetan Mihov6–7(1–7), 6–3, [10–3]
Win16–5Spain F37, VilafrancaFuturesClayESP Ignacio Coll RiudavetsESP Jordi Marsé-Vidri
AUS Allen Perel5–7, 6–0, [10–6]
Win17–5[](2009-yugra-cup-doubles)Khanty-Mansiysk, RussiaChallengerHard (i)ESP Marcel GranollersRUS Evgeny Kirillov
RUS Andrey Kuznetsov6–3, 6–2
Win18–5Egypt F1, GizaFuturesClayGER Denis GremelmayrEGY Karim Maamoun
EGY Sherif Sabry6–4, 7–5
Loss18–6Egypt F2, GizaFuturesClayITA Matteo MarraiEGY Karim Maamoun
EGY Sherif Sabry7–5, 4–6, [8–10]
Win19–6Egypt F3, GizaFuturesClayESP Guillermo AlcaideEGY Karim Maamoun
EGY Sherif Sabry3–6, 6–3, [11–9]
Win20–6Spain F8, SabadellFuturesClayESP Ignacio Coll RiudavetsBEL Bart Govaerts
ESP Jordi Samper Montaña7–5, 6–3
Win21–6Spain F9, BadalonaFuturesClayESP Ignacio Coll RiudavetsRUS Ivan Nedelko
ESP Roberto Rodríguez Alonso6–4, 6–2
Win22–6Turkey F5, AntalyaFuturesClayESP Ignacio Coll RiudavetsSRB Ivan Bjelica
SRB Miljan Zekić6–2, 5–7, [10–7]
Win23–6Great Britain F7, NewcastleFuturesClayESP Ignacio Coll RiudavetsGBR Maniel Bains
GBR Marcus Willis6–1, 6–4
Loss23–7Spain F17, ValldoreixFuturesClayESP Juan LizariturryESP David Cañudas-Fernández
ESP Marc Fornell Mestres3–6, 6–7(2–7)
Loss23–8Morocco F4, KenitraFuturesClayESP Jordi Samper MontañaESP Carlos Boluda-Purkiss
ESP Pedro Rico García3–6, 4–6
Win24–8[](2010-open-diputacion-ciudad-de-pozoblanco-doubles)Pozoblanco, SpainChallengerHardESP Marcel GranollersUSA Brian Battistone
SWE Filip Prpic6–4, 4–6, [10–4]
Loss24–9[](2010-blu-express-com-tennis-cup-doubles)Todi, ItalyChallengerClayESP Marcel GranollersITA Flavio Cipolla
ITA Alessio di Mauro1–6, 4–6
Win25–9Morocco F7, TangerFuturesClayESP Carlos Poch GradinAUT Philipp Oswald
NED Tim van Terheijden6–2, 6–3
Loss25–10[](2010-open-tarragona-costa-daurada-doubles)Tarragona, SpainChallengerClayESP Pablo AndújarESP Guillermo Olaso
ESP Pere Riba6–7(2–7), 6–4, [5–10]
Loss25–11Spain F38, Sant CugatFuturesClayESP Carlos Calderón RodríguezESP Miguel Ángel López Jaén
ESP Pablo Santos González1–6, 3–6
Loss25–12Spain F2, MallorcaFuturesClayESP Marc Fornell MestresESP José Checa Calvo
ESP Carlos Poch Gradinw/o
Win26–12Spain F17, GetxoFuturesClayESP Carlos Calderón RodríguezESP Iván Arenas-Gualda
ESP Antonio García Sánchez6–3, 6–3
Loss26–13Romania F3, CraiovaFuturesClayESP Ignacio Coll RiudavetsROU Teodor-Dacian Crăciun
ROU Andrei Dăescu6–2, 6–7(0–7), [8–10]
Loss26–14[](2011-copa-sevilla-doubles)Seville, SpainChallengerClayESP Adrián Menéndez MaceirasESP Daniel Muñoz de la Nava
ESP Rubén Ramírez Hidalgo4–6, 7–6(7–4), [11–13]
Loss26–15Spain F36, CórdobaFuturesHardPOR João SousaESP Miguel Ángel López Jaén
ESP Gabriel Trujillo Soler4–6, 4–6
Win27–15Spain F39, VilafrancaFuturesClayESP Roberto Carballés BaenaESP Miguel Ángel López Jaén
ESP Gabriel Trujillo Soler3–6, 6–3, [11–9]
Win28–15Egypt F1, CairoFuturesClayESP Jordi Samper MontañaEGY Omar Hedayet
EGY Karim-Mohamed Maamoun2–6, 7–6(7–3), [10–6]
Win29–15Egypt F2, CairoFuturesClayESP Jordi Samper MontañaSYR Marc Abdelnour
SYR Issam Haitham Taweel6–4, 6–2
Loss29–16[](2012-morocco-tennis-tour-meknes-doubles)Meknes, MoroccoChallengerClayESP Iván NavarroESP Adrián Menéndez Maceiras
CZE Jaroslav Pospíšil3–6, 6–3, [8–10]
Loss29–17[](2012-status-athens-open-doubles)Athens, GreeceChallengerHardGRE Alexandros JakupovicGER Andre Begemann
AUS Jordan Kerr2–6, 3–6
Loss29–18Spain F18, Palma del RíoFuturesHardESP Andoni Vivanco-GuzmánIRL James Cluskey
FRA Fabrice Martin3–6, 4–6
Win30–18Spain F30, SevilleFuturesClayESP Jordi Samper MontañaESP Jordi Marsé-Vidri
ESP Carlos Poch Gradin6–4, 6–0
Win31–18Turkey F3, AntalyaFuturesHardESP Pablo Carreño BustaRUS Vitaliy Kachanovskiy
RUS Andrei Levine7–6(7–4), 6–4
Win32–18Spain F4, CartagenaFuturesClayESP Jordi Samper MontañaESP Miguel Ángel López Jaén
ESP Jordi Marsé-Vidri6–2, 6–2
Win33–18Spain F5, ReusFuturesClayESP Jordi Samper MontañaVEN Jordi Muñoz Abreu
ESP Andoni Vivanco-Guzmán6–7(5–7), 7–6(7–3), [10–4]
Win34–18Turkey F11, AntalyaFuturesHardESP Guillermo OlasoSWE Patrik Brydolf
AUT Michael Linzer6–4, 6–1
Loss34–19Spain F9, VillajoyosaFuturesCarpetESP Eduard Esteve LobatoESP Oriol Roca Batalla
ESP Andoni Vivanco-Guzmán4–6, 6–3, [8–10]
Loss34–20[](2013-morocco-tennis-tour-meknes-doubles)Meknes, MoroccoChallengerClayESP Jordi Samper MontañaITA Alessandro Giannessi
ITA Gianluca Naso5–7, 6–7(3–7)
Win35–20[](2013-morocco-tennis-tour-kenitra-doubles)Kenitra, MoroccoChallengerClayESP Jordi Samper MontañaJPN Taro Daniel
RUS Alexander Rumyantsev6–4, 6–4
Win36–20Croatia F4, PorečFuturesClayESP Oriol Roca BatallaBUL Tihomir Grozdanov
CRO Duje Kekez6–4, 6–1
Win37–20[](2014-franken-challenge-doubles)Fürth, GermanyChallengerClayESP Jordi Samper MontañaESP Adrián Menéndez Maceiras
ESP Rubén Ramírez Hidalgo7–6(7–1), 6–2
Loss37–21[](2014-morocco-tennis-tour-meknes-doubles)Meknes, MoroccoChallengerClayESP Jordi Samper MontañaCHI Hans Podlipnik Castillo
ITA Stefano Travaglia2–6, 7–6(7–4), [7–10]
Loss37–22[](2014-morocco-tennis-tour-kenitra-doubles)Kenitra, MoroccoChallengerClayESP Jordi Samper MontañaCRO Dino Marcan
CRO Antonio Šančić1–6, 6–7(3–7)
Win38–22Spain F29, SabadellFuturesClayESP Eduard Esteve LobatoESP Juan Lizariturry
ESP Oriol Roca Batalla4–6, 6–3, [10–6]
Win39–22Spain F32, MadridFuturesHardESP Oriol Roca BatallaESP David Pérez Sanz
ESP Ricardo Villacorta-Alonso7–6(7–4), 6–0
Win40–22Spain F13, ValldoreixFuturesClayESP Oriol Roca BatallaESP Sergio Martos Gornés
ESP Pol Toledo Bagué7–5, 6–2
Win41–22Italy F14, NaplesFuturesClayNED Mark VervoortITA Filippo Baldi
ESP Eduard Esteve Lobato6–4, 7–5
Loss41–23Italy F15, BasilicanovaFuturesClayNED Mark VervoortGER Maximilian Marterer
GER Daniel Masur2–6, 6–1, [4–10]
Win42–23Spain F28, OviedoFuturesClayESP Pedro MartínezFRA Adrien Puget
FRA Xavier Pujo7–5, 6–4
Win43–23[](2015-morocco-tennis-tour-kenitra-doubles)Kenitra, MoroccoChallengerClayESP Oriol Roca BatallaGER Kevin Krawietz
GER Maximilian Marterer3–6, 7–6(7–4), [10–8]
Win44–23[](2015-kpit-mslta-challenger-doubles)Pune, IndiaChallengerHardESP Adrián Menéndez MaceirasAUT Maximilian Neuchrist
IND Divij Sharan3–6, 7–6(7–4), [10–8]
Win45–23Morocco F6, RabatFuturesClayESP Eduard Esteve LobatoEGY Karim Hossam
ITA Tommaso Lago6–4, 6–4
Win46–23Spain F31, SevilleFuturesClayESP David Vega HernándezESP Eduard Esteve Lobato
ESP Sergio Martos Gornés6–2, 7–5
Win47–23Spain F33, MadridFuturesHardESP Carlos Gómez-HerreraESP Carlos Boluda-Purkiss
ESP Miguel Semmler6–1, 5–3 ret.
Win48–23Spain F3, PegueraFuturesClayESP Pedro MartínezITA Filippo Leonardi
ITA Stefano Travaglia6–1, 6–3
Win49–23Spain F4, PegueraFuturesClayESP Pedro MartínezESP Sergio Martos Gornés
CHI Cristóbal Saavedra Corvalán6–3, 6–4
Win50–23Spain F7, XàbiaFuturesClayESP Pedro MartínezRUS Ivan Gakhov
ESP Sergio Martos Gornés6–2, 6–2
Loss50–24Spain F23, XàtivaFuturesClayESP Eduard Esteve LobatoESP Marc Fornell Mestres
ESP Sergio Martos Gornés3–6, 2–6
Loss50–25Spain F33, Riba-roja de TúriaFuturesClayESP Guillermo OlasoESP Javier Barranco Cosano
ITA Raúl Brancaccio7–5, 3–6, [7–10]
Win51–25[](2018-bangkok-challenger-doubles)Bangkok, ThailandChallengerHardESP Marcel GranollersCZE Zdeněk Kolář
POR Gonçalo Oliveira6–3, 7–6(8–6)
Win52–25[](2018-burnie-international-men-s-doubles)Burnie, AustraliaChallengerHardESP Marcel GranollersUSA Evan King
USA Max Schnur7–6(10–8), 6–2
Win53–25[](2018-glasgow-trophy-doubles)Glasgow, Great BritainChallengerHard (i)ESP Guillermo OlasoGBR Scott Clayton
GBR Jonny O'Mara6–1, 7–5
Loss53–26[](2018-winnipeg-national-bank-challenger-men-s-doubles)Winnipeg, CanadaChallengerHardESP Marcel GranollersSUI Marc-Andrea Hüsler
NED Sem Verbeek7–6(7–5), 3–6, [12–14]
Win54–26[](2018-levene-gouldin-thompson-tennis-challenger-doubles)Binghamton, USAChallengerHardESP Marcel GranollersCOL Alejandro Gómez
BRA Caio Silva7–6(7–2), 6–4
Win55–26[](2018-tilia-slovenia-open-doubles)Portorož, SloveniaChallengerHardCZE Lukáš RosolSRB Nikola Ćaćić
AUT Lucas Miedler7–5, 6–3
Loss55–27[](2018-rafa-nadal-open-banc-sabadell-doubles)Mallorca, SpainChallengerHardGBR Daniel EvansURU Ariel Behar
ESP Enrique López Pérezw/o
Win56–27[](2018-copa-sevilla-doubles)Seville, SpainChallengerClayESP Pedro MartínezESP Daniel Gimeno Traver
ESP Ricardo Ojeda Lara6–0, 6–2
Loss56–28[](2018-tiburon-challenger-doubles)Tiburon, USAChallengerHardESP Pedro MartínezMEX Hans Hach
AUS Luke Saville3–6, 2–6
Loss56–29[](2019-jc-ferrero-challenger-open-doubles)Alicante, SpainChallengerClayESP Pedro MartínezBRA Thomaz Bellucci
ARG Guillermo Durán6–2, 5–7, [5–10]
Win57–29[](2019-braga-open-doubles)Braga, PortugalChallengerClayBRA Fabrício NeisBEL Kimmer Coppejans
CZE Zdeněk Kolář6–4, 6–3
Win58–29[](2019-copa-sevilla-doubles)Seville, SpainChallengerClayESP Pedro MartínezBEL Kimmer Coppejans
ESP Sergio Martos Gornés7–5, 6–4
Loss58–30[](2019-firenze-tennis-cup-doubles)Florence, ItalyChallengerClayESP Pedro MartínezSUI Luca Margaroli
CAN Adil Shamasdin5–7, 7–6(8–6), [12–14]
Win59–30[](2020-marbella-tennis-open-doubles)Marbella, SpainChallengerClayESP Pedro MartínezVEN Luis David Martínez
BRA Fernando Romboli6–3, 6–4
Win60–30M15 Torelló, SpainWorld Tennis TourHardESP Oriol Roca BatallaSUI Leandro Riedi
FRA Arthur Cazaux7–6(8–6), 3–6, [11–9]
Win61–30M15 Cairo, EgyptWorld Tennis TourClayESP Pol Toledo BaguéRUS Ivan Gakhov
AUT Lukas Krainer5–7, 6–3, [10–3]

Notes

References

Wikipedia Source

This article was imported from Wikipedia and is available under the Creative Commons Attribution-ShareAlike 4.0 License. Content has been adapted to SurfDoc format. Original contributors can be found on the article history page.

Want to explore this topic further?

Ask Mako anything about Gerard Granollers — get instant answers, deeper analysis, and related topics.

Research with Mako

Free with your Surf account

Content sourced from Wikipedia, available under CC BY-SA 4.0.

This content may have been generated or modified by AI. CloudSurf Software LLC is not responsible for the accuracy, completeness, or reliability of AI-generated content. Always verify important information from primary sources.

Report