{"id":813212,"date":"2025-02-13T17:22:31","date_gmt":"2025-02-13T22:22:31","guid":{"rendered":"https:\/\/www.marketnewsdesk.com\/index.php\/pdf-solutions-announces-record-2024-fourth-quarter-and-full-year-total-revenues\/"},"modified":"2025-02-13T17:22:31","modified_gmt":"2025-02-13T22:22:31","slug":"pdf-solutions-announces-record-2024-fourth-quarter-and-full-year-total-revenues","status":"publish","type":"post","link":"https:\/\/www.marketnewsdesk.com\/index.php\/pdf-solutions-announces-record-2024-fourth-quarter-and-full-year-total-revenues\/","title":{"rendered":"PDF Solutions\u00ae Announces Record 2024 Fourth Quarter and Full Year Total Revenues"},"content":{"rendered":"<div class=\"mw_release\">\n<p align=\"justify\">SANTA CLARA, Calif., Feb.  13, 2025  (GLOBE NEWSWIRE) &#8212; PDF Solutions, Inc. (Nasdaq: PDFS), a leading provider of comprehensive data solutions for the semiconductor and electronics ecosystem, today announced financial results for its fourth quarter and year ended December 31, 2024.<\/p>\n<p align=\"justify\">\n        <strong>Financial Highlights of Fourth Quarter 2024<\/strong>\n      <\/p>\n<ul type=\"disc\">\n<li style=\"text-align:justify\">\n          <strong>Record quarterly total revenues of $50.1 million, up 22% over last year\u2019s comparable quarter<\/strong>\n        <\/li>\n<li style=\"text-align:justify\">\n          <strong>Record quarterly analytics revenue of $47.9 million, up 22% over last year\u2019s comparable quarter<\/strong>\n        <\/li>\n<li style=\"text-align:justify\">\n          <strong>GAAP gross margin of 68% and non-GAAP gross margin of 72%<\/strong>\n        <\/li>\n<li style=\"text-align:justify\">\n          <strong>GAAP diluted earnings per share (EPS) of $0.01 and non-GAAP diluted EPS of $0.25<\/strong>\n        <\/li>\n<\/ul>\n<p align=\"justify\">\n        <strong>Financial Highlights of Full Year 2024<\/strong>\n      <\/p>\n<ul type=\"disc\">\n<li style=\"text-align:justify\">\n          <strong>Record full year total revenues of $179.5 million, up 8% over last year<\/strong>\n        <\/li>\n<li style=\"text-align:justify\">\n          <strong>Record full year analytics revenue of $169.3 million, up 11% over last year<\/strong>\n        <\/li>\n<li style=\"text-align:justify\">\n          <strong>GAAP gross margin of 70% and non-GAAP gross margin of 74%<\/strong>\n        <\/li>\n<li style=\"text-align:justify\">\n          <strong>GAAP diluted EPS of $0.10 and non-GAAP diluted EPS of $0.84<\/strong>\n        <\/li>\n<li style=\"text-align:justify\">\n          <strong>Backlog of $221.4 million as of December 31, 2024<\/strong><br \/>\n          \n        <\/li>\n<\/ul>\n<p align=\"justify\">Total revenues for the fourth quarter of 2024 were $50.1 million, compared to $46.4 million for the third quarter of 2024 and $41.1 million for the fourth quarter of 2023. Analytics revenue for the fourth quarter of 2024 was $47.9 million, compared to $44.8 million for the third quarter of 2024 and $39.1 million for the fourth quarter of 2023. Integrated Yield Ramp revenue for the fourth quarter of 2024 was $2.2 million, compared to $1.7 million for the third quarter of 2024 and $2.0 million for the fourth quarter of 2023. Total revenues for the full year 2024 and 2023 were $179.5 million and $165.8 million, respectively.<\/p>\n<p align=\"justify\">GAAP gross margin for the fourth quarter of 2024 was 68%, compared to 73% for the third quarter of 2024 and 68% for the fourth quarter of 2023. GAAP gross margin for the full year 2024 and 2023 was 70% and 69%, respectively.<\/p>\n<p align=\"justify\">Non-GAAP gross margin for the fourth quarter of 2024 was 72%, compared to 77% for the third quarter of 2024 and 72% for the fourth quarter of 2023. Non-GAAP gross margin for the full year 2024 and 2023 was 74% and 73%, respectively.<\/p>\n<p align=\"justify\">On a GAAP basis, net income for the fourth quarter of 2024 was $0.5 million, or $0.01 per diluted share, compared to net income of $2.2 million, or $0.06 per diluted share, for the third quarter of 2024, and net income of $0.9 million, or $0.02 per diluted share, for the fourth quarter of 2023. On a GAAP basis, net income for the full year 2024 was $4.1 million, or $0.10 per diluted share, compared to net income of $3.1 million, or $0.08 per diluted share, for the full year 2023.<\/p>\n<p align=\"justify\">Non-GAAP net income for the fourth quarter of 2024 was $9.9 million, or $0.25 per diluted share, compared to non-GAAP net income of $9.9 million, or $0.25 per diluted share, for the third quarter of 2024, and non-GAAP net income of $5.7 million, or $0.15 per diluted share, for the fourth quarter of 2023. Non-GAAP net income for the full year 2024 was $32.6 million, or $0.84 per diluted share, compared to non-GAAP net income of $28.5 million, or $0.73 per diluted share, for the full year 2023.<\/p>\n<p align=\"justify\">Cash, cash equivalents and short-term investments as of December 31, 2024, were $114.9 million.<\/p>\n<p align=\"justify\">\n        <strong>Financial Outlook<\/strong>\n      <\/p>\n<p align=\"justify\">\u201cWe are pleased with the progress we are making with our customers. During the fourth quarter of 2024, we completed an ongoing manufacturing evaluation of an eProbe machine earlier than the customer\u2019s schedule, resulting in the sale to this new leading edge customer, booked multiple Exensio deals, and saw growth in our Cimetrix connectivity business from runtime licenses. In 2025, we expect our full year revenues to grow at a rate approaching 15% year over year,\u201d said John Kibarian, CEO and President.<\/p>\n<p align=\"justify\">\n        <strong>Conference Call<\/strong>\n      <\/p>\n<p align=\"justify\">As previously announced, PDF Solutions will discuss these results on a live conference call beginning at 2:00 p.m. Pacific Time \/ 5:00 p.m. Eastern Time today. To participate on the live call, analysts and investors should pre-register at: <a href=\"https:\/\/www.globenewswire.com\/Tracker?data=dpCQYB40Zdr4-ksopTpnX3peoomrHp8vFOxP8ebqoALH6_IYTe0Y4J9LMMFiX5yAaSZ104RN4rsxtkFOtAmxzcNBqavwMonElMXT1kDmnRKDwK7lNDU7X6ZrE-QXXfDs7mmMe4wAZvLuWDmobgxQZ_tNTTpPSWUHjH0XrGU7l8h6pBxQyOxH9co3LW8FD2i6q7Av_QJh5or6M_oJj2bhUleGPgDhjZQqqvPrAb8q2R4=\" rel=\"nofollow\" target=\"_blank\">https:\/\/register.vevent.com\/register\/BI1b05df01d9534a648d4fd2cd753be31c<\/a>. Registrants will receive dial-in information and a unique passcode to access the call. We encourage participants to dial into the call ten minutes ahead of the scheduled time. The teleconference will also be webcast simultaneously on the Company\u2019s website at <a href=\"https:\/\/www.globenewswire.com\/Tracker?data=dpCQYB40Zdr4-ksopTpnXzmBzIPwUgxN3Wum-phXgBXk1Uf2bi-mEpoDG8z4moi_bqG3rmLt-8vzQuIJPCqFmwAKC3RUilKlSHqJCJyg3yk=\" rel=\"nofollow\" target=\"_blank\">https:\/\/ir.pdf.com\/webcasts<\/a>. A replay of the conference call webcast will be available after the call on the Company\u2019s investor relations website. A copy of this press release, including the disclosure and reconciliation of certain non-GAAP financial measures to the comparable GAAP measures, which non-GAAP measures may be used periodically by PDF Solutions\u2019 management when discussing financial results with investors and analysts, will also be available on PDF Solutions\u2019 website at <a href=\"https:\/\/www.globenewswire.com\/Tracker?data=r5lpgQPfPUqzoLqXL__ad9llG1Xf42bwIdYg67WkMQ2g1BQvKPKg5XqUU7BRLy_VFZJRS_NBfsuJD7GGTYwf-CkrCz8J3c6TfE7ewrixugbVr1bIaTOZ38y3EheRRAdu\" rel=\"nofollow\" target=\"_blank\">http:\/\/www.pdf.com\/press-releases<\/a> following the date of this release.<\/p>\n<p align=\"justify\">\n        <strong>Fourth Quarter and Full Year 2024 Financial Commentary Available Online<\/strong>\n      <\/p>\n<p align=\"justify\">A Management Report reviewing the Company\u2019s fourth quarter and full year 2024 financial results will be furnished to the Securities and Exchange Commission on Form 8-K and published on the Company\u2019s website at <a href=\"https:\/\/www.globenewswire.com\/Tracker?data=r5lpgQPfPUqzoLqXL__adzxkgVxAl078wuJ3mavfiSTLbmB-p0Y9FbuIpXiH1Ub5JpKa2XfegUpZZTQaYnKb9P7BcYXT3i46eAZ6vyn_1RQkgTfg522OMFRxwpGOJqad\" rel=\"nofollow\" target=\"_blank\">http:\/\/ir.pdf.com\/financial-reports<\/a>. Analysts and investors are encouraged to review this commentary prior to participating in the conference call.<\/p>\n<p align=\"justify\">\n        <strong>Information Regarding Use of Non-GAAP Financial Measures<\/strong>\n      <\/p>\n<p align=\"justify\">In addition to providing results that are determined in accordance with accounting principles generally accepted in the United States of America (\u201cGAAP\u201d), PDF Solutions also provides certain non-GAAP financial measures. Non-GAAP gross profit and margin exclude stock-based compensation expense and the amortization of acquired technology under costs of revenues. Non-GAAP net income excludes stock-based compensation expense, amortization of acquired technology under costs of revenues, amortization of other acquired intangible assets, and the effects of certain non-recurring items, such as expenses for certain legal proceedings, non-recurring legal, tax and accounting service-related costs, loss on damaged equipment in-transit, net of recovery from previously written-off property and equipment, and their related income tax effects, as applicable, as well as adjustments for the valuation allowance for deferred tax assets and reconciling items. These non-GAAP financial measures are used by management internally to measure the Company\u2019s profitability and performance. PDF Solutions\u2019 management believes that these non-GAAP measures provide useful supplemental information to investors regarding the Company\u2019s ongoing operations in light of the fact that none of these categories of expense and income has a current effect on the future uses of cash (with the exception of expenses related to certain legal proceedings and non-recurring legal, tax and accounting services) nor do they impact the generation of current or future revenues. These non-GAAP results should not be considered an alternative to, or a substitute for, GAAP financial information, and may differ from similarly titled non-GAAP measures used by other companies. In particular, these non-GAAP financial measures are not a substitute for GAAP measures of income or loss as a measure of performance, or to cash flows from operating, investing and financing activities as a measure of liquidity. Since management uses these non-GAAP financial measures internally to measure profitability and performance, PDF Solutions has included these non-GAAP measures to give investors an opportunity to see the Company\u2019s financial results as viewed by management. A reconciliation of the comparable GAAP financial measures to the non-GAAP financial measures is provided at the end of the Company\u2019s condensed consolidated financial statements presented below.<\/p>\n<p align=\"justify\">\n        <strong>Forward-Looking Statements<\/strong>\n      <\/p>\n<p align=\"justify\">This press release and the planned conference call include forward-looking statements regarding the Company\u2019s future expected business performance and financial results, including expectations about total revenue growth for 2025 and other statements identified by words such as \u201ccould,\u201d \u201cexpects,\u201d \u201cintends,\u201d \u201cmay,\u201d \u201cplans,\u201d \u201cpotential,\u201d \u201cshould,\u201d \u201cwill,\u201d \u201cwould,\u201d or similar expressions and the negatives of those terms, that are subject to future events and circumstances. Other than statements of historical fact, all statements contained in this press release and the planned conference call are forward-looking statements within the meaning of the \u201csafe harbor\u201d provisions of the Private Securities Litigation Reform Act of 1995. Actual results could differ materially from those expressed in these forward-looking statements. Risks and uncertainties that could cause results to differ materially include risks associated with: the effectiveness of the Company\u2019s business and technology strategies; current semiconductor industry trends and competition; rates of adoption of the Company\u2019s solutions by new and existing customers; project milestones or delays and performance criteria achieved; cost and schedule of new product development and investments in research and development; the continuing impact of macroeconomic conditions, including inflation, changing interest rates and tariffs, the evolving trade regulatory environment and geopolitical tensions, and other trends on the semiconductor industry, the Company\u2019s customers, operations, and supply and demand for its products; supply chain disruptions; the success of the Company\u2019s strategic growth opportunities and partnerships; recent and future acquisitions, strategic alliances and relationships and the Company\u2019s ability to successfully integrate acquired businesses and technologies; whether the Company can successfully convert backlog into revenue; customers\u2019 production volumes under contracts that provide Gainshare; the sufficiency of the Company\u2019s cash resources and anticipated funds from operations; the Company\u2019s ability to obtain additional financing if needed and its ability to use support and updates for certain open-source software; and other risks set forth in PDF Solutions\u2019 periodic public filings with the Securities and Exchange Commission, including, without limitation, its Annual Report on Form 10-K for the year ended December 31, 2023, Quarterly Reports on Form 10-Q, and Current Reports on Form 8-K and amendments to such reports. The forward-looking statements made in this press release and the conference call are made as of the date hereof, and PDF Solutions does not assume any obligation to update such statements nor the reasons why actual results could differ materially from those projected in such statements. The Company has not filed its Annual Report on Form 10-K for the year ended December 31, 2024. As a result, all financial results described in this earnings release should be considered preliminary, and are subject to change to reflect any necessary adjustments or changes in accounting estimates, that are identified prior to the time the Company files its Annual Report on Form 10-K.<\/p>\n<p align=\"justify\">\n        <strong>About PDF Solutions<\/strong>\n      <\/p>\n<p align=\"justify\">PDF Solutions (Nasdaq: PDFS) provides comprehensive data solutions designed to empower organizations across the semiconductor and electronics industry ecosystem to improve manufacturing yield, product quality and operational efficiency leading to increased profitability. The Company\u2019s products and services are used by Fortune 500 companies across the semiconductor and electronics ecosystem to achieve smart manufacturing goals by connecting and controlling manufacturing equipment, collecting data generated during manufacturing and test operations, and using advanced analytics and machine learning models to enable profitable, high-volume manufacturing.<\/p>\n<p align=\"justify\">Founded in 1991, PDF Solutions is headquartered in Santa Clara, California, with operations across North America, Europe, and Asia. The Company (directly or through one or more subsidiaries) is an active member of SEMI, INEMI, TPCA, IPC, the OPC Foundation, and DMDII. For the latest news and information about PDF Solutions or to find office locations, visit <a href=\"https:\/\/www.globenewswire.com\/Tracker?data=dpCQYB40Zdr4-ksopTpnXwh8Pt-0yu6PwNntj6edFQT4H2gC4mBHc5Yv3wgQSm45KxMIPokbPJmE2YGONMHAJw==\" rel=\"nofollow\" target=\"_blank\">https:\/\/www.pdf.com<\/a>.<\/p>\n<p align=\"justify\">\n        <em>PDF Solutions and the PDF Solutions logo are trademarks or registered trademarks of PDF Solutions, Inc. or its subsidiaries.<\/em>\n      <\/p>\n<table style=\"border-collapse: collapse;width:100%;border-collapse:collapse\">\n<tr>\n<td style=\"width:35%;text-align: justify;vertical-align: middle;vertical-align: bottom\">\n            <strong><br \/>\n              <b>Company Contacts:<\/b><br \/>\n            <\/strong>\n          <\/td>\n<td style=\"width:33.98%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:31.02%;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"width:35%;text-align: justify;vertical-align: middle;vertical-align: bottom\">Adnan Raza<\/td>\n<td style=\"width:33.98%;text-align: justify;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:31.02%;text-align: justify;vertical-align: middle;vertical-align: bottom\">Sonia Segovia<\/td>\n<\/tr>\n<tr>\n<td style=\"width:35%;text-align: justify;vertical-align: middle;vertical-align: bottom\">Chief Financial Officer<\/td>\n<td style=\"width:33.98%;text-align: justify;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:31.02%;text-align: justify;vertical-align: middle;vertical-align: bottom\">Investor Relations<\/td>\n<\/tr>\n<tr>\n<td style=\"width:35%;text-align: justify;vertical-align: middle;vertical-align: bottom\">Tel: (408) 516-0237<\/td>\n<td style=\"width:33.98%;text-align: justify;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:31.02%;text-align: justify;vertical-align: middle;vertical-align: bottom\">Tel: (408) 938-6491<\/td>\n<\/tr>\n<tr>\n<td style=\"width:35%;text-align: justify;vertical-align: middle;vertical-align: bottom\">Email:\u00a0adnan.raza@pdf.com<\/td>\n<td style=\"width:33.98%;text-align: justify;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:31.02%;text-align: justify;vertical-align: middle;vertical-align: bottom\">Email: sonia.segovia@pdf.com<\/td>\n<\/tr>\n<tr>\n<td style=\"width:35%;text-align: justify;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:33.98%;text-align: justify;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"width:31.02%;text-align: justify;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<\/table>\n<p>\n        <strong>PDF SOLUTIONS, INC.<\/strong><br \/>\n        <br \/>\n        <strong>CONDENSED CONSOLIDATED BALANCE SHEETS (UNAUDITED)<\/strong><br \/>\n        <br \/>\n        <strong>(In thousands)<\/strong>\n      <\/p>\n<table style=\"border-collapse: collapse;width:100%;border-collapse:collapse\">\n<tr>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\n            <strong>\u00a0\u00a0\u00a0\u00a0<\/strong>\n          <\/td>\n<td colspan=\"7\" style=\"border-bottom: solid black 1pt;text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>December\u00a031,\u00a0<\/strong>\n          <\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"3\" style=\"border-bottom: solid black 1pt;padding-right: 0;text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>2024<\/strong>\n          <\/td>\n<td style=\"text-align: center;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"3\" style=\"border-bottom: solid black 1pt;padding-right: 0;text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>2023<\/strong>\n          <\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>ASSETS<\/strong>\n          <\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">Current assets:<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"max-width:74%;width:74%;min-width:74%;vertical-align: middle;text-align: left;padding-left: 15.0px;vertical-align: bottom\">Cash and cash equivalents<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;vertical-align: bottom\">$<\/td>\n<td style=\"max-width:10%;width:10%;min-width:10%;padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">90,594<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;vertical-align: bottom\">$<\/td>\n<td style=\"max-width:10%;width:10%;min-width:10%;padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">98,978<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle;text-align: left;padding-left: 15.0px;vertical-align: bottom\">Short-term investments<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">24,291<\/td>\n<td style=\"padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">36,544<\/td>\n<td style=\"padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle;text-align: left;padding-left: 15.0px;vertical-align: bottom\">Accounts receivable, net<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">73,649<\/td>\n<td style=\"padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">44,904<\/td>\n<td style=\"padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle;text-align: left;padding-left: 15.0px;vertical-align: bottom\">Prepaid expenses and other current assets<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">17,445<\/td>\n<td style=\"border-bottom: solid black 1pt;padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">17,422<\/td>\n<td style=\"border-bottom: solid black 1pt;padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle;text-align: left;padding-left: 25.0px;vertical-align: bottom\">Total current assets<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">205,979<\/td>\n<td style=\"padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">197,848<\/td>\n<td style=\"padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">Property and equipment, net<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">48,465<\/td>\n<td style=\"padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">37,338<\/td>\n<td style=\"padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">Operating lease right-of-use assets, net<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">4,029<\/td>\n<td style=\"padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">4,926<\/td>\n<td style=\"padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">Goodwill<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">14,953<\/td>\n<td style=\"padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">15,029<\/td>\n<td style=\"padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">Intangible assets, net<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">12,307<\/td>\n<td style=\"padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">15,620<\/td>\n<td style=\"padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">Deferred tax assets, net<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">43<\/td>\n<td style=\"padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">157<\/td>\n<td style=\"padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">Other non-current assets<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">29,513<\/td>\n<td style=\"border-bottom: solid black 1pt;padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">19,218<\/td>\n<td style=\"border-bottom: solid black 1pt;padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle;text-align: left;padding-left: 25.0px;vertical-align: bottom\">Total assets<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">$<\/td>\n<td style=\"border-bottom: double black 3pt;padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">315,289<\/td>\n<td style=\"border-bottom: double black 3pt;padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">$<\/td>\n<td style=\"border-bottom: double black 3pt;padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">290,136<\/td>\n<td style=\"border-bottom: double black 3pt;padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>LIABILITIES AND STOCKHOLDERS\u2019 EQUITY<\/strong>\n          <\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">Current liabilities:<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle;text-align: left;padding-left: 15.0px;vertical-align: bottom\">Accounts payable<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">$<\/td>\n<td style=\"padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">8,255<\/td>\n<td style=\"padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">$<\/td>\n<td style=\"padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">2,561<\/td>\n<td style=\"padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle;text-align: left;padding-left: 15.0px;vertical-align: bottom\">Accrued compensation and related benefits<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">16,855<\/td>\n<td style=\"padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">14,800<\/td>\n<td style=\"padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle;text-align: left;padding-left: 15.0px;vertical-align: bottom\">Accrued and other current liabilities<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">8,752<\/td>\n<td style=\"padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">4,633<\/td>\n<td style=\"padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle;text-align: left;padding-left: 15.0px;vertical-align: bottom\">Operating lease liabilities \u2012 current portion<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">1,675<\/td>\n<td style=\"padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">1,529<\/td>\n<td style=\"padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle;text-align: left;padding-left: 15.0px;vertical-align: bottom\">Deferred revenues \u2012 current portion<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">24,930<\/td>\n<td style=\"padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">25,750<\/td>\n<td style=\"padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle;text-align: left;padding-left: 15.0px;vertical-align: bottom\">Billings in excess of recognized revenues<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">75<\/td>\n<td style=\"border-bottom: solid black 1pt;padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">1,570<\/td>\n<td style=\"border-bottom: solid black 1pt;padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle;text-align: left;padding-left: 25.0px;vertical-align: bottom\">Total current liabilities<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">60,542<\/td>\n<td style=\"padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">50,843<\/td>\n<td style=\"padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">Long-term income taxes<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">2,915<\/td>\n<td style=\"padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">2,972<\/td>\n<td style=\"padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">Non-current operating lease liabilities<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">3,504<\/td>\n<td style=\"padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">4,657<\/td>\n<td style=\"padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">Other non-current liabilities<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">2,291<\/td>\n<td style=\"border-bottom: solid black 1pt;padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">2,718<\/td>\n<td style=\"border-bottom: solid black 1pt;padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle;text-align: left;padding-left: 25.0px;vertical-align: bottom\">Total liabilities<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">69,252<\/td>\n<td style=\"border-bottom: solid black 1pt;padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">61,190<\/td>\n<td style=\"border-bottom: solid black 1pt;padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">Stockholders\u2019 equity:<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">Common stock and additional paid-in capital<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">502,908<\/td>\n<td style=\"padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">473,301<\/td>\n<td style=\"padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">Treasury stock, at cost<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">(159,352<\/td>\n<td style=\"padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">)<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">(143,923<\/td>\n<td style=\"padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">)<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">Accumulated deficit<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">(93,988<\/td>\n<td style=\"padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">)<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">(98,045<\/td>\n<td style=\"padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">)<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">Accumulated other comprehensive loss<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">(3,531<\/td>\n<td style=\"border-bottom: solid black 1pt;padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">)<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">(2,387<\/td>\n<td style=\"border-bottom: solid black 1pt;padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">)<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle;text-align: left;padding-left: 25.0px;vertical-align: bottom\">Total stockholders\u2019 equity<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">246,037<\/td>\n<td style=\"border-bottom: solid black 1pt;padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">228,946<\/td>\n<td style=\"border-bottom: solid black 1pt;padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle;text-align: left;padding-left: 25.0px;vertical-align: bottom\">Total liabilities and stockholders\u2019 equity<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">$<\/td>\n<td style=\"border-bottom: double black 3pt;padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">315,289<\/td>\n<td style=\"border-bottom: double black 3pt;padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">$<\/td>\n<td style=\"border-bottom: double black 3pt;padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">290,136<\/td>\n<td style=\"border-bottom: double black 3pt;padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td colspan=\"9\" style=\"vertical-align: middle;text-align: left;padding-left: 25.0px;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<\/table>\n<p>\n        <strong>PDF SOLUTIONS, INC.<\/strong><br \/>\n        <br \/>\n        <strong>CONDENSED CONSOLIDATED STATEMENTS OF OPERATIONS (UNAUDITED)<\/strong><br \/>\n        <br \/>\n        <strong>(In thousands, except per share amounts)<\/strong>\n      <\/p>\n<table style=\"border-collapse: collapse;width:100%;border-collapse:collapse\">\n<tr>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"12\" style=\"border-bottom: solid black 1pt;text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>Three months ended <\/strong>\n          <\/td>\n<td style=\"text-align: center;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"7\" style=\"border-bottom: solid black 1pt;text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>Year ended <\/strong>\n          <\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: center;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: center;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"3\" style=\"text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>December\u00a031,\u00a0<\/strong>\n          <\/td>\n<td style=\"text-align: center;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"3\" style=\"text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>September\u00a030,\u00a0<\/strong>\n          <\/td>\n<td style=\"text-align: center;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"3\" style=\"text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>December\u00a031,\u00a0<\/strong>\n          <\/td>\n<td style=\"text-align: center;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"3\" style=\"text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>December\u00a031,\u00a0<\/strong>\n          <\/td>\n<td style=\"text-align: center;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"3\" style=\"text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>December\u00a031,\u00a0<\/strong>\n          <\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"border-bottom: solid black 1pt;padding-right: 0;text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>2024<\/strong>\n          <\/td>\n<td style=\"border-bottom: solid black 1pt;padding-left: 0;text-align: center;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: center;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"border-bottom: solid black 1pt;padding-right: 0;text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>2024<\/strong>\n          <\/td>\n<td style=\"border-bottom: solid black 1pt;padding-left: 0;text-align: center;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: center;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"border-bottom: solid black 1pt;padding-right: 0;text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>2023<\/strong>\n          <\/td>\n<td style=\"border-bottom: solid black 1pt;padding-left: 0;text-align: center;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>\u00a0\u00a0\u00a0\u00a0<\/strong>\n          <\/td>\n<td colspan=\"2\" style=\"border-bottom: solid black 1pt;padding-right: 0;text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>2024<\/strong>\n          <\/td>\n<td style=\"border-bottom: solid black 1pt;padding-left: 0;text-align: center;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: center;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"border-bottom: solid black 1pt;padding-right: 0;text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>2023<\/strong>\n          <\/td>\n<td style=\"border-bottom: solid black 1pt;padding-left: 0;text-align: center;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"3\" style=\"text-align: center;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">Revenues:<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"max-width:35%;width:35%;min-width:35%;vertical-align: middle;text-align: left;padding-left: 10.0px;vertical-align: bottom\">Analytics<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;vertical-align: bottom\">$<\/td>\n<td style=\"max-width:10%;width:10%;min-width:10%;padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">47,926<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;vertical-align: bottom\">$<\/td>\n<td style=\"max-width:10%;width:10%;min-width:10%;padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">44,750<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;vertical-align: bottom\">$<\/td>\n<td style=\"max-width:10%;width:10%;min-width:10%;padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">39,128<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;vertical-align: bottom\">$<\/td>\n<td style=\"max-width:10%;width:10%;min-width:10%;padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">169,253<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;vertical-align: bottom\">$<\/td>\n<td style=\"max-width:10%;width:10%;min-width:10%;padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">152,085<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle;text-align: left;padding-left: 10.0px;vertical-align: bottom\">Integrated yield ramp<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">2,159<\/td>\n<td style=\"border-bottom: solid black 1pt;padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">1,659<\/td>\n<td style=\"border-bottom: solid black 1pt;padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">1,997<\/td>\n<td style=\"border-bottom: solid black 1pt;padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">10,212<\/td>\n<td style=\"border-bottom: solid black 1pt;padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">13,750<\/td>\n<td style=\"border-bottom: solid black 1pt;padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle;text-align: left;padding-left: 15.0px;vertical-align: bottom\">Total revenues<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">50,085<\/td>\n<td style=\"border-bottom: solid black 1pt;padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">46,409<\/td>\n<td style=\"border-bottom: solid black 1pt;padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">41,125<\/td>\n<td style=\"border-bottom: solid black 1pt;padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">179,465<\/td>\n<td style=\"border-bottom: solid black 1pt;padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">165,835<\/td>\n<td style=\"border-bottom: solid black 1pt;padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">Costs and Expenses:<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle;text-align: left;padding-left: 10.0px;vertical-align: bottom\">Costs of revenues<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">15,901<\/td>\n<td style=\"padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">12,484<\/td>\n<td style=\"padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">13,194<\/td>\n<td style=\"padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">54,144<\/td>\n<td style=\"padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">51,749<\/td>\n<td style=\"padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle;text-align: left;padding-left: 10.0px;vertical-align: bottom\">Research and development<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">14,417<\/td>\n<td style=\"padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">13,516<\/td>\n<td style=\"padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">12,308<\/td>\n<td style=\"padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">53,566<\/td>\n<td style=\"padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">50,736<\/td>\n<td style=\"padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle;text-align: left;padding-left: 10.0px;vertical-align: bottom\">Selling, general, and administrative<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">19,073<\/td>\n<td style=\"padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">18,094<\/td>\n<td style=\"padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">16,194<\/td>\n<td style=\"padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">69,924<\/td>\n<td style=\"padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">62,216<\/td>\n<td style=\"padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle;text-align: left;padding-left: 10.0px;vertical-align: bottom\">Amortization of acquired intangible assets<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">182<\/td>\n<td style=\"padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">196<\/td>\n<td style=\"padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">306<\/td>\n<td style=\"padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">896<\/td>\n<td style=\"padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">1,285<\/td>\n<td style=\"padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle;text-align: left;padding-left: 10.0px;vertical-align: bottom\">Interest and other expense (income), net<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">(962<\/td>\n<td style=\"border-bottom: solid black 1pt;padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">)<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">(1,511<\/td>\n<td style=\"border-bottom: solid black 1pt;padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">)<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">(1,020<\/td>\n<td style=\"border-bottom: solid black 1pt;padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">)<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">(5,644<\/td>\n<td style=\"border-bottom: solid black 1pt;padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">)<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">(5,020<\/td>\n<td style=\"border-bottom: solid black 1pt;padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">)<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">Income before income tax benefit (expense)<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">1,474<\/td>\n<td style=\"padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">3,630<\/td>\n<td style=\"padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">143<\/td>\n<td style=\"padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">6,579<\/td>\n<td style=\"padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">4,869<\/td>\n<td style=\"padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">Income tax benefit (expense)<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">(935<\/td>\n<td style=\"border-bottom: solid black 1pt;padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">)<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">(1,424<\/td>\n<td style=\"border-bottom: solid black 1pt;padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">)<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">744<\/td>\n<td style=\"border-bottom: solid black 1pt;padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">(2,522<\/td>\n<td style=\"border-bottom: solid black 1pt;padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">)<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">(1,764<\/td>\n<td style=\"border-bottom: solid black 1pt;padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">)<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">Net income<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">$<\/td>\n<td style=\"border-bottom: double black 3pt;padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">539<\/td>\n<td style=\"border-bottom: double black 3pt;padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">$<\/td>\n<td style=\"border-bottom: double black 3pt;padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">2,206<\/td>\n<td style=\"border-bottom: double black 3pt;padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">$<\/td>\n<td style=\"border-bottom: double black 3pt;padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">887<\/td>\n<td style=\"border-bottom: double black 3pt;padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">$<\/td>\n<td style=\"border-bottom: double black 3pt;padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">4,057<\/td>\n<td style=\"border-bottom: double black 3pt;padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">$<\/td>\n<td style=\"border-bottom: double black 3pt;padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">3,105<\/td>\n<td style=\"border-bottom: double black 3pt;padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">Net income per share:<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">Basic<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">$<\/td>\n<td style=\"border-bottom: double black 3pt;padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">0.01<\/td>\n<td style=\"border-bottom: double black 3pt;padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">$<\/td>\n<td style=\"border-bottom: double black 3pt;padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">0.06<\/td>\n<td style=\"border-bottom: double black 3pt;padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">$<\/td>\n<td style=\"border-bottom: double black 3pt;padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">0.02<\/td>\n<td style=\"border-bottom: double black 3pt;padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">$<\/td>\n<td style=\"border-bottom: double black 3pt;padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">0.11<\/td>\n<td style=\"border-bottom: double black 3pt;padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">$<\/td>\n<td style=\"border-bottom: double black 3pt;padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">0.08<\/td>\n<td style=\"border-bottom: double black 3pt;padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">Diluted<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">$<\/td>\n<td style=\"border-bottom: double black 3pt;padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">0.01<\/td>\n<td style=\"border-bottom: double black 3pt;padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">$<\/td>\n<td style=\"border-bottom: double black 3pt;padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">0.06<\/td>\n<td style=\"border-bottom: double black 3pt;padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">$<\/td>\n<td style=\"border-bottom: double black 3pt;padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">0.02<\/td>\n<td style=\"border-bottom: double black 3pt;padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">$<\/td>\n<td style=\"border-bottom: double black 3pt;padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">0.10<\/td>\n<td style=\"border-bottom: double black 3pt;padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">$<\/td>\n<td style=\"border-bottom: double black 3pt;padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">0.08<\/td>\n<td style=\"border-bottom: double black 3pt;padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">Weighted average common shares used to calculate net income per share:<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">Basic<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">38,783<\/td>\n<td style=\"border-bottom: double black 3pt;padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">38,710<\/td>\n<td style=\"border-bottom: double black 3pt;padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">38,269<\/td>\n<td style=\"border-bottom: double black 3pt;padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">38,602<\/td>\n<td style=\"border-bottom: double black 3pt;padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">38,015<\/td>\n<td style=\"border-bottom: double black 3pt;padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">Diluted<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">39,104<\/td>\n<td style=\"border-bottom: double black 3pt;padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">39,105<\/td>\n<td style=\"border-bottom: double black 3pt;padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">38,814<\/td>\n<td style=\"border-bottom: double black 3pt;padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">39,047<\/td>\n<td style=\"border-bottom: double black 3pt;padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">38,937<\/td>\n<td style=\"border-bottom: double black 3pt;padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td colspan=\"21\" style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<\/table>\n<p>\n        <strong>PDF SOLUTIONS, INC.<\/strong><br \/>\n        <br \/>\n        <strong>RECONCILIATION OF GAAP GROSS MARGIN TO NON-GAAP GROSS MARGIN (UNAUDITED)<\/strong><br \/>\n        <br \/>\n        <strong>(In thousands)<\/strong>\n      <\/p>\n<table style=\"border-collapse: collapse;width:100%;border-collapse:collapse\">\n<tr>\n<td style=\"max-width:35%;width:35%;min-width:35%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:10%;width:10%;min-width:10%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:10%;width:10%;min-width:10%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:10%;width:10%;min-width:10%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:10%;width:10%;min-width:10%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:10%;width:10%;min-width:10%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"11\" style=\"border-bottom: solid black 1pt;text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>Three months ended <\/strong>\n          <\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"7\" style=\"border-bottom: solid black 1pt;text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>Year ended <\/strong>\n          <\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"3\" style=\"text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>December\u00a031,\u00a0<\/strong>\n          <\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"3\" style=\"text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>September\u00a030,\u00a0<\/strong>\n          <\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"3\" style=\"text-align: center;vertical-align: middle;border-top: solid black 1pt;vertical-align: bottom\">\n            <strong>December\u00a031,\u00a0<\/strong>\n          <\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"3\" style=\"text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>December\u00a031,\u00a0<\/strong>\n          <\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"3\" style=\"text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>December\u00a031,\u00a0<\/strong>\n          <\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"3\" style=\"border-bottom: solid black 1pt;text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>2024<\/strong>\n          <\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"3\" style=\"border-bottom: solid black 1pt;text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>2024<\/strong>\n          <\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"3\" style=\"border-bottom: solid black 1pt;text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>2023<\/strong>\n          <\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"3\" style=\"border-bottom: solid black 1pt;text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>2024<\/strong>\n          <\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"3\" style=\"border-bottom: solid black 1pt;text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>2023<\/strong>\n          <\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: center;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: center;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: center;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: center;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: center;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: center;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: center;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: center;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: center;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">\n            <u>GAAP<\/u>\n          <\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">Total revenues<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">$<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">50,085<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">$<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">46,409<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">$<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">41,125<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">$<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">179,465<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">$<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">165,835<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">Costs of revenues<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;border-bottom: solid black 1pt;vertical-align: bottom\">15,901<\/td>\n<td style=\"border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;border-bottom: solid black 1pt;vertical-align: bottom\">12,484<\/td>\n<td style=\"border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;border-bottom: solid black 1pt;vertical-align: bottom\">13,194<\/td>\n<td style=\"border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;border-bottom: solid black 1pt;vertical-align: bottom\">54,144<\/td>\n<td style=\"border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;border-bottom: solid black 1pt;vertical-align: bottom\">51,749<\/td>\n<td style=\"border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">GAAP gross profit<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">$<\/td>\n<td style=\"text-align: right;vertical-align: middle;border-bottom: double black 3pt;vertical-align: bottom\">34,184<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">$<\/td>\n<td style=\"text-align: right;vertical-align: middle;border-bottom: double black 3pt;vertical-align: bottom\">33,925<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">$<\/td>\n<td style=\"text-align: right;vertical-align: middle;border-bottom: double black 3pt;vertical-align: bottom\">27,931<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">$<\/td>\n<td style=\"text-align: right;vertical-align: middle;border-bottom: double black 3pt;vertical-align: bottom\">125,321<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">$<\/td>\n<td style=\"text-align: right;vertical-align: middle;border-bottom: double black 3pt;vertical-align: bottom\">114,086<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">GAAP gross margin<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;border-bottom: double black 3pt;vertical-align: bottom\">68<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">%<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;border-bottom: double black 3pt;vertical-align: bottom\">73<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">%<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;border-bottom: double black 3pt;vertical-align: bottom\">68<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">%<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;border-bottom: double black 3pt;vertical-align: bottom\">70<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">%<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;border-bottom: double black 3pt;vertical-align: bottom\">69<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">%<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">\n            <u>Non-GAAP<\/u>\n          <\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">GAAP gross profit<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">$<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">34,184<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">$<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">33,925<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">$<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">27,931<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">$<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">125,321<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">$<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">114,086<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">Adjustments to reconcile GAAP to non-GAAP gross margin:<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle;text-align: left;padding-left: 10.0px;vertical-align: bottom\">Stock-based compensation expense<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">1,336<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">1,366<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">1,147<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">5,087<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">4,169<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle;text-align: left;padding-left: 10.0px;vertical-align: bottom\">Amortization of acquired technology<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;border-bottom: solid black 1pt;vertical-align: bottom\">583<\/td>\n<td style=\"border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;border-bottom: solid black 1pt;vertical-align: bottom\">584<\/td>\n<td style=\"border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;border-bottom: solid black 1pt;vertical-align: bottom\">586<\/td>\n<td style=\"border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;border-bottom: solid black 1pt;vertical-align: bottom\">2,335<\/td>\n<td style=\"border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;border-bottom: solid black 1pt;vertical-align: bottom\">2,266<\/td>\n<td style=\"border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">Non-GAAP gross profit<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">$<\/td>\n<td style=\"text-align: right;vertical-align: middle;border-bottom: double black 3pt;vertical-align: bottom\">36,103<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">$<\/td>\n<td style=\"text-align: right;vertical-align: middle;border-bottom: double black 3pt;vertical-align: bottom\">35,875<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">$<\/td>\n<td style=\"text-align: right;vertical-align: middle;border-bottom: double black 3pt;vertical-align: bottom\">29,664<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">$<\/td>\n<td style=\"text-align: right;vertical-align: middle;border-bottom: double black 3pt;vertical-align: bottom\">132,743<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">$<\/td>\n<td style=\"text-align: right;vertical-align: middle;border-bottom: double black 3pt;vertical-align: bottom\">120,521<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">Non-GAAP gross margin<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;border-bottom: double black 3pt;vertical-align: bottom\">72<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">%<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;border-bottom: double black 3pt;vertical-align: bottom\">77<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">%<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;border-bottom: double black 3pt;vertical-align: bottom\">72<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">%<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;border-bottom: double black 3pt;vertical-align: bottom\">74<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">%<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;border-bottom: double black 3pt;vertical-align: bottom\">73<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">%<\/td>\n<\/tr>\n<tr>\n<td colspan=\"21\" style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<\/table>\n<p>\n        <strong>PDF SOLUTIONS, INC.<\/strong><br \/>\n        <br \/>\n        <strong>RECONCILIATION OF GAAP NET INCOME (LOSS) TO NON-GAAP NET INCOME (UNAUDITED)<\/strong><br \/>\n        <br \/>\n        <strong>(In thousands, except per share amounts)<\/strong>\n      <\/p>\n<table style=\"border-collapse: collapse;width:100%;border-collapse:collapse\">\n<tr>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"12\" style=\"text-align: center;vertical-align: middle;border-bottom: solid black 1pt;vertical-align: bottom\">\n            <strong>Three months ended <\/strong>\n          <\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"7\" style=\"border-bottom: solid black 1pt;text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>Year ended <\/strong>\n          <\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"3\" style=\"text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>December\u00a031,\u00a0<\/strong>\n          <\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"3\" style=\"text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>September\u00a030,\u00a0<\/strong>\n          <\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"3\" style=\"text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>December\u00a031,\u00a0<\/strong>\n          <\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"3\" style=\"text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>December\u00a031,\u00a0<\/strong>\n          <\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"3\" style=\"text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>December\u00a031,\u00a0<\/strong>\n          <\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"3\" style=\"border-bottom: solid black 1pt;text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>2024<\/strong>\n          <\/td>\n<td style=\"text-align: center;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"3\" style=\"border-bottom: solid black 1pt;padding-right: 0;text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>2024<\/strong>\n          <\/td>\n<td style=\"text-align: center;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"3\" style=\"border-bottom: solid black 1pt;padding-right: 0;text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>2023<\/strong>\n          <\/td>\n<td style=\"text-align: center;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"3\" style=\"border-bottom: solid black 1pt;padding-right: 0;text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>2024<\/strong>\n          <\/td>\n<td style=\"text-align: center;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"3\" style=\"border-bottom: solid black 1pt;padding-right: 0;text-align: center;vertical-align: middle;vertical-align: bottom\">\n            <strong>2023<\/strong>\n          <\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: center;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: center;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: center;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"3\" style=\"text-align: center;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: center;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: center;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: center;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: center;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: center;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: center;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"max-width:35%;width:35%;min-width:35%;vertical-align: bottom\">GAAP net income<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;vertical-align: bottom\">$<\/td>\n<td style=\"max-width:10%;width:10%;min-width:10%;text-align: right;vertical-align: middle;vertical-align: bottom\">539<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;vertical-align: bottom\">$<\/td>\n<td style=\"max-width:10%;width:10%;min-width:10%;padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">2,206<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;vertical-align: bottom\">$<\/td>\n<td style=\"max-width:10%;width:10%;min-width:10%;padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">887<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;vertical-align: bottom\">$<\/td>\n<td style=\"max-width:10%;width:10%;min-width:10%;padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">4,057<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;vertical-align: bottom\">$<\/td>\n<td style=\"max-width:10%;width:10%;min-width:10%;padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">3,105<\/td>\n<td style=\"max-width:1%;width:1%;min-width:1%;padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">Adjustments to reconcile GAAP net income to non-GAAP net income:<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle;text-align: left;padding-left: 10.0px;vertical-align: bottom\">Stock-based compensation expense<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">6,507<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">6,730<\/td>\n<td style=\"padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">5,923<\/td>\n<td style=\"padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">25,047<\/td>\n<td style=\"padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">21,484<\/td>\n<td style=\"padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle;text-align: left;padding-left: 10.0px;vertical-align: bottom\">Amortization of acquired technology under costs of revenues<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">583<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">584<\/td>\n<td style=\"padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">586<\/td>\n<td style=\"padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">2,335<\/td>\n<td style=\"padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">2,266<\/td>\n<td style=\"padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle;text-align: left;padding-left: 10.0px;vertical-align: bottom\">Amortization of other acquired intangible assets<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">182<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">196<\/td>\n<td style=\"padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">306<\/td>\n<td style=\"padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">896<\/td>\n<td style=\"padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">1,285<\/td>\n<td style=\"padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle;text-align: left;padding-left: 10.0px;vertical-align: bottom\">Expenses for certain legal proceedings (1)<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">69<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">\u2014<\/td>\n<td style=\"padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">75<\/td>\n<td style=\"padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">69<\/td>\n<td style=\"padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">2,600<\/td>\n<td style=\"padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle;text-align: left;padding-left: 10.0px;vertical-align: bottom\">Non-recurring legal, tax and accounting service-related costs<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">940<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">\u2014<\/td>\n<td style=\"padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">\u2014<\/td>\n<td style=\"padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">940<\/td>\n<td style=\"padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">209<\/td>\n<td style=\"padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle;text-align: left;padding-left: 10.0px;vertical-align: bottom\">Loss on damaged equipment in-transit, net of (recovery) from previously written-off property and equipment<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">663<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">(55<\/td>\n<td style=\"padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">)<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">\u2014<\/td>\n<td style=\"padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">608<\/td>\n<td style=\"padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">(105<\/td>\n<td style=\"padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">)<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: middle;text-align: left;padding-left: 10.0px;vertical-align: bottom\">Tax impact of valuation allowance for deferred tax assets and reconciling items (2)<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;text-align: right;vertical-align: middle;vertical-align: bottom\">375<\/td>\n<td style=\"border-bottom: solid black 1pt;text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">262<\/td>\n<td style=\"border-bottom: solid black 1pt;padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">(2,060<\/td>\n<td style=\"border-bottom: solid black 1pt;padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">)<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">(1,335<\/td>\n<td style=\"border-bottom: solid black 1pt;padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">)<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: solid black 1pt;padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">(2,374<\/td>\n<td style=\"border-bottom: solid black 1pt;padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">)<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">Non-GAAP net income<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">$<\/td>\n<td style=\"border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">9,858<\/td>\n<td style=\"border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">$<\/td>\n<td style=\"border-bottom: double black 3pt;padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">9,923<\/td>\n<td style=\"border-bottom: double black 3pt;padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">$<\/td>\n<td style=\"border-bottom: double black 3pt;padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">5,717<\/td>\n<td style=\"border-bottom: double black 3pt;padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">$<\/td>\n<td style=\"border-bottom: double black 3pt;padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">32,617<\/td>\n<td style=\"border-bottom: double black 3pt;padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">$<\/td>\n<td style=\"border-bottom: double black 3pt;padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">28,470<\/td>\n<td style=\"border-bottom: double black 3pt;padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">GAAP net income per diluted share<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">$<\/td>\n<td style=\"border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">0.01<\/td>\n<td style=\"border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">$<\/td>\n<td style=\"border-bottom: double black 3pt;padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">0.06<\/td>\n<td style=\"border-bottom: double black 3pt;padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">$<\/td>\n<td style=\"border-bottom: double black 3pt;padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">0.02<\/td>\n<td style=\"border-bottom: double black 3pt;padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">$<\/td>\n<td style=\"border-bottom: double black 3pt;padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">0.10<\/td>\n<td style=\"border-bottom: double black 3pt;padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">$<\/td>\n<td style=\"border-bottom: double black 3pt;padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">0.08<\/td>\n<td style=\"border-bottom: double black 3pt;padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">Non-GAAP net income per diluted share<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">$<\/td>\n<td style=\"border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">0.25<\/td>\n<td style=\"border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">$<\/td>\n<td style=\"border-bottom: double black 3pt;padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">0.25<\/td>\n<td style=\"border-bottom: double black 3pt;padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">$<\/td>\n<td style=\"border-bottom: double black 3pt;padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">0.15<\/td>\n<td style=\"border-bottom: double black 3pt;padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">$<\/td>\n<td style=\"border-bottom: double black 3pt;padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">0.84<\/td>\n<td style=\"border-bottom: double black 3pt;padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">$<\/td>\n<td style=\"border-bottom: double black 3pt;padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">0.73<\/td>\n<td style=\"border-bottom: double black 3pt;padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td colspan=\"2\" style=\"text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">Weighted average common shares used in GAAP net income per diluted share calculation<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">39,104<\/td>\n<td style=\"border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">39,105<\/td>\n<td style=\"border-bottom: double black 3pt;padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">38,814<\/td>\n<td style=\"border-bottom: double black 3pt;padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">39,047<\/td>\n<td style=\"border-bottom: double black 3pt;padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">38,937<\/td>\n<td style=\"border-bottom: double black 3pt;padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: bottom\">Weighted average common shares used in non-GAAP net income per diluted share calculation<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">39,104<\/td>\n<td style=\"border-bottom: double black 3pt;text-align: right;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">39,105<\/td>\n<td style=\"border-bottom: double black 3pt;padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">38,814<\/td>\n<td style=\"border-bottom: double black 3pt;padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">39,047<\/td>\n<td style=\"border-bottom: double black 3pt;padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;vertical-align: bottom\">\u00a0<\/td>\n<td style=\"border-bottom: double black 3pt;padding-right: 0;text-align: right;vertical-align: middle;vertical-align: bottom\">38,937<\/td>\n<td style=\"border-bottom: double black 3pt;padding-left: 0;text-align: left;vertical-align: middle;vertical-align: bottom\">\u00a0<\/td>\n<\/tr>\n<\/table>\n<p>\n        \n      <\/p>\n<hr \/>\n<p align=\"justify\">(1) Represents legal costs and expenses related to certain litigation and an arbitration proceeding which are expected to continue until these matters are resolved.<br \/>(2) The difference between the GAAP and non-GAAP income tax provisions is primarily due to the valuation allowance on a GAAP basis and non-GAAP adjustments. For example, on a GAAP basis, the Company does not receive a deferred tax benefit for foreign tax credits or research and development credits after the valuation allowance. The Company\u2019s non-GAAP tax rate and resulting non-GAAP tax expense is not calculated with a full U.S. federal or state valuation allowance due to the Company\u2019s cumulative non-GAAP income and management\u2019s conclusion that it is more likely than not to utilize its net deferred tax assets (DTAs). Each reporting period, management evaluates the need for a valuation allowance and may place a valuation allowance against its U.S. net DTAs on a non-GAAP basis if it concludes it is more likely than not that it will not be able to utilize some or all of its U.S. DTAs on a non-GAAP basis.<\/p>\n<p>      <img decoding=\"async\" alt=\"\" class=\"__GNW8366DE3E__IMG\" src=\"https:\/\/www.globenewswire.com\/newsroom\/ti?nf=OTM1ODQ0MyM2NzUxMDk4IzIwMjA5NjU=\" \/><br \/>\n      <br \/>\n      <img decoding=\"async\" alt=\"\" src=\"https:\/\/ml.globenewswire.com\/media\/ZWUzZjQ0MzItNmQzNC00ZjExLTkzOTAtNDQ3YzQ4M2E2YWU2LTEwMzIwNTk=\/tiny\/PDF-Solutions-Inc-.png\" \/>\n    <\/div>\n<div class=\"mw_contactinfo\"><\/div>\n","protected":false},"excerpt":{"rendered":"<p>SANTA CLARA, Calif., Feb. 13, 2025 (GLOBE NEWSWIRE) &#8212; PDF Solutions, Inc. (Nasdaq: PDFS), a leading provider of comprehensive data solutions for the semiconductor and electronics ecosystem, today announced financial results for its fourth quarter and year ended December 31, 2024. Financial Highlights of Fourth Quarter 2024 Record quarterly total revenues of $50.1 million, up 22% over last year\u2019s comparable quarter Record quarterly analytics revenue of $47.9 million, up 22% over last year\u2019s comparable quarter GAAP gross margin of 68% and non-GAAP gross margin of 72% GAAP diluted earnings per share (EPS) of $0.01 and non-GAAP diluted EPS of $0.25 Financial Highlights of Full Year 2024 Record full year total revenues of $179.5 million, up 8% over last year Record &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/www.marketnewsdesk.com\/index.php\/pdf-solutions-announces-record-2024-fourth-quarter-and-full-year-total-revenues\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;PDF Solutions\u00ae Announces Record 2024 Fourth Quarter and Full Year Total Revenues&#8221;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-813212","post","type-post","status-publish","format-standard","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>PDF Solutions\u00ae Announces Record 2024 Fourth Quarter and Full Year Total Revenues - Market Newsdesk<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.marketnewsdesk.com\/index.php\/pdf-solutions-announces-record-2024-fourth-quarter-and-full-year-total-revenues\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"PDF Solutions\u00ae Announces Record 2024 Fourth Quarter and Full Year Total Revenues - Market Newsdesk\" \/>\n<meta property=\"og:description\" content=\"SANTA CLARA, Calif., Feb. 13, 2025 (GLOBE NEWSWIRE) &#8212; PDF Solutions, Inc. (Nasdaq: PDFS), a leading provider of comprehensive data solutions for the semiconductor and electronics ecosystem, today announced financial results for its fourth quarter and year ended December 31, 2024. Financial Highlights of Fourth Quarter 2024 Record quarterly total revenues of $50.1 million, up 22% over last year\u2019s comparable quarter Record quarterly analytics revenue of $47.9 million, up 22% over last year\u2019s comparable quarter GAAP gross margin of 68% and non-GAAP gross margin of 72% GAAP diluted earnings per share (EPS) of $0.01 and non-GAAP diluted EPS of $0.25 Financial Highlights of Full Year 2024 Record full year total revenues of $179.5 million, up 8% over last year Record &hellip; Continue reading &quot;PDF Solutions\u00ae Announces Record 2024 Fourth Quarter and Full Year Total Revenues&quot;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.marketnewsdesk.com\/index.php\/pdf-solutions-announces-record-2024-fourth-quarter-and-full-year-total-revenues\/\" \/>\n<meta property=\"og:site_name\" content=\"Market Newsdesk\" \/>\n<meta property=\"article:published_time\" content=\"2025-02-13T22:22:31+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.globenewswire.com\/newsroom\/ti?nf=OTM1ODQ0MyM2NzUxMDk4IzIwMjA5NjU=\" \/>\n<meta name=\"author\" content=\"Newsdesk\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Newsdesk\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"12 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.marketnewsdesk.com\\\/index.php\\\/pdf-solutions-announces-record-2024-fourth-quarter-and-full-year-total-revenues\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.marketnewsdesk.com\\\/index.php\\\/pdf-solutions-announces-record-2024-fourth-quarter-and-full-year-total-revenues\\\/\"},\"author\":{\"name\":\"Newsdesk\",\"@id\":\"https:\\\/\\\/www.marketnewsdesk.com\\\/#\\\/schema\\\/person\\\/482f27a394d4fda80ecb5499e519d979\"},\"headline\":\"PDF Solutions\u00ae Announces Record 2024 Fourth Quarter and Full Year Total Revenues\",\"datePublished\":\"2025-02-13T22:22:31+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.marketnewsdesk.com\\\/index.php\\\/pdf-solutions-announces-record-2024-fourth-quarter-and-full-year-total-revenues\\\/\"},\"wordCount\":2388,\"image\":{\"@id\":\"https:\\\/\\\/www.marketnewsdesk.com\\\/index.php\\\/pdf-solutions-announces-record-2024-fourth-quarter-and-full-year-total-revenues\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.globenewswire.com\\\/newsroom\\\/ti?nf=OTM1ODQ0MyM2NzUxMDk4IzIwMjA5NjU=\",\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.marketnewsdesk.com\\\/index.php\\\/pdf-solutions-announces-record-2024-fourth-quarter-and-full-year-total-revenues\\\/\",\"url\":\"https:\\\/\\\/www.marketnewsdesk.com\\\/index.php\\\/pdf-solutions-announces-record-2024-fourth-quarter-and-full-year-total-revenues\\\/\",\"name\":\"PDF Solutions\u00ae Announces Record 2024 Fourth Quarter and Full Year Total Revenues - Market Newsdesk\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.marketnewsdesk.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.marketnewsdesk.com\\\/index.php\\\/pdf-solutions-announces-record-2024-fourth-quarter-and-full-year-total-revenues\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.marketnewsdesk.com\\\/index.php\\\/pdf-solutions-announces-record-2024-fourth-quarter-and-full-year-total-revenues\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.globenewswire.com\\\/newsroom\\\/ti?nf=OTM1ODQ0MyM2NzUxMDk4IzIwMjA5NjU=\",\"datePublished\":\"2025-02-13T22:22:31+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.marketnewsdesk.com\\\/#\\\/schema\\\/person\\\/482f27a394d4fda80ecb5499e519d979\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.marketnewsdesk.com\\\/index.php\\\/pdf-solutions-announces-record-2024-fourth-quarter-and-full-year-total-revenues\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.marketnewsdesk.com\\\/index.php\\\/pdf-solutions-announces-record-2024-fourth-quarter-and-full-year-total-revenues\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.marketnewsdesk.com\\\/index.php\\\/pdf-solutions-announces-record-2024-fourth-quarter-and-full-year-total-revenues\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.globenewswire.com\\\/newsroom\\\/ti?nf=OTM1ODQ0MyM2NzUxMDk4IzIwMjA5NjU=\",\"contentUrl\":\"https:\\\/\\\/www.globenewswire.com\\\/newsroom\\\/ti?nf=OTM1ODQ0MyM2NzUxMDk4IzIwMjA5NjU=\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.marketnewsdesk.com\\\/index.php\\\/pdf-solutions-announces-record-2024-fourth-quarter-and-full-year-total-revenues\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.marketnewsdesk.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"PDF Solutions\u00ae Announces Record 2024 Fourth Quarter and Full Year Total Revenues\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.marketnewsdesk.com\\\/#website\",\"url\":\"https:\\\/\\\/www.marketnewsdesk.com\\\/\",\"name\":\"Market Newsdesk\",\"description\":\"Latest Business News in Real Time\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.marketnewsdesk.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.marketnewsdesk.com\\\/#\\\/schema\\\/person\\\/482f27a394d4fda80ecb5499e519d979\",\"name\":\"Newsdesk\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/a0d0bd5b0f0ca12a265a459b13169dac35f33776d8501eda5e68844a366f2f46?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/a0d0bd5b0f0ca12a265a459b13169dac35f33776d8501eda5e68844a366f2f46?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/a0d0bd5b0f0ca12a265a459b13169dac35f33776d8501eda5e68844a366f2f46?s=96&d=mm&r=g\",\"caption\":\"Newsdesk\"},\"url\":\"https:\\\/\\\/www.marketnewsdesk.com\\\/index.php\\\/author\\\/newsdesk\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"PDF Solutions\u00ae Announces Record 2024 Fourth Quarter and Full Year Total Revenues - Market Newsdesk","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.marketnewsdesk.com\/index.php\/pdf-solutions-announces-record-2024-fourth-quarter-and-full-year-total-revenues\/","og_locale":"en_US","og_type":"article","og_title":"PDF Solutions\u00ae Announces Record 2024 Fourth Quarter and Full Year Total Revenues - Market Newsdesk","og_description":"SANTA CLARA, Calif., Feb. 13, 2025 (GLOBE NEWSWIRE) &#8212; PDF Solutions, Inc. (Nasdaq: PDFS), a leading provider of comprehensive data solutions for the semiconductor and electronics ecosystem, today announced financial results for its fourth quarter and year ended December 31, 2024. Financial Highlights of Fourth Quarter 2024 Record quarterly total revenues of $50.1 million, up 22% over last year\u2019s comparable quarter Record quarterly analytics revenue of $47.9 million, up 22% over last year\u2019s comparable quarter GAAP gross margin of 68% and non-GAAP gross margin of 72% GAAP diluted earnings per share (EPS) of $0.01 and non-GAAP diluted EPS of $0.25 Financial Highlights of Full Year 2024 Record full year total revenues of $179.5 million, up 8% over last year Record &hellip; Continue reading \"PDF Solutions\u00ae Announces Record 2024 Fourth Quarter and Full Year Total Revenues\"","og_url":"https:\/\/www.marketnewsdesk.com\/index.php\/pdf-solutions-announces-record-2024-fourth-quarter-and-full-year-total-revenues\/","og_site_name":"Market Newsdesk","article_published_time":"2025-02-13T22:22:31+00:00","og_image":[{"url":"https:\/\/www.globenewswire.com\/newsroom\/ti?nf=OTM1ODQ0MyM2NzUxMDk4IzIwMjA5NjU=","type":"","width":"","height":""}],"author":"Newsdesk","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Newsdesk","Est. reading time":"12 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.marketnewsdesk.com\/index.php\/pdf-solutions-announces-record-2024-fourth-quarter-and-full-year-total-revenues\/#article","isPartOf":{"@id":"https:\/\/www.marketnewsdesk.com\/index.php\/pdf-solutions-announces-record-2024-fourth-quarter-and-full-year-total-revenues\/"},"author":{"name":"Newsdesk","@id":"https:\/\/www.marketnewsdesk.com\/#\/schema\/person\/482f27a394d4fda80ecb5499e519d979"},"headline":"PDF Solutions\u00ae Announces Record 2024 Fourth Quarter and Full Year Total Revenues","datePublished":"2025-02-13T22:22:31+00:00","mainEntityOfPage":{"@id":"https:\/\/www.marketnewsdesk.com\/index.php\/pdf-solutions-announces-record-2024-fourth-quarter-and-full-year-total-revenues\/"},"wordCount":2388,"image":{"@id":"https:\/\/www.marketnewsdesk.com\/index.php\/pdf-solutions-announces-record-2024-fourth-quarter-and-full-year-total-revenues\/#primaryimage"},"thumbnailUrl":"https:\/\/www.globenewswire.com\/newsroom\/ti?nf=OTM1ODQ0MyM2NzUxMDk4IzIwMjA5NjU=","inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.marketnewsdesk.com\/index.php\/pdf-solutions-announces-record-2024-fourth-quarter-and-full-year-total-revenues\/","url":"https:\/\/www.marketnewsdesk.com\/index.php\/pdf-solutions-announces-record-2024-fourth-quarter-and-full-year-total-revenues\/","name":"PDF Solutions\u00ae Announces Record 2024 Fourth Quarter and Full Year Total Revenues - Market Newsdesk","isPartOf":{"@id":"https:\/\/www.marketnewsdesk.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.marketnewsdesk.com\/index.php\/pdf-solutions-announces-record-2024-fourth-quarter-and-full-year-total-revenues\/#primaryimage"},"image":{"@id":"https:\/\/www.marketnewsdesk.com\/index.php\/pdf-solutions-announces-record-2024-fourth-quarter-and-full-year-total-revenues\/#primaryimage"},"thumbnailUrl":"https:\/\/www.globenewswire.com\/newsroom\/ti?nf=OTM1ODQ0MyM2NzUxMDk4IzIwMjA5NjU=","datePublished":"2025-02-13T22:22:31+00:00","author":{"@id":"https:\/\/www.marketnewsdesk.com\/#\/schema\/person\/482f27a394d4fda80ecb5499e519d979"},"breadcrumb":{"@id":"https:\/\/www.marketnewsdesk.com\/index.php\/pdf-solutions-announces-record-2024-fourth-quarter-and-full-year-total-revenues\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.marketnewsdesk.com\/index.php\/pdf-solutions-announces-record-2024-fourth-quarter-and-full-year-total-revenues\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.marketnewsdesk.com\/index.php\/pdf-solutions-announces-record-2024-fourth-quarter-and-full-year-total-revenues\/#primaryimage","url":"https:\/\/www.globenewswire.com\/newsroom\/ti?nf=OTM1ODQ0MyM2NzUxMDk4IzIwMjA5NjU=","contentUrl":"https:\/\/www.globenewswire.com\/newsroom\/ti?nf=OTM1ODQ0MyM2NzUxMDk4IzIwMjA5NjU="},{"@type":"BreadcrumbList","@id":"https:\/\/www.marketnewsdesk.com\/index.php\/pdf-solutions-announces-record-2024-fourth-quarter-and-full-year-total-revenues\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.marketnewsdesk.com\/"},{"@type":"ListItem","position":2,"name":"PDF Solutions\u00ae Announces Record 2024 Fourth Quarter and Full Year Total Revenues"}]},{"@type":"WebSite","@id":"https:\/\/www.marketnewsdesk.com\/#website","url":"https:\/\/www.marketnewsdesk.com\/","name":"Market Newsdesk","description":"Latest Business News in Real Time","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.marketnewsdesk.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.marketnewsdesk.com\/#\/schema\/person\/482f27a394d4fda80ecb5499e519d979","name":"Newsdesk","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/a0d0bd5b0f0ca12a265a459b13169dac35f33776d8501eda5e68844a366f2f46?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/a0d0bd5b0f0ca12a265a459b13169dac35f33776d8501eda5e68844a366f2f46?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/a0d0bd5b0f0ca12a265a459b13169dac35f33776d8501eda5e68844a366f2f46?s=96&d=mm&r=g","caption":"Newsdesk"},"url":"https:\/\/www.marketnewsdesk.com\/index.php\/author\/newsdesk\/"}]}},"_links":{"self":[{"href":"https:\/\/www.marketnewsdesk.com\/index.php\/wp-json\/wp\/v2\/posts\/813212","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.marketnewsdesk.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.marketnewsdesk.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.marketnewsdesk.com\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.marketnewsdesk.com\/index.php\/wp-json\/wp\/v2\/comments?post=813212"}],"version-history":[{"count":0,"href":"https:\/\/www.marketnewsdesk.com\/index.php\/wp-json\/wp\/v2\/posts\/813212\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.marketnewsdesk.com\/index.php\/wp-json\/wp\/v2\/media?parent=813212"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.marketnewsdesk.com\/index.php\/wp-json\/wp\/v2\/categories?post=813212"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.marketnewsdesk.com\/index.php\/wp-json\/wp\/v2\/tags?post=813212"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}