XML 15 R4.htm IDEA: XBRL DOCUMENT v3.25.2
CONDENSED CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME - USD ($)
$ in Thousands
3 Months Ended 6 Months Ended
Jun. 30, 2025
Jun. 30, 2024
Jun. 30, 2025
Jun. 30, 2024
Revenues        
Revenues $ 322,606 $ 310,867 $ 594,512 $ 561,944
Cost of revenues        
Cost of revenues 245,662 234,420 453,842 418,949
Gross profit 76,944 76,447 140,670 142,995
Operating expenses        
Selling and marketing expenses 24,778 19,460 43,336 34,040
General and administrative expenses 13,031 26,280 27,371 41,669
Research and development expenses 3,184 3,097 5,677 4,853
Losses on disposal of property and equipment 108 162 120 168
Total operating expenses 41,101 48,999 76,504 80,730
Operating income 35,843 27,448 64,166 62,265
Interest expense (32) (59) (55) (140)
Interest income 2,814 2,244 5,435 3,853
Foreign currency exchange gains (losses), net 647 (1,107) 1,439 (3,816)
Government grants 5 2 218 8
Others, net 1,677 506 2,256 184
Income before income taxes 40,954 29,034 73,459 62,354
Income tax expense (6,402) (2,065) (11,761) (8,190)
Net income 34,552 26,969 61,698 54,164
Foreign currency translation adjustment, net of nil income taxes 879 (266) 1,290 (378)
Net unrealized gain (loss) on available-for-sale investments (1) 2 (7) 2
Intra-entity foreign currency transactions gain 3,386 0 5,022 0
Release of foreign currency translation reserve related to liquidation of subsidiaries 0 0 (1) 0
Total other comprehensive income (loss) 4,264 (264) 6,304 (376)
Comprehensive Income $ 38,816 $ 26,705 $ 68,002 $ 53,788
Net income per ordinary share        
Net income per ordinary share, basic (in USD per share) $ 0.91 $ 0.65 $ 1.58 $ 1.32
Net income per ordinary share, diluted (in USD per share) $ 0.91 $ 0.65 $ 1.58 $ 1.32
Weighted average number of ordinary shares outstanding used in computing net income per ordinary share        
Weighted average number of ordinary shares outstanding used in computing net income per ordinary share, basic (in shares) 38,073,239 41,295,216 39,041,373 41,041,937
Weighted average number of ordinary shares outstanding used in computing net income per ordinary share, diluted (in shares) 38,106,956 41,407,207 39,117,361 41,150,585
Service revenues        
Revenues        
Revenues $ 96,924 $ 95,787 $ 190,992 $ 172,410
Cost of revenues        
Cost of revenues 85,856 82,826 165,012 145,526
Product revenues        
Revenues        
Revenues 225,682 215,080 403,520 389,534
Cost of revenues        
Cost of revenues $ 159,806 $ 151,594 $ 288,830 $ 273,423