0001558370-23-018274.txt : 20231108 0001558370-23-018274.hdr.sgml : 20231108 20231108161110 ACCESSION NUMBER: 0001558370-23-018274 CONFORMED SUBMISSION TYPE: 10-Q PUBLIC DOCUMENT COUNT: 72 CONFORMED PERIOD OF REPORT: 20230930 FILED AS OF DATE: 20231108 DATE AS OF CHANGE: 20231108 FILER: COMPANY DATA: COMPANY CONFORMED NAME: PDF SOLUTIONS INC CENTRAL INDEX KEY: 0001120914 STANDARD INDUSTRIAL CLASSIFICATION: SERVICES-PREPACKAGED SOFTWARE [7372] IRS NUMBER: 251701361 STATE OF INCORPORATION: DE FISCAL YEAR END: 1231 FILING VALUES: FORM TYPE: 10-Q SEC ACT: 1934 Act SEC FILE NUMBER: 000-31311 FILM NUMBER: 231387950 BUSINESS ADDRESS: STREET 1: 2858 DE LA CRUZ BOULEVARD CITY: SANTA CLARA STATE: CA ZIP: 95050 BUSINESS PHONE: 4082807900 MAIL ADDRESS: STREET 1: 2858 DE LA CRUZ BOULEVARD CITY: SANTA CLARA STATE: CA ZIP: 95050 10-Q 1 pdfs-20230930x10q.htm 10-Q
0001120914--12-312023Q300P6M0.100.85410001false0001120914us-gaap:AccountsReceivableMember2023-09-300001120914us-gaap:AccountsReceivableMember2022-12-310001120914us-gaap:TreasuryStockCommonMember2023-04-012023-06-300001120914us-gaap:TreasuryStockCommonMember2023-01-012023-03-310001120914us-gaap:TreasuryStockCommonMember2022-07-012022-09-300001120914pdfs:StockRepurchaseProgram2022Member2022-04-112022-04-110001120914pdfs:The2020StockRepurchaseProgramMember2020-06-042020-06-040001120914pdfs:StockRepurchaseProgram2022Member2022-04-110001120914pdfs:The2020StockRepurchaseProgramMember2020-06-040001120914us-gaap:TreasuryStockCommonMember2023-07-012023-09-300001120914us-gaap:TreasuryStockCommonMember2022-04-012022-06-300001120914us-gaap:TreasuryStockCommonMember2022-01-012022-03-310001120914pdfs:CommonStockOutstandingMember2023-04-012023-06-300001120914pdfs:CommonStockOutstandingMember2022-04-012022-06-300001120914pdfs:CommonStockOutstandingMember2023-07-012023-09-300001120914pdfs:CommonStockOutstandingMember2023-01-012023-03-310001120914pdfs:CommonStockOutstandingMember2022-07-012022-09-300001120914pdfs:CommonStockOutstandingMember2022-01-012022-03-310001120914us-gaap:RetainedEarningsMember2023-09-300001120914us-gaap:AdditionalPaidInCapitalMember2023-09-300001120914us-gaap:AccumulatedOtherComprehensiveIncomeMember2023-09-300001120914us-gaap:RetainedEarningsMember2023-06-300001120914us-gaap:AdditionalPaidInCapitalMember2023-06-300001120914us-gaap:AccumulatedOtherComprehensiveIncomeMember2023-06-3000011209142023-06-300001120914us-gaap:RetainedEarningsMember2023-03-310001120914us-gaap:AdditionalPaidInCapitalMember2023-03-310001120914us-gaap:AccumulatedOtherComprehensiveIncomeMember2023-03-3100011209142023-03-310001120914us-gaap:RetainedEarningsMember2022-12-310001120914us-gaap:AdditionalPaidInCapitalMember2022-12-310001120914us-gaap:AccumulatedOtherComprehensiveIncomeMember2022-12-310001120914us-gaap:RetainedEarningsMember2022-09-300001120914us-gaap:AdditionalPaidInCapitalMember2022-09-300001120914us-gaap:AccumulatedOtherComprehensiveIncomeMember2022-09-300001120914us-gaap:RetainedEarningsMember2022-06-300001120914us-gaap:AdditionalPaidInCapitalMember2022-06-300001120914us-gaap:AccumulatedOtherComprehensiveIncomeMember2022-06-3000011209142022-06-300001120914us-gaap:RetainedEarningsMember2022-03-310001120914us-gaap:AdditionalPaidInCapitalMember2022-03-310001120914us-gaap:AccumulatedOtherComprehensiveIncomeMember2022-03-3100011209142022-03-310001120914us-gaap:RetainedEarningsMember2021-12-310001120914us-gaap:AdditionalPaidInCapitalMember2021-12-310001120914us-gaap:AccumulatedOtherComprehensiveIncomeMember2021-12-310001120914us-gaap:TreasuryStockCommonMember2023-09-300001120914pdfs:CommonStockOutstandingMember2023-09-300001120914us-gaap:TreasuryStockCommonMember2023-06-300001120914pdfs:CommonStockOutstandingMember2023-06-300001120914us-gaap:TreasuryStockCommonMember2023-03-310001120914pdfs:CommonStockOutstandingMember2023-03-310001120914us-gaap:TreasuryStockCommonMember2022-12-310001120914pdfs:CommonStockOutstandingMember2022-12-310001120914us-gaap:TreasuryStockCommonMember2022-09-300001120914pdfs:CommonStockOutstandingMember2022-09-300001120914us-gaap:TreasuryStockCommonMember2022-06-300001120914pdfs:CommonStockOutstandingMember2022-06-300001120914us-gaap:TreasuryStockCommonMember2022-03-310001120914pdfs:CommonStockOutstandingMember2022-03-310001120914us-gaap:TreasuryStockCommonMember2021-12-310001120914pdfs:CommonStockOutstandingMember2021-12-310001120914pdfs:OutsideOfThe20112001OrIDSPlansMember2023-09-300001120914pdfs:EmployeeStockPlansMember2022-12-310001120914pdfs:TwentyElevenStockIncentivePlanMember2023-01-012023-09-300001120914pdfs:TwentyElevenStockIncentivePlanMember2022-01-012022-09-300001120914pdfs:SharesPreviouslyIssuedUnderThe2001PlanMember2011-11-162023-06-300001120914pdfs:EmployeeStockPlansMember2023-01-012023-09-300001120914pdfs:EmployeeStockPlansMember2023-09-300001120914pdfs:The2021PurchasePlanMember2021-08-010001120914pdfs:The2010PurchasePlanMember2020-05-170001120914us-gaap:RestrictedStockUnitsRSUMember2022-12-310001120914pdfs:AdvantestAmericaIncMemberpdfs:SoftwareLicenseAndRelatedServicesAgreementMember2022-04-012023-09-300001120914pdfs:IntegratedYieldRampMember2023-07-012023-09-300001120914pdfs:AnalyticsMember2023-07-012023-09-300001120914pdfs:IntegratedYieldRampMember2023-01-012023-09-300001120914pdfs:AnalyticsMember2023-01-012023-09-300001120914pdfs:IntegratedYieldRampMember2022-07-012022-09-300001120914pdfs:AnalyticsMember2022-07-012022-09-300001120914pdfs:IntegratedYieldRampMember2022-01-012022-09-300001120914pdfs:AnalyticsMember2022-01-012022-09-300001120914pdfs:PurchaseObligationsMember2023-09-300001120914us-gaap:SoftwareAndSoftwareDevelopmentCostsMember2023-09-300001120914us-gaap:LeaseholdImprovementsMember2023-09-300001120914us-gaap:FurnitureAndFixturesMember2023-09-300001120914us-gaap:ComputerEquipmentMember2023-09-300001120914pdfs:TestEquipmentMember2023-09-300001120914pdfs:LaboratoryAndTestEquipmentMember2023-09-300001120914pdfs:InProgressDfiSystemAssetsMember2023-09-300001120914pdfs:InProgressCvSystemAndOtherAssetsMember2023-09-300001120914us-gaap:SoftwareAndSoftwareDevelopmentCostsMember2022-12-310001120914us-gaap:LeaseholdImprovementsMember2022-12-310001120914us-gaap:FurnitureAndFixturesMember2022-12-310001120914us-gaap:ComputerEquipmentMember2022-12-310001120914pdfs:TestEquipmentMember2022-12-310001120914pdfs:LaboratoryAndTestEquipmentMember2022-12-310001120914pdfs:InProgressDfiSystemAssetsMember2022-12-310001120914pdfs:InProgressCvSystemAndOtherAssetsMember2022-12-310001120914us-gaap:SeriesOfIndividuallyImmaterialBusinessAcquisitionsMember2023-07-052023-07-050001120914pdfs:CommercialAgreementWithAdvantestMember2022-12-310001120914pdfs:RestOfTheWorldMember2023-09-300001120914country:US2023-09-300001120914pdfs:RestOfTheWorldMember2022-12-310001120914country:US2022-12-310001120914us-gaap:TrademarksAndTradeNamesMember2023-09-300001120914us-gaap:PatentsMember2023-09-300001120914us-gaap:NoncompeteAgreementsMember2023-09-300001120914us-gaap:DevelopedTechnologyRightsMember2023-09-300001120914us-gaap:CustomerRelationshipsMember2023-09-300001120914us-gaap:TrademarksAndTradeNamesMember2022-12-310001120914us-gaap:PatentsMember2022-12-310001120914us-gaap:NoncompeteAgreementsMember2022-12-310001120914us-gaap:DevelopedTechnologyRightsMember2022-12-310001120914us-gaap:CustomerRelationshipsMember2022-12-310001120914us-gaap:RestrictedStockUnitsRSUMember2023-01-012023-09-300001120914us-gaap:RestrictedStockUnitsRSUMember2023-09-300001120914pdfs:DeferredRevenueAndBillingsInExcessOfRecognizedRevenueMember2023-07-012023-09-300001120914pdfs:DeferredRevenueAndBillingsInExcessOfRecognizedRevenueMember2023-01-012023-09-300001120914pdfs:DeferredRevenueAndBillingsInExcessOfRecognizedRevenueMember2022-07-012022-09-300001120914pdfs:DeferredRevenueAndBillingsInExcessOfRecognizedRevenueMember2022-01-012022-09-300001120914us-gaap:OtherNoncurrentLiabilitiesMember2023-09-300001120914us-gaap:OtherNoncurrentLiabilitiesMember2022-12-310001120914us-gaap:NonUsMemberus-gaap:SalesRevenueNetMemberus-gaap:GeographicConcentrationRiskMember2023-07-012023-09-300001120914pdfs:RestOfTheWorldMemberus-gaap:SalesRevenueNetMemberus-gaap:GeographicConcentrationRiskMember2023-07-012023-09-300001120914pdfs:CustomerAMemberus-gaap:SalesRevenueNetMemberus-gaap:CustomerConcentrationRiskMember2023-07-012023-09-300001120914country:USus-gaap:SalesRevenueNetMemberus-gaap:GeographicConcentrationRiskMember2023-07-012023-09-300001120914country:CNus-gaap:SalesRevenueNetMemberus-gaap:GeographicConcentrationRiskMember2023-07-012023-09-300001120914us-gaap:SalesRevenueNetMemberus-gaap:GeographicConcentrationRiskMember2023-07-012023-09-300001120914us-gaap:NonUsMemberus-gaap:SalesRevenueNetMemberus-gaap:GeographicConcentrationRiskMember2023-01-012023-09-300001120914pdfs:RestOfTheWorldMemberus-gaap:SalesRevenueNetMemberus-gaap:GeographicConcentrationRiskMember2023-01-012023-09-300001120914pdfs:CustomerBMemberus-gaap:SalesRevenueNetMemberus-gaap:CustomerConcentrationRiskMember2023-01-012023-09-300001120914pdfs:CustomerAMemberus-gaap:SalesRevenueNetMemberus-gaap:CustomerConcentrationRiskMember2023-01-012023-09-300001120914pdfs:CustomerAMemberus-gaap:AccountsReceivableMemberus-gaap:CustomerConcentrationRiskMember2023-01-012023-09-300001120914country:USus-gaap:SalesRevenueNetMemberus-gaap:GeographicConcentrationRiskMember2023-01-012023-09-300001120914country:CNus-gaap:SalesRevenueNetMemberus-gaap:GeographicConcentrationRiskMember2023-01-012023-09-300001120914us-gaap:SalesRevenueNetMemberus-gaap:GeographicConcentrationRiskMember2023-01-012023-09-300001120914us-gaap:NonUsMemberus-gaap:SalesRevenueNetMemberus-gaap:GeographicConcentrationRiskMember2022-07-012022-09-300001120914pdfs:RestOfTheWorldMemberus-gaap:SalesRevenueNetMemberus-gaap:GeographicConcentrationRiskMember2022-07-012022-09-300001120914pdfs:CustomerBMemberus-gaap:SalesRevenueNetMemberus-gaap:CustomerConcentrationRiskMember2022-07-012022-09-300001120914pdfs:CustomerAMemberus-gaap:SalesRevenueNetMemberus-gaap:CustomerConcentrationRiskMember2022-07-012022-09-300001120914country:USus-gaap:SalesRevenueNetMemberus-gaap:GeographicConcentrationRiskMember2022-07-012022-09-300001120914country:CNus-gaap:SalesRevenueNetMemberus-gaap:GeographicConcentrationRiskMember2022-07-012022-09-300001120914us-gaap:SalesRevenueNetMemberus-gaap:GeographicConcentrationRiskMember2022-07-012022-09-300001120914pdfs:CustomersAccountingFor10PercentOfGrossRevenuesAndReceivablesMemberus-gaap:SalesRevenueNetMemberus-gaap:CustomerConcentrationRiskMember2022-01-012023-09-300001120914pdfs:CustomersAccountingFor10PercentOfGrossRevenuesAndReceivablesMemberus-gaap:AccountsReceivableMemberus-gaap:CustomerConcentrationRiskMember2022-01-012023-09-300001120914pdfs:CustomerCMemberus-gaap:AccountsReceivableMemberus-gaap:CustomerConcentrationRiskMember2022-01-012022-12-310001120914pdfs:CustomerBMemberus-gaap:AccountsReceivableMemberus-gaap:CustomerConcentrationRiskMember2022-01-012022-12-310001120914pdfs:CustomerAMemberus-gaap:AccountsReceivableMemberus-gaap:CustomerConcentrationRiskMember2022-01-012022-12-310001120914us-gaap:NonUsMemberus-gaap:SalesRevenueNetMemberus-gaap:GeographicConcentrationRiskMember2022-01-012022-09-300001120914pdfs:RestOfTheWorldMemberus-gaap:SalesRevenueNetMemberus-gaap:GeographicConcentrationRiskMember2022-01-012022-09-300001120914pdfs:CustomerBMemberus-gaap:SalesRevenueNetMemberus-gaap:CustomerConcentrationRiskMember2022-01-012022-09-300001120914pdfs:CustomerAMemberus-gaap:SalesRevenueNetMemberus-gaap:CustomerConcentrationRiskMember2022-01-012022-09-300001120914country:USus-gaap:SalesRevenueNetMemberus-gaap:GeographicConcentrationRiskMember2022-01-012022-09-300001120914country:CNus-gaap:SalesRevenueNetMemberus-gaap:GeographicConcentrationRiskMember2022-01-012022-09-300001120914us-gaap:SalesRevenueNetMemberus-gaap:GeographicConcentrationRiskMember2022-01-012022-09-300001120914us-gaap:RetainedEarningsMember2023-07-012023-09-300001120914us-gaap:AccumulatedOtherComprehensiveIncomeMember2023-07-012023-09-300001120914us-gaap:RetainedEarningsMember2023-04-012023-06-300001120914us-gaap:AccumulatedOtherComprehensiveIncomeMember2023-04-012023-06-300001120914us-gaap:RetainedEarningsMember2023-01-012023-03-310001120914us-gaap:AccumulatedOtherComprehensiveIncomeMember2023-01-012023-03-310001120914us-gaap:RetainedEarningsMember2022-07-012022-09-300001120914us-gaap:AccumulatedOtherComprehensiveIncomeMember2022-07-012022-09-300001120914us-gaap:RetainedEarningsMember2022-04-012022-06-300001120914us-gaap:AccumulatedOtherComprehensiveIncomeMember2022-04-012022-06-300001120914us-gaap:RetainedEarningsMember2022-01-012022-03-310001120914us-gaap:AccumulatedOtherComprehensiveIncomeMember2022-01-012022-03-310001120914pdfs:The2021PurchasePlanMember2023-09-3000011209142022-09-3000011209142021-12-310001120914us-gaap:MoneyMarketFundsMemberus-gaap:FairValueInputsLevel1Member2023-09-300001120914us-gaap:MoneyMarketFundsMember2023-09-300001120914us-gaap:MoneyMarketFundsMemberus-gaap:FairValueInputsLevel1Member2022-12-310001120914us-gaap:MoneyMarketFundsMember2022-12-310001120914us-gaap:PrepaidExpensesAndOtherCurrentAssetsMember2023-09-300001120914us-gaap:OtherNoncurrentAssetsMember2023-09-300001120914us-gaap:PrepaidExpensesAndOtherCurrentAssetsMember2022-12-310001120914us-gaap:OtherNoncurrentAssetsMember2022-12-310001120914us-gaap:SeriesOfIndividuallyImmaterialBusinessAcquisitionsMemberus-gaap:DevelopedTechnologyRightsMember2023-07-050001120914us-gaap:SeriesOfIndividuallyImmaterialBusinessAcquisitionsMemberus-gaap:CustomerRelationshipsMember2023-07-050001120914us-gaap:SeriesOfIndividuallyImmaterialBusinessAcquisitionsMember2023-07-050001120914us-gaap:USGovernmentCorporationsAndAgenciesSecuritiesMemberus-gaap:FairValueInputsLevel1Member2023-09-300001120914us-gaap:USGovernmentCorporationsAndAgenciesSecuritiesMember2023-09-300001120914us-gaap:USGovernmentCorporationsAndAgenciesSecuritiesMemberus-gaap:FairValueInputsLevel1Member2022-12-310001120914us-gaap:USGovernmentCorporationsAndAgenciesSecuritiesMember2022-12-310001120914us-gaap:RestrictedStockUnitsRSUMember2023-07-012023-09-300001120914us-gaap:EmployeeStockOptionMember2023-07-012023-09-300001120914pdfs:EmployeeStockPurchasePlanMember2023-07-012023-09-300001120914us-gaap:RestrictedStockUnitsRSUMember2023-01-012023-09-300001120914us-gaap:RestrictedStockUnitsRSUMember2022-07-012022-09-300001120914us-gaap:RestrictedStockUnitsRSUMember2022-01-012022-09-300001120914us-gaap:EmployeeStockOptionMember2022-01-012022-09-300001120914pdfs:EmployeeStockPurchasePlanMember2022-01-012022-09-300001120914pdfs:CostsAndExpensesMember2023-07-012023-09-300001120914pdfs:CostsAndExpensesMember2023-01-012023-09-300001120914pdfs:CostsAndExpensesMember2022-07-012022-09-300001120914pdfs:CostsAndExpensesMember2022-01-012022-09-300001120914us-gaap:SellingGeneralAndAdministrativeExpensesMember2023-07-012023-09-300001120914us-gaap:ResearchAndDevelopmentExpenseMember2023-07-012023-09-300001120914us-gaap:ResearchAndDevelopmentExpenseMember2023-01-012023-09-300001120914us-gaap:SellingGeneralAndAdministrativeExpensesMember2022-07-012022-09-300001120914us-gaap:ResearchAndDevelopmentExpenseMember2022-07-012022-09-300001120914us-gaap:SellingGeneralAndAdministrativeExpensesMember2022-01-012022-09-300001120914us-gaap:ResearchAndDevelopmentExpenseMember2022-01-012022-09-300001120914us-gaap:AdditionalPaidInCapitalMember2023-07-012023-09-300001120914us-gaap:AdditionalPaidInCapitalMember2023-04-012023-06-3000011209142023-04-012023-06-300001120914us-gaap:AdditionalPaidInCapitalMember2023-01-012023-03-3100011209142023-01-012023-03-310001120914us-gaap:AdditionalPaidInCapitalMember2022-07-012022-09-300001120914us-gaap:AdditionalPaidInCapitalMember2022-04-012022-06-3000011209142022-04-012022-06-300001120914us-gaap:AdditionalPaidInCapitalMember2022-01-012022-03-3100011209142022-01-012022-03-310001120914us-gaap:OtherNoncurrentAssetsMember2023-09-300001120914us-gaap:OtherNoncurrentAssetsMember2022-12-310001120914pdfs:PurchaseObligationsMember2023-01-012023-09-300001120914pdfs:IndemnificationsMember2023-01-012023-09-300001120914pdfs:TwentyElevenStockIncentivePlanMember2023-09-300001120914srt:MaximumMemberpdfs:SharesPreviouslyIssuedUnderThe2001PlanMember2011-11-160001120914pdfs:TwentyElevenStockIncentivePlanMember2011-11-160001120914us-gaap:EmployeeStockOptionMemberpdfs:TwentyElevenStockIncentivePlanMember2011-11-162011-11-160001120914pdfs:StockRepurchaseProgram2022Member2023-01-012023-09-300001120914pdfs:StockRepurchaseProgram2022Member2022-04-112023-09-300001120914pdfs:The2020StockRepurchaseProgramMember2022-01-012022-09-300001120914pdfs:StockRepurchaseProgram2022Member2022-01-012022-09-300001120914pdfs:The2020StockRepurchaseProgramMember2020-06-042023-09-300001120914us-gaap:TransferredOverTimeMember2023-07-012023-09-300001120914us-gaap:TransferredAtPointInTimeMember2023-07-012023-09-300001120914us-gaap:TransferredOverTimeMember2023-01-012023-09-300001120914us-gaap:TransferredAtPointInTimeMember2023-01-012023-09-300001120914us-gaap:TransferredOverTimeMember2022-07-012022-09-300001120914us-gaap:TransferredAtPointInTimeMember2022-07-012022-09-300001120914us-gaap:TransferredOverTimeMember2022-01-012022-09-300001120914us-gaap:TransferredAtPointInTimeMember2022-01-012022-09-300001120914pdfs:The2021PurchasePlanMember2021-08-012021-08-010001120914pdfs:The2010PurchasePlanMember2001-07-012020-05-170001120914us-gaap:SellingGeneralAndAdministrativeExpensesMember2023-01-012023-09-300001120914us-gaap:SellingGeneralAndAdministrativeExpensesMember2022-01-012022-03-310001120914pdfs:The2021PurchasePlanMember2023-07-012023-09-300001120914pdfs:The2021PurchasePlanMember2023-01-012023-09-300001120914pdfs:The2021PurchasePlanMember2022-07-012022-09-300001120914pdfs:The2021PurchasePlanMember2022-01-012022-09-300001120914pdfs:The2010PurchasePlanMember2022-01-012022-09-300001120914pdfs:The2021PurchasePlanMember2021-06-152021-06-150001120914pdfs:AnalyticsMemberpdfs:CommercialAgreementWithAdvantestMember2023-09-300001120914pdfs:AnalyticsMemberpdfs:CommercialAgreementWithAdvantestMember2022-12-310001120914us-gaap:FairValueInputsLevel1Member2023-09-3000011209142023-09-300001120914us-gaap:FairValueInputsLevel1Member2022-12-3100011209142022-12-310001120914srt:MinimumMemberus-gaap:TrademarksAndTradeNamesMember2023-01-012023-09-300001120914srt:MinimumMemberus-gaap:PatentsMember2023-01-012023-09-300001120914srt:MinimumMemberus-gaap:DevelopedTechnologyRightsMember2023-01-012023-09-300001120914srt:MinimumMemberus-gaap:CustomerRelationshipsMember2023-01-012023-09-300001120914srt:MaximumMemberus-gaap:TrademarksAndTradeNamesMember2023-01-012023-09-300001120914srt:MaximumMemberus-gaap:PatentsMember2023-01-012023-09-300001120914srt:MaximumMemberus-gaap:DevelopedTechnologyRightsMember2023-01-012023-09-300001120914srt:MaximumMemberus-gaap:CustomerRelationshipsMember2023-01-012023-09-300001120914us-gaap:NoncompeteAgreementsMember2023-01-012023-09-300001120914us-gaap:CostOfSalesMember2023-07-012023-09-300001120914us-gaap:CostOfSalesMember2023-01-012023-09-300001120914us-gaap:CostOfSalesMember2022-07-012022-09-300001120914us-gaap:CostOfSalesMember2022-01-012022-09-3000011209142023-07-012023-09-3000011209142022-07-012022-09-300001120914pdfs:AnalyticsMemberpdfs:CommercialAgreementWithAdvantestMember2023-07-012023-09-300001120914pdfs:AnalyticsMemberpdfs:CommercialAgreementWithAdvantestMember2023-01-012023-09-300001120914pdfs:AnalyticsMemberpdfs:CommercialAgreementWithAdvantestMember2022-07-012022-09-300001120914pdfs:AnalyticsMemberpdfs:CommercialAgreementWithAdvantestMember2022-01-012022-09-3000011209142022-01-012022-09-3000011209142023-11-0300011209142023-01-012023-09-30xbrli:sharesiso4217:USDiso4217:USDxbrli:sharespdfs:leasepdfs:itemxbrli:pure

g

UNITED STATES SECURITIES AND EXCHANGE COMMISSION

Washington, D.C. 20549

FORM 10-Q

QUARTERLY REPORT PURSUANT TO SECTION 13 OR 15(d) OF THE SECURITIES EXCHANGE ACT OF 1934 

 

 

For the Quarterly Period ended September 30, 2023

or

TRANSITION REPORT PURSUANT TO SECTION 13 OR 15(d) OF THE SECURITIES EXCHANGE ACT OF 1934 

 

 

 

For the transition period from _______________ to ______________   

Commission File Number 000-31311

PDF SOLUTIONS, INC.

(Exact name of Registrant as Specified in its Charter)

Delaware

25-1701361

(State or Other Jurisdiction of Incorporation or Organization)

(I.R.S. Employer Identification No.)

  

  

2858 De La Cruz Blvd.

  

Santa Clara, California 

95050 

(Address of Principal Executive Offices)

(Zip Code)

(408) 280-7900

(Registrant’s Telephone Number, Including Area Code)

Securities registered pursuant to Section 12(b) of the Act:

Title of each class

Trading Symbol(s)

Name of each exchange on which registered

Common Stock, $0.00015 par value

PDFS

The Nasdaq Stock Market LLC

Indicate by check mark whether the registrant (1) has filed all reports required to be filed by Section 13 or 15(d) of the Securities Act of 1934 during the preceding 12 months (or for such shorter period that the registrant was required to file such reports), and (2) has been subject to such filing requirements for the past 90 days. Yes No

Indicate by check mark whether the registrant has submitted electronically every Interactive Data File required to be submitted pursuant to Rule 405 of Regulation S-T (§232.405 of this chapter) during the preceding 12 months (or for such shorter period that the registrant was required to submit such files). Yes  No  

Indicate by check mark whether the registrant is a large accelerated filer, an accelerated filer, a non-accelerated filer, a smaller reporting company, or an emerging growth company. See the definitions of “large accelerated filer,” “accelerated filer,” “smaller reporting company” and “emerging growth company” in Rule 12b-2 of the Exchange Act.

Large accelerated filer 

Accelerated filer 

Non-accelerated filer

Smaller reporting company 

 

Emerging growth company 

If an emerging growth company, indicate by check mark if the registrant has elected not to use the extended transition period for complying with any new or revised financial accounting standards provided pursuant to Section 13(a) of the Exchange Act.

Indicate by check mark whether the registrant is a shell company (as defined in Rule 12b-2 of the Exchange Act). Yes No

There were 38,261,403 shares of the Registrant’s Common Stock outstanding as of November 3, 2023.

TABLE OF CONTENTS

 

    

Page

PART I   FINANCIAL INFORMATION

Item 1. Financial Statements (Unaudited)

Condensed Consolidated Balance Sheets

3

Condensed Consolidated Statements of Comprehensive Income (Loss)

4

Condensed Consolidated Statements of Stockholders’ Equity

5

Condensed Consolidated Statements of Cash Flows

7

Notes to Condensed Consolidated Financial Statements

8

Item 2. Management’s Discussion and Analysis of Financial Condition and Results of Operations

26

Item 3. Quantitative and Qualitative Disclosures About Market Risk

39

Item 4. Controls and Procedures

39

PART II  OTHER INFORMATION

Item 1. Legal Proceedings

40

Item 1A. Risk Factors

40

Item 2. Unregistered Sales of Equity Securities and Use of Proceeds

40

Item 3. Defaults Upon Senior Securities

41

Item 4. Mine Safety Disclosures

41

Item 5. Other Information

41

Item 6. Exhibits

41

INDEX TO EXHIBITS

41

SIGNATURES

42

2

PART I — FINANCIAL INFORMATION

Item 1. Financial Statements

PDF SOLUTIONS, INC.

CONDENSED CONSOLIDATED BALANCE SHEETS

(Unaudited)

(in thousands, except par value)

September 30, 

December 31, 

    

2023

    

2022

ASSETS

 

  

 

  

Current assets:

 

  

 

  

Cash and cash equivalents

$

111,620

$

119,624

Short-term investments

 

23,744

 

19,557

Accounts receivable, net of allowance for credit losses of $890 as of September 30, 2023 and December 31, 2022

 

40,959

 

42,164

Prepaid expenses and other current assets

 

18,001

 

12,063

Total current assets

 

194,324

 

193,408

Property and equipment, net

 

37,833

 

40,174

Operating lease right-of-use assets, net

 

5,069

 

6,002

Goodwill

 

15,008

 

14,123

Intangible assets, net

 

16,486

 

18,055

Deferred tax assets, net

 

32

 

64

Other non-current assets

 

13,701

 

6,845

Total assets

$

282,453

$

278,671

LIABILITIES AND STOCKHOLDERS’ EQUITY

 

  

 

  

Current liabilities:

 

  

 

  

Accounts payable

$

2,633

$

6,388

Accrued compensation and related benefits

 

11,502

 

16,948

Accrued and other current liabilities

 

4,772

 

5,581

Operating lease liabilities – current portion

 

1,504

 

1,412

Deferred revenues – current portion

 

29,267

 

26,019

Billings in excess of recognized revenues

 

240

 

1,852

Total current liabilities

 

49,918

 

58,200

Long-term income taxes payable

 

2,820

 

2,622

Non-current portion of operating lease liabilities

 

4,922

 

5,932

Other non-current liabilities

 

3,229

 

1,905

Total liabilities

 

60,889

 

68,659

Commitments and contingencies (Note 11)

 

  

 

  

Stockholders’ equity:

 

  

 

  

Preferred stock, $0.00015 par value, 5,000 shares authorized, no shares issued and outstanding

Common stock, $0.00015 par value, 70,000 shares authorized; shares issued 49,694 and 48,613, respectively; shares outstanding 38,245 and 37,431, respectively

 

6

 

6

Additional paid-in-capital

 

467,304

 

447,415

Treasury stock at cost, 11,449 and 11,182 shares, respectively

 

(143,587)

 

(133,709)

Accumulated deficit

 

(98,932)

 

(101,150)

Accumulated other comprehensive loss

 

(3,227)

 

(2,550)

Total stockholders’ equity

 

221,564

 

210,012

Total liabilities and stockholders’ equity

$

282,453

$

278,671

See accompanying Notes to Condensed Consolidated Financial Statements (Unaudited)

3

PDF SOLUTIONS, INC.

CONDENSED CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME (LOSS)

(Unaudited)

(in thousands, except per share amounts)

Three Months Ended September 30, 

Nine Months Ended September 30, 

    

2023

   

2022

    

2023

  

2022

Revenues:

 

  

 

  

 

  

 

  

Analytics

$

39,497

$

32,879

$

112,957

$

94,422

Integrated Yield Ramp

 

2,853

 

6,981

 

11,753

 

13,604

Total revenues

 

42,350

 

39,860

 

124,710

 

108,026

Costs and Expenses:

 

  

 

  

 

  

 

  

Costs of revenues

 

14,282

 

12,545

 

38,555

 

36,116

Research and development

 

13,113

 

14,303

 

38,428

 

41,766

Selling, general, and administrative

 

15,611

 

12,005

 

46,022

 

32,614

Amortization of acquired intangible assets

 

328

 

318

 

979

 

946

Interest and other expense (income), net

 

(2,018)

 

(1,511)

 

(4,000)

 

(2,812)

Income (loss) before income tax expense

 

1,034

 

2,200

 

4,726

 

(604)

Income tax expense

 

(6,006)

 

(815)

 

(2,508)

 

(3,308)

Net income (loss)

(4,972)

1,385

2,218

(3,912)

Other comprehensive income (loss):

 

  

 

 

Foreign currency translation adjustments, net of tax

(552)

(1,394)

(679)

(2,828)

Change in unrealized gain (loss) related to available-for-sale debt securities, net of tax

 

(5)

 

17

 

2

 

(17)

Total other comprehensive loss

(557)

(1,377)

(677)

(2,845)

Comprehensive income (loss)

$

(5,529)

$

8

$

1,541

$

(6,757)

Net income (loss) per share:

Basic

$

(0.13)

$

0.04

$

0.06

$

(0.10)

Diluted

$

(0.13)

$

0.04

$

0.06

$

(0.10)

Weighted average common shares used to calculate net income (loss) per share:

 

Basic

 

38,187

 

37,226

 

37,930

 

37,285

Diluted

 

38,187

 

38,054

 

38,977

 

37,285

See accompanying Notes to Condensed Consolidated Financial Statements (Unaudited)

4

PDF SOLUTIONS, INC.

CONDENSED CONSOLIDATED STATEMENTS OF STOCKHOLDERS’ EQUITY

(Unaudited)

(in thousands)

Three Month Periods in the Nine Months Ended September 30, 2023

Accumulated

Additional

Other

Total

Common Stock

Paid-In

Treasury Stock

Accumulated

Comprehensive

Stockholders’

    

Shares

    

Amount

    

Capital

    

Shares

    

Amount

    

Deficit

    

Loss

    

Equity

Balances, December 31, 2022

37,431

$

6

$

447,415

11,182

$

(133,709)

$

(101,150)

$

(2,550)

$

210,012

Issuance of common stock in connection with employee stock purchase plans

 

98

 

 

1,663

 

 

 

 

 

1,663

Issuance of common stock in connection with exercise of options

 

21

 

 

345

 

 

 

 

 

345

Vesting of restricted stock units

 

286

 

 

 

 

 

 

 

Purchases of treasury stock in connection with tax withholdings on restricted stock awards

 

 

 

 

133

 

(4,101)

 

 

 

(4,101)

Stock-based compensation expense

 

 

 

4,884

 

 

 

 

 

4,884

Comprehensive income

 

 

 

355

 

267

 

622

Balances, March 31, 2023

 

37,836

6

454,307

 

11,315

(137,810)

(100,795)

(2,283)

213,425

Issuance of common stock in connection with exercise of options

 

6

 

 

87

 

 

 

 

 

87

Vesting of restricted stock units

 

37

 

 

 

 

 

 

 

Purchases of treasury stock in connection with tax withholdings on restricted stock awards

 

 

 

 

11

 

(468)

 

 

 

(468)

Stock-based compensation expense

 

 

 

4,678

 

 

 

 

 

4,678

Comprehensive income (loss)

 

 

 

 

 

 

6,835

 

(387)

 

6,448

Balances, June 30, 2023

 

37,879

6

459,072

 

11,326

(138,278)

(93,960)

(2,670)

224,170

Issuance of common stock in connection with employee stock purchase plan

 

125

 

 

2,169

 

 

 

 

 

2,169

Issuance of common stock in connection with exercise of options

 

2

 

 

37

 

 

 

 

 

37

Vesting of restricted stock units

 

260

 

 

 

 

 

 

 

Purchases of treasury stock in connection with tax withholdings on restricted stock grants

 

 

 

 

102

 

(4,566)

 

 

 

(4,566)

Repurchase of common stock

(21)

21

(743)

(743)

Stock-based compensation expense

 

 

 

6,026

 

 

 

 

 

6,026

Comprehensive loss

 

 

 

 

 

 

(4,972)

 

(557)

 

(5,529)

Balances, September 30, 2023

 

38,245

$

6

$

467,304

 

11,449

$

(143,587)

$

(98,932)

$

(3,227)

$

221,564

See accompanying Notes to Condensed Consolidated Financial Statements (Unaudited)

5

PDF SOLUTIONS, INC.

CONDENSED CONSOLIDATED STATEMENTS OF STOCKHOLDERS’ EQUITY – CONTINUED

(Unaudited)

(in thousands)

Three Month Periods in the Nine Months Ended September 30, 2022

Accumulated

Additional

Other

Total

Common Stock

Paid-In

Treasury Stock

Accumulated

Comprehensive

Stockholders’

    

Shares

    

Amount

    

Capital

    

Shares

    

Amount

    

Deficit

    

Loss

    

Equity

Balances, December 31, 2021

37,411

$

6

$

423,069

10,003

$

(104,705)

$

(97,721)

$

(1,064)

$

219,585

Issuance of common stock in connection with employee stock purchase plans

 

95

 

 

1,502

 

 

 

 

 

1,502

Issuance of common stock in connection with exercise of options

 

75

 

 

675

 

 

 

 

 

675

Vesting of restricted stock units

 

232

 

 

 

 

 

 

 

Purchases of treasury stock in connection with tax withholdings on restricted stock awards

 

 

 

 

113

 

(3,389)

 

 

 

(3,389)

Repurchase of common stock

(219)

219

(5,778)

(5,778)

Stock-based compensation expense

 

 

 

5,553

 

 

 

 

 

5,553

Comprehensive loss

 

 

 

 

 

 

(4,150)

 

(431)

 

(4,581)

Balances, March 31, 2022

 

37,594

6

430,799

 

10,335

(113,872)

(101,871)

(1,495)

213,567

Issuance of common stock in connection with exercise of options

 

12

 

 

113

 

 

 

 

 

113

Vesting of restricted stock units

 

84

 

 

 

 

 

 

 

Purchases of treasury stock in connection with tax withholdings on restricted stock awards

 

 

 

 

33

 

(800)

 

 

 

(800)

Repurchase of common stock

(715)

715

(16,693)

(16,693)

Stock-based compensation expense

 

 

 

3,872

 

 

 

 

 

3,872

Comprehensive loss

 

 

 

 

 

 

(1,147)

 

(1,037)

 

(2,184)

Balances, June 30, 2022

 

36,975

6

434,784

11,083

(131,365)

(103,018)

(2,532)

197,875

Issuance of common stock in connection with employee stock purchase plan

 

92

 

 

1,509

 

 

 

 

 

1,509

Issuance of common stock in connection with exercise of options

22

 

276

 

 

 

 

 

276

Vesting of restricted stock units

 

206

 

 

 

 

 

 

 

Purchases of treasury stock in connection with tax withholdings on restricted stock grants

 

 

 

 

70

 

(1,601)

 

 

 

(1,601)

Stock-based compensation expense

 

 

 

5,136

 

 

 

 

 

5,136

Comprehensive income (loss)

 

 

 

 

 

 

1,385

 

(1,377)

 

8

Balances, September 30, 2022

 

37,295

$

6

$

441,705

 

11,153

$

(132,966)

$

(101,633)

$

(3,909)

$

203,203

See accompanying Notes to Condensed Consolidated Financial Statements (Unaudited)

6

PDF SOLUTIONS, INC.

CONDENSED CONSOLIDATED STATEMENTS OF CASH FLOWS

(Unaudited)

(in thousands)

Nine Months Ended September 30, 

    

2023

    

2022

Cash flows from operating activities:

Net income (loss)

$

2,218

$

(3,912)

Adjustments to reconcile net income (loss) to net cash provided by operating activities:

 

 

  

Depreciation and amortization

 

3,778

 

4,173

Stock-based compensation expense

 

15,561

 

14,561

Amortization of acquired intangible assets

 

2,659

 

2,605

Amortization of costs capitalized to obtain revenue contracts

 

1,494

 

1,127

Net accretion of discounts on short-term investments

(734)

(41)

Deferred taxes

 

43

 

46

Other

 

(106)

 

Changes in operating assets and liabilities:

 

 

Accounts receivable

 

1,185

 

(14,999)

Prepaid expenses and other current assets

 

(7,038)

 

(2,750)

Operating lease right-of-use assets

 

904

 

1,510

Other non-current assets

 

(928)

 

1,479

Accounts payable

 

(2,697)

 

(2,852)

Accrued compensation and related benefits

 

(5,342)

 

3,624

Accrued and other liabilities

 

393

 

2,560

Deferred revenues

 

3,681

 

2,322

Billings in excess of recognized revenues

 

(1,612)

 

183

Operating lease liabilities

 

(888)

 

(1,613)

Net cash provided by operating activities

 

12,571

 

8,023

Cash flows from investing activities:

Proceeds from maturities and sales of short-term investments

 

28,800

 

136,000

Purchases of short-term investments

(32,250)

(45,791)

Proceeds from sale of property and equipment

105

Purchases of property and equipment

(8,574)

(6,651)

Prepayment for the purchase of property and equipment

(343)

(54)

Purchases of intangible assets

(150)

(150)

Payment for business acquisition, net of cash acquired

(1,823)

Net cash provided by (used in) investing activities

 

(14,235)

 

83,354

Cash flows from financing activities:

 

 

  

Proceeds from exercise of stock options

 

469

 

1,064

Proceeds from employee stock purchase plans

 

3,832

 

3,011

Payments for taxes related to net share settlement of equity awards

 

(9,135)

 

(5,790)

Repurchases of common stock

 

(743)

 

(22,471)

Net cash used in financing activities

 

(5,577)

 

(24,186)

Effect of exchange rate changes on cash and cash equivalents

 

(763)

 

(1,147)

Net change in cash and cash equivalents

 

(8,004)

 

66,044

Cash and cash equivalents at beginning of period

 

119,624

 

27,684

Cash and cash equivalents at end of period

$

111,620

$

93,728

Supplemental disclosure of cash flow information:

Cash paid during the period for taxes

$

3,568

$

2,001

Cash paid for amounts included in the measurement of operating lease liabilities

$

1,160

$

1,219

Supplemental disclosure of noncash information:

Property and equipment received and accrued in accounts payable and accrued and other liabilities

$

697

$

2,200

Advances for purchase of fixed assets transferred from prepaid assets to property and equipment

$

66

$

336

Operating lease liabilities arising from obtaining right-of-use assets

$

$

2,268

Property and equipment transferred to sales-type leases

$

6,002

$

See accompanying Notes to Condensed Consolidated Financial Statements (Unaudited)

7

PDF SOLUTIONS, INC.

NOTES TO CONDENSED CONSOLIDATED FINANCIAL STATEMENTS (UNAUDITED)

1. BASIS OF PRESENTATION AND SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES

Basis of Presentation

The interim unaudited condensed consolidated financial statements included herein have been prepared by PDF Solutions, Inc. (the “Company”) pursuant to the rules and regulations of the Securities and Exchange Commission (“SEC”), including the instructions to the Quarterly Report on Form 10-Q and Article 10 of Regulation S-X. Certain information and footnote disclosures normally included in annual financial statements prepared in accordance with accounting principles generally accepted in the United States of America have been condensed or omitted. The interim unaudited condensed consolidated financial statements reflect, in the opinion of management, all adjustments necessary (consisting only of normal recurring adjustments) to present a fair statement of results for the interim periods presented. The operating results for any interim period are not necessarily indicative of the results that may be expected for other interim periods or the full fiscal year. The accompanying interim unaudited condensed consolidated financial statements should be read in conjunction with the audited consolidated financial statements and notes thereto in the Company’s Annual Report on Form 10-K for the year ended December 31, 2022, filed with the SEC on March 1, 2023.

The interim unaudited condensed consolidated financial statements include the accounts of the Company and its wholly-owned subsidiaries after the elimination of all intercompany balances and transactions.

The accompanying interim unaudited condensed consolidated balance sheet as of December 31, 2022 has been derived from the audited consolidated financial statements but does not include all disclosures required by accounting principles generally accepted in the United States of America.

Use of Estimates

The preparation of financial statements in conformity with accounting principles generally accepted in the United States of America requires management to make estimates and assumptions that affect the reported amounts of assets and liabilities, the disclosure of contingent assets and liabilities at the date of the financial statements and the reported amounts of revenues and expenses during the reporting period. Significant estimates in these condensed consolidated financial statements include revenue recognition, the estimated useful lives of property and equipment and intangible assets, assumptions made in analysis of allowance for credit losses, impairment of goodwill and long-lived assets, valuation for deferred tax assets (“DTAs”), and accounting for lease obligations, stock-based compensation expense, and income tax uncertainties and contingencies. Actual results could differ from those estimates and may result in material effects on the Company’s operating results and financial position.

Recent Accounting Standards

Accounting Standards Adopted

In June 2016, the Financial Accounting Standards Board (“FASB’) issued Accounting Standards Update (“ASU”) No. 2016-13, Financial Instruments – Credit Losses (Topic 326): Measurement of Credit Losses on Financial Instruments (“ASU No. 2016-13”), which requires measurement and recognition of expected credit losses for financial assets held at the reporting date based on internal information, external information, or a combination of both relating to past events, current conditions, and reasonable and supportable forecasts. ASU No. 2016-13 replaces the existing incurred loss impairment model with a forward-looking expected credit loss model, which will result in earlier recognition of credit losses. Subsequent to the issuance of ASU No. 2016-13, the FASB issued ASU No. 2018-19, Codification Improvements to Topic 326, Financial Instruments – Credit Losses, ASU No. 2019-04, Codification Improvements to Topic 326, Financial Instruments – Credit Losses, Topic 815, Derivatives and Hedging, and Topic 825, Financial Instrument, ASU No. 2019-05, Financial Instruments – Credit Losses (Topic 326) Targeted Transition Relief, ASU No. 2016-13, ASU No. 2019-10 Financial Instruments-Credit Losses (Topic 326), Derivatives and Hedging (Topic 815), and Leases (Topic 842), and ASU No. 2019-11 Codification Improvements to Topic 326, Financial Instruments-Credit Losses. The subsequent ASUs do not change the core principle of the guidance in

8

ASU No. 2016-13. Instead, these amendments are intended to clarify and improve operability of certain topics included within ASU No. 2016-13.

The Company adopted this standard on January 1, 2023, using a modified retrospective approach, which requires a cumulative-effect adjustment to retained earnings as of the beginning of the period of adoption with prior periods not restated. The adoption of ASU No. 2016-13 did not have a material impact on the Company’s condensed consolidated financial statements.

Accounting Standards Not Yet Adopted

Management has reviewed other recently issued accounting pronouncements issued or proposed by the FASB, and does not believe any of these accounting pronouncements has had or will have a material impact on the condensed consolidated financial statements.

2. REVENUE FROM CONTRACTS WITH CUSTOMERS

The Company derives revenue from two sources: Analytics revenue and Integrated Yield Ramp revenue.

The Company recognizes revenue in accordance with FASB Accounting Standards Codification (“ASC”) Topic 606, Revenue from Contracts with Customers, and its related amendments (collectively known as “ASC 606”). ASC 606 outlines a single comprehensive model to use in accounting for revenue arising from contracts with customers. Revenue is recognized when control of products or services is transferred to customers, in an amount that reflects the consideration the Company expects to be entitled to in exchange for those promised products or services.

The Company determines revenue recognition through the following five steps:

Identification of the contract, or contracts, with a customer
Identification of the performance obligations in the contract
Determination of the transaction price
Allocation of the transaction price to the performance obligations in the contract
Recognition of revenue when, or as, performance obligations are satisfied

The Company accounts for a contract when it has approval and commitment from both parties, the rights of the parties are identified, payment terms are identified, the contract has commercial substance, and collectibility of consideration is probable.

Contracts with multiple performance obligations

The Company enters into contracts that can include various combinations of licenses, products and services, some of which are distinct and are accounted for as separate performance obligations. For contracts with multiple performance obligations, the Company allocates the transaction price of the contract to each performance obligation on a relative basis using the standalone selling price (“SSP”).

Analytics Revenue

Analytics revenue is derived from the following primary offerings: licenses and services for standalone software (which is primarily Exensio® and Cimetrix® products), software-as-a-service (“SaaS”) (which is primarily Exensio® products), and Design-for-Inspection™ (“DFI™”) systems and Characterization Vehicle® (“CV®”) systems that do not include performance incentives based on customers’ yield achievement.

Revenue from standalone software is recognized depending on whether the license is perpetual or time-based. Perpetual (one-time charge) license software is recognized at the time of the inception of the arrangement when control transfers to the customers if the software license is considered as a separate performance obligation from the services offered by the Company.

9

Revenue from post-contract support is recognized over the contract term on a straight-line basis, because the Company is providing (i) support and (ii) unspecified software updates on a when-and-if available basis over the contract term. Revenue from time-based-licensed software is allocated to each performance obligation and is recognized either at a point in time or over time as follows. The license component is recognized at the time when control transfers to customers, with the post-contract support component recognized ratably over the committed term of the contract. For contracts with any combination of licenses, support, and other services, distinct performance obligations are accounted for separately. For contracts with multiple performance obligations, the Company allocates the transaction price of the contract to each performance obligation on a relative basis using the SSP attributed to each performance obligation.

Revenue from SaaS arrangements, which allow for the use of a cloud-based software product or service over a contractually determined period of time without the customer having to take possession of software, is accounted for as a subscription and is recognized as revenue ratably, on a straight-line basis, over the subscription period beginning on the date the service is first made available to customers. For contracts with any combination of SaaS and related services, distinct performance obligations are accounted for separately. For contracts with multiple performance obligations, the Company allocates the transaction price of the contract to each performance obligation on a relative basis using the SSP attributed to each performance obligation.

Revenue from DFI systems and CV systems (including Characterization services) that do not include performance incentives based on customers’ yield achievement is recognized primarily as services are performed. Where there are distinct performance obligations, the Company allocates revenue to all deliverables based on their SSPs. For those contracts with multiple performance obligations, the Company allocates the transaction price of the contract to each performance obligation on a relative basis using the SSP attributed to each performance obligation. Where there are not discrete performance obligations, historically, revenue is primarily recognized as services are performed using a percentage of completion method based on costs or labor-hours inputs, whichever is the most appropriate measure of the progress towards completion of the contract. The estimation of percentage of completion method is complex and subject to many variables that require significant judgment. Please refer to the “Significant Judgments” section of this Note for further discussion.

Integrated Yield Ramp Revenue

Integrated Yield Ramp revenue is derived from the Company’s fixed-fee engagements that include performance incentives based on customers’ yield achievement (which consists primarily of Gainshare royalties) typically based on customer’s wafer shipments, pertaining to these fixed-price contracts, which royalties are variable.

Revenue under these project-based contracts, which are delivered over a specific period of time, typically for a fixed fee component paid on a set schedule, is recognized as services are performed using a percentage of completion method based on costs or labor-hours inputs, whichever is the most appropriate measure of the progress towards completion of the contract. Where there are distinct performance obligations, the Company allocates revenue to all deliverables based on their SSPs and allocates the transaction price of the contract to each performance obligation on a relative basis using SSP. Similar to the services provided in connection with DFI systems and CV systems that are contributing to Analytics revenue, due to the nature of the work performed in these arrangements, the estimation of percentage of completion method is complex and subject to many variables that require significant judgment. Please refer to the “Significant Judgments” section of this Note for further discussion.

The Gainshare contained in Integrated Yield Ramp contracts is a variable fee related to continued usage of the Company’s intellectual property after the fixed-fee service period ends, based on a customer’s yield achievement. Revenue derived from Gainshare is contingent upon the Company’s customers reaching certain defined production yield levels. Gainshare periods are generally subsequent to the delivery of all contractual services and performance obligations. The Company records Gainshare as a usage-based royalty derived from customers’ usage of intellectual property and records it in the same period in which the usage occurs.

10

Disaggregation of Revenue

The Company disaggregates revenue from contracts with customers into the timing of the transfer of goods and services and the geographical regions. The Company determined that disaggregating revenue into these categories achieves the disclosure objective to depict how the nature, amount, timing, and uncertainty of revenue and cash flows are affected by economic factors.

The Company’s performance obligations are satisfied either over time or at a point-in-time. The following table represents a disaggregation of revenue percentage by timing of revenue:

Three Months Ended September 30, 

 

Nine Months Ended September 30, 

    

2023

    

2022

2023

    

2022

Over time

68

%  

68

%

74

%  

70

%

Point-in-time

 

32

%  

32

%

26

%  

30

%

Total

 

100

%  

100

%

100

%  

100

%

International revenues accounted for approximately 42% and 54% of the Company’s total revenues during the three months ended September 30, 2023 and 2022, respectively. International revenues accounted for approximately 44% and 51% of the Company’s total revenues during the nine months ended September 30, 2023 and 2022, respectively. See Note 9, Customer and Geographic Information.

Significant Judgments

Judgments and estimates are required under ASC 606. Due to the complexity of certain contracts, the actual revenue recognition treatment required under ASC 606 for the Company’s arrangements may be dependent on contract-specific terms and may vary in some instances.

For revenue under project-based contracts for fixed-price implementation services, revenue is recognized as services are performed using a percentage-of-completion method based on costs or labor-hours input method, whichever is the most appropriate measure of the progress towards completion of the contract. Due to the nature of the work performed in these arrangements, the estimation of percentage of completion method is complex, subject to many variables and requires significant judgment. Key factors reviewed by the Company to estimate costs to complete each contract are future labor and product costs and expected productivity efficiencies. If circumstances arise that change the original estimates of revenues, costs, or extent of progress toward completion, revisions to the estimates are made. These revisions may result in increases or decreases in estimated revenues or costs, and such revisions are reflected in revenue on a cumulative catch-up basis in the period in which the circumstances that gave rise to the revision become known.

The Company’s contracts with customers often include promises to transfer products, software licenses and provide services, including professional services, technical support services, and rights to unspecified updates to a customer. Determining whether licenses and services are distinct performance obligations that should be accounted for separately, or not distinct and thus accounted for together, requires significant judgment. The Company rarely licenses software on a standalone basis, so the Company is required to estimate the range of SSPs for each performance obligation. In instances where SSP is not directly observable because the Company does not license the software or sell the service separately, the Company determines the SSP using information that may include market conditions and other observable inputs.

The Company is required to record Gainshare revenue in the same period in which the usage occurs. Because the Company generally does not receive the acknowledgment reports from its customers during a given quarter within the time frame necessary to adequately review the reports and include the actual amounts in quarterly results for such quarter, the Company accrues the related revenue based on estimates of customers underlying sales achievement. The Company’s estimation process can be based on historical data, trends, seasonality, changes in the contract rate, knowledge of the changes in the industry and changes in the customer’s manufacturing environment learned through discussions with customers and sales personnel. As a result of accruing revenue for the quarter based on such estimates, adjustments will be required in the following quarter to true-up revenue to the actual amounts reported.

11

Contract Balances

The Company performs its obligations under a contract with a customer by licensing software or providing services in exchange for consideration from the customer. The timing of the Company’s performance often differs from the timing of the customer’s payment, which results in the recognition of a receivable, a contract asset or a contract liability.

The Company classifies the right to consideration in exchange for software or services transferred to a customer as either a receivable or a contract asset. A receivable is a right to consideration that is unconditional, as compared to a contract asset, which is a right to consideration that is conditional upon factors other than the passage of time. The majority of the Company’s contract assets represent unbilled amounts related to fixed-price service contracts when the revenue recognized exceeds the amount billed to the customer. The contract assets are generally classified as current and are recorded on a net basis with deferred revenue (i.e., contract liabilities) at the contract level. As of September 30, 2023 and December 31, 2022, the total contract assets included in prepaid expenses and other current assets in the accompanying condensed consolidated balance sheets were $8.1 million and $3.3 million, respectively. The Company did not record any asset impairment charges related to contract assets for the periods presented.

Deferred revenues and billings in excess of recognized revenues consist substantially of amounts invoiced in advance of revenue recognition and are recognized as the revenue recognition criteria are met. Deferred revenues that will be recognized during the succeeding twelve-month period are recorded as current deferred revenues and the remaining portion is recorded in other non-current liabilities in the accompanying condensed consolidated balance sheets. As of September 30, 2023, and December 31, 2022, the non-current portion of deferred revenues included in non-current liabilities was $2.3 million and $1.9 million, respectively. Revenue recognized that was included in the deferred revenues and billings in excess of recognized revenues balances at the beginning of each reporting period was $13.1 million and $10.6 million during the three months ended September 30, 2023 and 2022, respectively, and $23.8 million and $16.3 million during the nine months ended September 30, 2023 and 2022, respectively.

As of September 30, 2023, the aggregate amount of the transaction price allocated to the remaining performance obligations related to customer contracts that were unsatisfied or partially unsatisfied was approximately $218.3 million. Given the applicable contract terms with customers, more than half of this amount is expected to be recognized as revenue over the next two years with the remainder to be recognized thereafter. This amount does not include insignificant contracts to which the customer is not committed, nor significant contracts for which the Company recognizes revenue equal to the amount the Company has the right to invoice for services performed, or future sales-based or usage-based royalty payments in exchange for a license of intellectual property. This amount is subject to change due to future revaluations of variable consideration, terminations, other contract modifications, or currency adjustments. The estimated timing of the recognition of remaining unsatisfied performance obligations is subject to change and is affected by changes to the scope, change in timing of delivery of products and services, or contract modifications.

The adjustment to revenue recognized from performance obligations satisfied (or partially satisfied) in previous periods was a decrease of $0.6 million and an increase of $1.9 million during the three months ended September 30, 2023 and 2022, respectively, and an increase of $4.3 million and an increase of $0.4 million during the nine months ended September 30, 2023 and 2022, respectively. These amounts primarily represent changes in estimated percentage-of-completion based contracts and changes in actual versus estimated Gainshare.

12

Costs to obtain or fulfill a contract

The Company capitalizes the incremental costs to obtain or fulfill a contract with a customer, including direct sales commissions and related fees, when it expects to recover those costs. Amortization expense related to these capitalized costs is recognized over the period associated with the revenue from which the cost was incurred. Total capitalized direct sales commission costs included in prepaid expenses and other current assets in the accompanying condensed consolidated balance sheets as of September 30, 2023, and December 31, 2022, were $2.0 million and $1.7 million, respectively. Total capitalized direct sales commission costs included in other non-current assets in the accompanying condensed consolidated balance sheets as of September 30, 2023, and December 31, 2022, were $2.5 million and $2.1 million, respectively. Amortization of these assets was $0.5 million and $0.4 million during the three months ended September 30, 2023 and 2022, respectively, and $1.5 million and $1.1 million during the nine months ended September 30, 2023 and 2022. There was no impairment loss in relation to the costs capitalized for the periods presented.

Practical expedient

The Company does not adjust the transaction price for the effects of a significant financing component when the period between the transfers of the promised good or service to the customer and payment for that good or service by the customer is expected to be one year or less. The Company assessed each of its revenue generating arrangements in order to determine whether a significant financing component exists, and determined its contracts did not include a significant financing component during the three and nine months ended September 30, 2023 and 2022.

3. BALANCE SHEET COMPONENTS

Accounts receivable

Accounts receivable include amounts that are unbilled at the end of the period that are expected to be billed and collected within a 12-month period. Unbilled accounts receivable, included in accounts receivable, totaled $14.3 million and $13.5 million as of September 30, 2023, and December 31, 2022, respectively. Unbilled accounts receivable that are not expected to be billed and collected during the succeeding 12-month period are recorded in other non-current assets and totaled $0.8 million and $0.8 million as of September 30, 2023, and December 31, 2022, respectively.

The Company performs ongoing credit evaluations of its customers’ financial condition. An allowance for credit losses is maintained for probable credit losses based upon the Company’s assessment of the expected collectability of the accounts receivable. The allowance for credit losses is reviewed on a quarterly basis to assess the adequacy of the allowance.

Property and equipment

Property and equipment, net consist of the following (in thousands):

September 30, 

December 31, 

    

2023

2022

Computer equipment

$

12,076

$

11,853

Software

 

5,575

 

5,395

Furniture, fixtures, and equipment

 

2,491

 

2,484

Leasehold improvements

 

6,456

 

6,467

Laboratory and other equipment

 

4,770

 

4,431

Test equipment

 

27,866

 

28,403

Property and equipment in progress:

 

 

DFI™ system assets

21,123

22,231

CV® system and other assets

 

6,963

 

5,105

 

87,320

 

86,369

Less: Accumulated depreciation and amortization

 

(49,487)

 

(46,195)

Total

$

37,833

$

40,174

13

Test equipment mainly includes DFI™ system and CV® system assets at customer sites that are contributing to revenue. Property and equipment in progress represent the development or construction of property and equipment that have not yet been placed in service for the Company’s intended use and are not depreciated. 

Depreciation and amortization expense was $1.2 million and $1.4 million during the three months ended September 30, 2023 and 2022, respectively, and $3.8 million and $4.2 million during the nine months ended September 30, 2023 and 2022, respectively.

Goodwill and Intangible Assets, Net

As of September 30, 2023, and December 31, 2022, the carrying amount of goodwill was $15.0 million and $14.1 million, respectively. Refer to Note 13, Business Combination, for the discussion about additional goodwill recognized during the three and nine months ended September 30, 2023.

Intangible assets, net, consisted of the following (in thousands):

September 30, 2023

December 31, 2022

Amortization

Gross

Net

Gross

Net

Period

Carrying

Accumulated

Carrying

Carrying

Accumulated

Carrying

(Years)

    

Amount

    

Amortization

    

Amount

    

Amount

    

Amortization

    

Amount

Acquired identifiable intangibles:

Customer relationships

 

1-10

$

9,505

$

(7,170)

$

2,335

$

9,407

$

(6,684)

$

2,723

Developed technology

 

4-9

 

34,627

 

(21,463)

 

13,164

 

33,635

 

(19,647)

 

13,988

Tradename and trademarks

 

2-10

 

1,598

 

(999)

 

599

 

1,598

 

(918)

 

680

Patent

 

6-10

 

2,100

 

(1,760)

 

340

 

2,100

 

(1,696)

 

404

Noncompetition agreements

 

3

 

848

 

(800)

 

48

 

848

 

(588)

 

260

Total

$

48,678

$

(32,192)

$

16,486

$

47,588

$

(29,533)

$

18,055

14

The weighted average amortization period for acquired identifiable intangible assets was 5.5 years as of September 30, 2023. The following table summarizes intangible assets amortization expense in the accompanying condensed consolidated statements of comprehensive income (loss) (in thousands):

Three Months Ended September 30, 

Nine Months Ended September 30, 

    

2023

    

2022

    

2023

    

2022

Amortization of acquired technology included under costs of revenues

$

574

$

553

$

1,680

$

1,659

Amortization of acquired intangible assets presented separately under costs and expenses

 

328

 

318

 

979

 

946

Total amortization of acquired intangible assets

$

902

$

871

$

2,659

$

2,605

The Company expects annual amortization of acquired identifiable intangible assets to be as follows (in thousands):

Year Ending December 31, 

    

Amount

2023 (remaining three months)

$

890

2024

 

3,233

2025

 

3,069

2026

 

2,899

2027

 

2,747

2028 and thereafter

 

3,648

Total future amortization expense

$

16,486

There were no impairment charges for goodwill and intangible assets during the three and nine months ended September 30, 2023 and 2022.

4. LEASES

The Company leases administrative and sales offices and certain equipment under non-cancellable operating leases, which contain various renewal options and, in some cases, require payment of common area costs, taxes and utilities. These operating leases expire at various dates through 2028. The Company had no leases that were classified as a financing lease as of September 30, 2023, and December 31, 2022.

In the first quarter of 2022, the Company early terminated an office lease contract. The termination of this lease reduced the Company’s operating lease right-of-use assets and lease liabilities by approximately $0.5 million and $0.6 million, respectively. The gain from the lease termination of approximately $0.1 million was recorded under selling, general, and administrative expense in the accompanying condensed consolidated statement of comprehensive income (loss) for the nine months ended September 30, 2022.

Lease expense was comprised of the following (in thousands):

Three Months Ended September 30, 

Nine Months Ended September 30, 

    

2023

    

2022

    

2023

    

2022

Operating lease expense (1)

$

382

$

375

$

1,153

$

1,073

Short-term lease and variable lease expense (2)

 

239

 

244

 

673

 

801

Total lease expense

$

621

$

619

$

1,826

$

1,874

(1)Net of gain recognized upon lease termination of $0.1 million in the nine months ended September 30, 2022.

15

(2)Leases with an initial term of 12 months or less are not recorded on the accompanying condensed consolidated balance sheets, and the Company recognizes lease expense for these leases on a straight-line basis over the lease term. Variable lease expense for the periods presented primarily included common area maintenance charges.

Supplemental condensed consolidated balance sheets information related to operating leases was as follows:

September 30, 

December 31, 

 

    

2023

2022

 

Weighted average remaining lease term under operating leases (in years)

4.7

5.3

Weighted average discount rate for operating lease liabilities

 

4.89

%  

4.87

%

Maturities of operating lease liabilities as of September 30, 2023, were as follows (in thousands):

Year Ending December 31, 

    

Amount (1)

2023 (remaining three months)

$

422

2024

 

1,619

2025

 

1,539

2026

 

1,354

2027

 

1,294

2028 and thereafter

992

Total future minimum lease payments

7,220

Less: Interest (2)

 

(794)

Present value of future minimum lease payments under operating lease liabilities (3)

$

6,426

(1)As of September 30, 2023, the total operating lease liability includes approximately $0.9 million related to an option to extend a lease term that is reasonably certain to be exercised.
(2)Calculated using incremental borrowing interest rate for each lease.
(3)Includes the current portion of operating lease liabilities of $1.5 million as of September 30, 2023.

5. STOCKHOLDERS’ EQUITY

Stock Repurchase Program

On June 4, 2020, the Company’s Board of Directors adopted a stock repurchase program (the “2020 Program”) to repurchase up to $25.0 million of the Company’s common stock both on the open market and in privately negotiated transactions, including through Rule 10b5-1 plans, over the next two years. During the nine months ended September 30, 2022, 218,858 shares were repurchased by the Company under the 2020 Program at an average price of $26.40 per share for an aggregate total price of $5.8 million. In total, 470,070 shares were repurchased under the 2020 Program at an average price of $21.91 per share, for an aggregate total price of $10.3 million.

On April 11, 2022, the Board of Directors terminated the 2020 Program, and adopted a new program (the “2022 Program”) to repurchase up to $35.0 million of the Company’s common stock both on the open market and in privately negotiated transactions, from time to time, over the next two years. During the nine months ended September 30, 2022, 714,600 shares were repurchased by the Company under the 2022 Program at an average price of $23.36 per share for an aggregate total price of $16.7 million. During the nine months ended September 30, 2023, 21,340 shares were repurchased by the Company under the 2022 Program at an average price of $34.81 per share for an aggregate total price of $0.7 million. In total, the Company has repurchased 735,940 shares under the 2022 Program at an average price of $23.69 per share for an aggregate total price of $17.4 million.

6. EMPLOYEE BENEFIT PLANS

On September 30, 2023, the Company had the following stock-based compensation plans:

16

Employee Stock Purchase Plan

In July 2001, the Company’s stockholders initially approved the 2001 Employee Stock Purchase Plan, which was subsequently amended and restated in 2010 (as amended, the “2010 Purchase Plan”) to extend the term of the plan through May 17, 2020. Under the 2010 Purchase Plan, eligible employees could contribute up to 10% of their compensation, as defined in the 2010 Purchase Plan, towards the purchase of shares of PDF common stock at a price of 85% of the lower of the fair market value at the beginning of the offering period or the end of the purchase period. The 2010 Purchase Plan provided for twenty-four-month offering periods with four six-month purchase periods in each offering period. The 2010 Purchase Plan expired on May 17, 2020. Existing offering periods under the 2010 Plan continued through the applicable expiration date and the final offering period expired on January 31, 2022. On June 15, 2021, the Company’s stockholders approved the 2021 Employee Stock Purchase Plan, which has a ten-year term (the “2021 Purchase Plan” and, together with the 2010 Purchase Plan, the “Employee Purchase Plans”). The terms of the 2021 Purchase Plan are substantially similar to those of the 2010 Purchase Plan. A twenty-four-month offering period under the 2021 Purchase Plan commenced on August 1, 2021.

The Company estimated the fair value of purchase rights granted under the 2021 Purchase Plan during the period using the Black-Scholes-Merton option-pricing model with the following weighted average assumptions, resulting in the following weighted average fair values:

Nine Months Ended September 30, 

2023

    

2022

    

Expected life (in years)

1.25

 

1.25

 

Volatility

43.66

%  

48.73

%  

Risk-free interest rate

5.15

%  

2.75

%  

Expected dividend

 

 

Weighted average fair value of purchase rights granted during the period

$

15.71

$

10.00

During the three months ended September 30, 2023, a total of 125,392 shares were issued under the 2021 Purchase Plan, at a weighted average purchase price of $17.30 per share. During the three months ended September 30, 2022, a total of 92,043 shares were issued under the 2021 Purchase Plan, at a weighted-average purchase price of $16.40 per share. During the nine months ended September 30, 2023, a total of 223,608 shares were issued under the 2021 Purchase Plan, at a weighted average purchase price of $17.14 per share. During the nine months ended September 30, 2022, a total of 182,083 shares were issued under the 2021 Purchase Plan, at a weighted average purchase price of $16.15 per share. During the nine months ended September 30, 2022, a total of 5,203 shares were issued under the 2010 Purchase Plan, at a weighted average purchase price of $13.40 per share. As of September 30, 2023, unrecognized compensation cost related to the 2021 Purchase Plan was $3.9 million. This estimated unrecognized cost is expected to be recognized over a weighted average period of 1.7 years.

As of September 30, 2023, 594,309 shares were available for future issuance under the 2021 Purchase Plan.

Stock Incentive Plans

On November 16, 2011, the Company’s stockholders initially approved the 2011 Stock Incentive Plan, which has been amended and restated and approved by the Company’s stockholders a number of times since then (as approved by the stockholders through the date of this report, the “2011 Plan”) and currently expires in 2033. Under the 2011 Plan, the Company may award stock options, stock appreciation rights (“SARs”), stock grants or stock units covering shares of the Company’s common stock to employees, directors, non-employee directors and contractors. The aggregate number of shares reserved for awards under the 2011 Plan is 13.8 million shares, plus up to 3.5 million shares previously issued under the 2001 Stock Plan adopted by the Company in 2001, which expired in 2011 (the “2001 Plan”) that are either (i) forfeited or (ii) repurchased by the Company or are shares subject to awards previously issued under the 2001 Plan that expire or that terminate without having been exercised or settled in full on or after November 16, 2011. In case of awards other than options or SARs, the aggregate number of shares reserved under the 2011 Plan will be decreased at a rate of 1.33 shares issued pursuant to such awards. The exercise price for stock options must generally be at prices no less than the fair market value at the date of grant. Stock options generally expire ten years from the date of grant and become vested and exercisable over a four-year period.

17

As of September 30, 2023, 14.3 million shares of common stock were reserved to cover stock-based awards under the 2011 Plan, of which 3.7 million shares were available for future grant. The number of shares reserved and available under the 2011 Plan includes 0.5 million shares that were subject to awards previously made under the 2001 Plan and were forfeited, expired or repurchased by the Company after the adoption of the 2011 Plan through September 30, 2023. As of September 30, 2023, there were no outstanding awards that had been granted outside of the 2011 or 2001 Plans (collectively, the “Stock Plans”).

The Company estimated the fair value of share-based awards granted under the 2011 Stock Plan during the period using the Black-Scholes-Merton option-pricing model. There were no stock options granted during the three and nine months ended September 30, 2023 and 2022.

Stock-Based Compensation

Stock-based compensation is estimated at the grant date based on the award’s fair value and is recognized on a straight-line basis over the vesting periods, generally four years. Stock-based compensation expense before taxes related to the Company’s stock plans and employee stock purchase plans was allocated as follows (in thousands):

Three Months Ended September 30, 

Nine Months Ended September 30, 

    

2023

    

2022

    

2023

    

2022

Costs of revenues

$

1,120

$

854

$

3,022

$

2,237

Research and development

 

2,196

 

2,180

 

5,609

 

7,158

Selling, general, and administrative

 

2,683

 

2,102

 

6,930

 

5,166

Stock-based compensation expense

$

5,999

$

5,136

$

15,561

$

14,561

Stock-based compensation capitalized in the capitalized software development costs included in property and equipment, net, was immaterial for the three and nine months ended September 30, 2023.

Additional information with respect to options under the Stock Plans during the nine months ended September 30, 2023, is as follows:

Outstanding Options

Weighted

Weighted

Average

Average

Remaining

Aggregate

Number of

Exercise

Contractual

Intrinsic

Options

Price

Term

Value

    

(in thousands)

    

per Share

    

(Years)

    

(in thousands)

Outstanding, December 31, 2022

 

68

$

16.11

 

  

 

  

Granted

 

 

  

 

  

Exercised

 

(29)

16.39

 

  

 

  

Canceled

 

 

  

 

  

Expired

 

 

  

 

  

Outstanding, September 30, 2023

 

39

$

15.91

 

4.40

$

654

Vested and expected to vest, September 30, 2023

 

39

$

15.91

 

4.40

$

653

Exercisable, September 30, 2023

 

36

$

15.80

 

4.21

$

604

The aggregate intrinsic value in the table above represents the total intrinsic value based on the Company’s closing stock price of $32.40 per share as of September 30, 2023. The total intrinsic value of options exercised was $0.6 million during the nine months ended September 30, 2023.

18

Total remaining unrecognized compensation cost related to unvested stock options as of September 30, 2023, which is expected to be fully recognized in 2023, and total fair value of shares vested during the nine months ended September 30, 2023, were immaterial.

Nonvested restricted stock unit activity during the nine months ended September 30, 2023, was as follows:

Weighted

Average Grant

Shares 

Date Fair Value

    

(in thousands)

    

Per Share

Nonvested, December 31, 2022

 

2,124

$

21.29

Granted

 

753

$

43.92

Vested

 

(829)

$

20.46

Forfeited

 

(18)

$

25.87

Nonvested, September 30, 2023

 

2,030

$

29.98

As of September 30, 2023, there was $48.6 million of total unrecognized compensation cost related to restricted stock units. That cost is expected to be recognized over a weighted average period of 2.7 years. Restricted stock units do not have rights to dividends prior to vesting.

7. INCOME TAXES

Income tax expense decreased by $0.8 million for the nine months ended September 30, 2023, to a $2.5 million income tax expense as compared to a $3.3 million income tax expense for the nine months ended September 30, 2022. The Company’s effective tax rate was 53.1% and (547.7%) for the nine months ended September 30, 2023 and 2022, respectively. The Company’s effective tax rate increased in the nine months ended September 30, 2023, as compared to the same period in 2022, primarily due to changes in the foreign and state taxes and year-to-date recognition of worldwide pre-tax income (loss) in relation to their forecasted amounts for full years. Our provision for income taxes for the nine months ended September 30, 2023, was primarily attributable to foreign and state taxes.

The Company’s total amount of unrecognized tax benefits, excluding interest and penalties, as of September 30, 2023, was $15.9 million, of which $2.0 million, if recognized, would affect the Company’s effective tax rate. The Company’s total amount of unrecognized tax benefits, excluding interest and penalties, as of December 31, 2022, was $15.1 million, of which $2.0 million, if recognized, would affect the Company’s effective tax rate. As of September 30, 2023, the Company has recorded unrecognized tax benefits of $2.5 million, including interest and penalties of $0.6 million, as long-term taxes payable in the accompanying condensed consolidated balance sheet. The remaining $14.0 million has been recorded within the Company’s DTAs, which is subject to a full valuation allowance.

The valuation allowance was approximately $59.2 million as of September 30, 2023, and December 31, 2022, which was related to U.S. net federal and state DTAs. The worldwide net DTAs balance as of September 30, 2023, and December 31, 2022, were not significant.

The Company conducts business globally and, as a result, files numerous consolidated and separate income tax returns in the U.S. federal and various state and foreign jurisdictions. For U.S. federal and California income tax purposes, the statute of limitations currently remains open for the tax years ended 2019 to present and 2018 to present, respectively. In addition, due to net operating loss carryback claims, the tax years 2013 through 2015 may be subject to federal examination and all of the net operating loss and research and development credit carryforwards that may be utilized in future years may be subject to federal and state examination. The Company is not subject to income tax examinations in any other of its major foreign subsidiaries’ jurisdictions.

19

8. NET INCOME (LOSS) PER SHARE

Basic net income (loss) per share is computed by dividing net income (loss) by weighted average number of common shares outstanding for the period (excluding outstanding stock options and shares subject to repurchase). Diluted net income (loss) per share is computed using the weighted average number of common shares outstanding for the period plus the potential effect of dilutive securities which are convertible into common shares (using the treasury stock method), except in cases in which the effect would be anti-dilutive. The following is a reconciliation of the numerators and denominators used in computing basic and diluted net income (loss) per share (in thousands except per share amount):

Three Months Ended September 30, 

Nine Months Ended September 30, 

    

2023

    

2022

    

2023

    

2022

Numerator:

 

  

 

  

 

  

 

  

Net income (loss)

$

(4,972)

$

1,385

$

2,218

$

(3,912)

Denominator:

 

  

 

  

 

  

 

  

Basic weighted average shares outstanding

 

38,187

 

37,226

 

37,930

 

37,285

Effect of dilutive stock options, unvested restricted stock units, and shares of common stock expected to be issued under employee stock purchase plan(s)

 

 

828

 

1,047

 

Diluted weighted average shares outstanding

 

38,187

 

38,054

 

38,977

 

37,285

Net income (loss) per share:

Basic

$

(0.13)

$

0.04

$

0.06

$

(0.10)

Diluted

$

(0.13)

$

0.04

$

0.06

$

(0.10)

For the three months ended September 30, 2023 and for the nine months ended September 30, 2022, because the Company was in a loss position, diluted net loss per share is the same as basic net loss per share as the inclusion of the potential common shares would have been anti-dilutive.

The following table sets forth the weighted average potential shares of common stock that were not included in the diluted net income (loss) per share calculation above because to do so would be anti-dilutive for the periods indicated (in thousands):

Three Months Ended September 30, 

Nine Months Ended September 30, 

    

2023

    

2022

    

2023

    

2022

Outstanding options

 

23

 

 

63

Non-vested restricted stock units

 

1,391

62

 

223

784

Employee Stock Purchase Plan

 

38

 

75

Total

 

1,452

 

62

 

223

922

9. CUSTOMER AND GEOGRAPHIC INFORMATION

Operating segments are defined as components of an enterprise about which separate financial information is available that is evaluated regularly by the chief operating decision maker, or group, in deciding how to allocate resources and in assessing performance.

The Company’s chief operating decision maker, the chief executive officer, reviews discrete financial information presented on a consolidated basis for purposes of regularly making operating decisions, allocation of resources, and assessing financial performance. Accordingly, the Company considers itself to be in one operating and reporting segment, specifically the provision of services for differentiated data and analytics solutions to the semiconductor and electronics industries.

20

Revenues from an individual customer that are approximately 10% or more of the Company’s consolidated total revenues are as follows:

Three Months Ended September 30, 

 

Nine Months Ended September 30, 

Customer

    

2023

    

2022

    

2023

    

2022

 

A

38

%  

28

%

36

%  

30

%

B

*

%  

16

%

10

%  

11

%

Gross accounts receivable balances (including amounts that are unbilled) from individual customers that are approximately 10% or more of the Company’s gross accounts receivable balance are as follows:

September 30, 

December 31, 

 

Customer

    

2023

2022

 

A

 

44

%  

29

%

B

 

*

%  

12

%

C

*

%  

12

%

* represents less than 10%

Revenues from customers by geographic area based on the location of the customers’ work sites are as follows (amounts in thousands):

Three Months Ended September 30, 

2023

2022

 

Percentage

Percentage

 

    

Revenues

    

of Revenues

    

Revenues

    

of Revenues

 

United States

$

24,477

 

58

%  

$

18,292

46

%

China

 

7,549

 

18

 

9,555

24

Rest of the world

 

10,324

 

24

 

12,013

30

Total revenue

$

42,350

 

100

%  

$

39,860

 

100

%

Nine Months Ended September 30, 

2023

2022

 

Percentage

Percentage

 

    

Revenues

    

of Revenues

    

Revenues

    

of Revenues

 

United States

$

70,090

 

56

%  

$

52,869

 

49

%

China

 

21,927

 

18

 

18,214

 

17

Rest of the world

 

32,693

 

26

 

36,943

 

34

Total revenue

$

124,710

 

100

%  

$

108,026

 

100

%

Long-lived assets, net by geographic area are as follows (in thousands):

September 30, 

December 31, 

    

2023

2022

United States (1)

$

45,419

$

44,730

Rest of the world

 

1,207

 

1,446

Total long-lived assets, net

$

46,626

$

46,176

(1) Includes assets deployed at customer sites which could be outside the U.S.

21

10. FAIR VALUE MEASUREMENTS

Fair value is the exit price, or the amount that would be received to sell an asset or paid to transfer a liability in an orderly transaction between market participants as of the measurement date. The multiple assumptions used to value financial instruments are referred to as inputs, and a hierarchy for inputs used in measuring fair value is established, that maximizes the use of observable inputs and minimizes the use of unobservable inputs by requiring that the most observable inputs be used when available. Observable inputs reflect assumptions market participants would use in pricing an asset or liability based on market data obtained from independent sources while unobservable inputs reflect a reporting entity’s pricing based upon its own market assumptions. These inputs are ranked according to a fair value hierarchy that prioritizes the inputs to valuation techniques used to measure fair value into three broad levels.

Level 1 -

Inputs are quoted prices in active markets for identical assets or liabilities.

 

 

Level 2 -

Inputs are quoted prices for similar assets or liabilities in an active market, quoted prices for identical or similar assets or liabilities in markets that are not active, inputs other than quoted prices that are observable and market-corroborated inputs which are derived principally from or corroborated by observable market data.

 

 

Level 3 -

Inputs are derived from valuation techniques in which one or more significant inputs or value drivers are unobservable.

The following table represents the Company’s assets measured at fair value on a recurring basis as of September 30, 2023, and December 31, 2022, and the basis for those measurements (in thousands):

Fair Value Measurements Using

Quoted

Prices in

Active

Significant

Markets for

Other

Identical

Observable

Significant

September 30, 

Assets

Inputs

Unobservable

Assets

    

2023

    

(Level 1)

    

(Level 2)

    

Inputs (Level 3)

Cash equivalents

 

  

 

  

 

  

 

  

Money market mutual funds

$

92,113

$

92,113

$

$

Short-term investments (available-for-sale debt securities)

 

  

 

  

 

  

 

  

U.S. Government securities (1)

 

23,744

 

23,744

 

 

Total

$

115,857

$

115,857

$

$

Fair Value Measurements Using

Quoted

Prices in

Active

Significant

Markets for

Other

Significant

Identical

Observable

Unobservable

December 31, 

Assets

Inputs

Inputs 

Assets

    

2022

    

(Level 1)

    

(Level 2)

    

(Level 3)

Cash equivalents

 

  

 

  

 

  

 

  

Money market mutual funds

$

75,738

$

75,738

$

$

U.S. Government securities (1)

1,990

1,990

Short-term investments (available-for-sale debt securities)

  

 

  

 

  

 

  

U.S. Government securities (1)

19,557

 

19,557

 

 

Total

$

97,285

$

97,285

$

$

22

(1)As of September 30, 2023, and December 31, 2022, the amortized cost of the Company’s investments in U.S Government securities approximated their fair value due to their short-term maturities, and there have been no events or changes in circumstances that would have had a significant effect on the fair value of these securities in the periods presented. For the three and nine months ended September 30, 2023, there were no material realized or unrealized gains or losses, either individually or in the aggregate.

11. COMMITMENTS AND CONTINGENCIES

Strategic Partnership with Advantest — See Note 12, Strategic Partnership Agreement with Advantest and Related Party Transactions, for the discussion about the Company’s commitments under the strategic partnership with Advantest.

Operating Leases — Refer to Note 4, Leases, for the discussion about the Company’s lease commitments.

Indemnifications — The Company generally provides a warranty to its customers that its software will perform substantially in accordance with documented specifications typically for a period of 90 days following initial delivery of its products. The Company also indemnifies certain customers from third-party claims of intellectual property infringement relating to the use of its products. Historically, costs related to these guarantees have not been significant. The Company is unable to estimate the maximum potential impact of these guarantees on its future results of operations.

Purchase Obligations — The Company has purchase obligations with certain suppliers for the purchase of goods and services entered into in the ordinary course of business. As of September 30, 2023, total outstanding purchase obligations were $24.6 million, the majority of which is due within the next 15 months.

Indemnification of Officers and Directors — As permitted by the Delaware general corporation law, the Company has included a provision in its certificate of incorporation to eliminate the personal liability of its officers and directors for monetary damages for breach or alleged breach of their fiduciary duties as officers or directors, other than in cases of fraud or other willful misconduct.

In addition, the Bylaws of the Company provide that the Company is required to indemnify its officers and directors even when indemnification would otherwise be discretionary, and the Company is required to advance expenses to its officers and directors as incurred in connection with proceedings against them for which they may be indemnified. The Company has entered into indemnification agreements with its officers and directors containing provisions that are in some respects broader than the specific indemnification provisions contained in the Delaware general corporation law. The indemnification agreements require the Company to indemnify its officers and directors against liabilities that may arise by reason of their status or service as officers and directors other than for liabilities arising from willful misconduct of a culpable nature, to advance their expenses incurred as a result of any proceeding against them as to which they could be indemnified, and to obtain directors’ and officers’ insurance if available on reasonable terms. The Company has obtained directors’ and officers’ liability insurance in amounts comparable to other companies of the Company’s size and in the Company’s industry. Since a maximum obligation of the Company is not explicitly stated in the Company’s Bylaws or in its indemnification agreements and will depend on the facts and circumstances that arise out of any future claims, the overall maximum amount of the obligations cannot be reasonably estimated.

Legal Proceedings — From time to time, the Company is subject to various claims and legal proceedings that arise in the ordinary course of business. The Company accrues for losses related to litigation when a potential loss is probable, and the loss can be reasonably estimated in accordance with FASB requirements. As of September 30, 2023, the Company was not party to any material legal proceedings for which a loss was probable or an amount was accrued. From time to time, the Company may enter into contingent fee arrangements with external legal firms that may represent the Company in legal proceedings related to disputes. Contingent legal fees are accrued by the Company when they are probable and reasonably estimable.  

On May 6, 2020, the Company initiated an arbitration proceeding with the Hong Kong International Arbitration Center against SMIC New Technology Research & Development (Shanghai) Corporation (“SMIC”) due to SMIC’s failure to pay fees due to the Company under a series of contracts. The Company seeks to recover the unpaid fees, a declaration requiring SMIC to pay fees under the contracts in the future (or a lump sum payment to end the contract), and costs associated with

23

bringing the arbitration proceeding. SMIC denies liability and an arbitration hearing was held in February 2023. Final written submissions were submitted by the parties at the end of August. A decision is expected potentially within this calendar year.

12. STRATEGIC PARTNERSHIP AGREEMENT WITH ADVANTEST AND RELATED PARTY TRANSACTIONS

In July 2020, the Company entered into a long-term strategic partnership with Advantest Corporation through its wholly-owned subsidiary, Advantest America, Inc. (collectively referred to herein as “Advantest”).

Analytics revenue recognized from Advantest was $2.6 million and $2.8 million during the three months ended September 30, 2023 and 2022, respectively, and $6.2 million and $8.1 million during the nine months ended September 30, 2023 and 2022, respectively. Accounts receivable from Advantest was not material as of September 30, 2023 and amounted to $0.3 million as of December 31, 2022. Deferred revenue amounted to $12.1 million and $7.1 million as of September 30, 2023, and December 31, 2022, respectively.

13. BUSINESS COMBINATION

On July 5, 2023 (the “Acquisition Date”), the Company, through its wholly-owned subsidiary in Canada, PDF Solutions Canada, Ltd., acquired 100% of the equity interest in Lantern Machinery Analytics, Inc. headquartered in Canada, a privately-held provider of automated image analysis and feature extraction artificial intelligence/machine learning software for critical inspection and metrology steps at battery cell development and manufacturing processes for the electric vehicle industry. This software will enhance the Company’s Exensio analytics platform and product offerings to new and existing battery manufacturer customers. The total cash consideration for this acquisition was $1.8 million, net of cash acquired, for all of the outstanding equity of Lantern Machinery Analytics, Inc.

The Company accounted for this acquisition as a business combination in accordance with FASB ASC Topic 805, Business Combinations. This method requires that assets acquired and liabilities assumed in a business combination be recognized at their respective estimated fair values as of the Acquisition Date. The excess of purchase consideration over the fair value of net tangible and identifiable intangible assets acquired was recorded as goodwill. The goodwill recorded from this acquisition represents business benefits the Company anticipates from the acquired workforce and expectation for expanded sales opportunities to foster further business growth. Due to the nature of the transaction, the goodwill associated with the acquisition is not deductible for tax purposes. As of September 30, 2023, payment made for this acquisition, net of cash acquired, amounted to $1.8 million and was funded from available cash of the Company.

24

The allocation of the purchase price for this acquisition, as of the date of the acquisition, is as follows (in thousands, except amortization period):

Amortization

    

Amount

    

Period (Years)

Allocation of Purchase Price:

 

  

 

  

Assets

 

  

 

  

Fair value of tangible assets (including cash of $265)

$

450

 

  

Fair value of intangible assets:

 

  

 

  

Developed technology

 

1,010

 

8

Customer relationships

 

100

 

6

Goodwill

 

895

 

N/A

Total assets acquired

$

2,455

 

  

Liabilities

 

  

 

  

Deferred tax liabilities

$

294

Accounts payable and accrued expenses

73

 

  

Total liabilities assumed

367

 

  

Total purchase price allocation

$

2,088

 

  

Pro forma results of operations have not been presented because the effect of the acquisition was not material to the Company’s financial results.

25

Item 2. Management’s Discussion and Analysis of Financial Condition and Results of Operations

Forward-Looking Statements

The following discussion of our financial condition and results of operations contains forward-looking statements within the meaning of Section 27A of the Securities Act of 1933 and Section 21E of the Securities Exchange Act of 1934. All statements other than statements of historical fact may be forward-looking statements. In some cases, you can identify forward-looking statements by terminology such as “may,” “could,” “projected,” “should,” “expect,” “plan,” “anticipate,” “believe,” “estimate,” “predict,” “potential,” “target” or “continue,” the negative effect of terms like these or other similar expressions. These statements include, but are not limited to, statements concerning: expectations about the effectiveness of our business and technology strategies; expectations regarding global economic trends; the impact of rising global inflation and interest rates, expectations regarding recent and future acquisitions; current semiconductor industry trends; expectations of continued adoption of our solutions by new and existing customers; project milestones or delays and performance criteria achieved; cost and schedule of new product development; the provision of technology and services prior to the execution of a final contract; the continuing impact of macroeconomic conditions on the semiconductor industry and our operations or supply and demand for our products; supply chain disruptions; the success of the Company’s strategic growth opportunities and partnerships; the Company’s ability to successfully integrate acquired businesses and technologies; whether the Company can successfully convert backlog into revenue; customers’ production volumes under contracts that provide Gainshare; possible impacts from the evolving trade regulatory environment and geopolitical tensions and our ability to obtain additional financing if needed. These forward-looking statements are only predictions. Forward-looking statements are based on current expectations and projections about future events and are inherently subject to a variety of risks and uncertainties, many of which are beyond our control, which could cause actual results to differ materially from those anticipated or projected. All forward-looking statements included in this document are based on information available to us on the date of filing and we further caution investors that our business and financial performance are subject to substantial risks and uncertainties. We assume no obligation to update publicly any such forward-looking statements. In evaluating these statements, you should specifically consider various factors, including the risk factors set forth in Item 1. “Business” and Item 7. “Management’s Discussion and Analysis of Financial Condition and Results of Operations” in our Annual Report on Form 10 K for the year ended December 31, 2022, filed with the Securities and Exchange Commission (“SEC”) on March 1, 2023. All references to “we,” “us,” “our,” “PDF,” “PDF Solutions” or “the Company” refer to PDF Solutions, Inc.

Cimetrix, CV, DFI, Exensio, PDF Solutions, and the PDF Solutions, Exensio, and Cimetrix logos are trademarks or registered trademarks of PDF Solutions, Inc. or its subsidiaries.

Overview

We offer products and services designed to empower organizations across the semiconductor and electronics ecosystems to connect, collect, manage, and analyze data about design, equipment, manufacturing, and test to improve the yield and quality of their products. We derive revenues from two sources: Analytics and Integrated Yield Ramp. Our offerings combine proprietary software, professional services using proven methodologies and third-party cloud-hosting platforms for software-as-a-service (“SaaS”), electrical measurement hardware tools, and physical intellectual property (“IP”) for integrated circuit (“IC”) designs. We primarily monetize our offerings through license fees and contract fees for professional services and SaaS. In some cases, especially on our historical IYR engagements, we also receive a value-based variable fee or royalty, which we call Gainshare. Our products, services, and solutions have been sold to integrated device manufacturers (“IDMs”), fabless semiconductor companies, foundries, out-sourced semiconductor assembly and test (“OSATs”), capital equipment manufacturers and system houses.

We are headquartered in Santa Clara, California and also operate worldwide with offices in Canada, China, France, Germany, Italy, Japan, Korea, and Taiwan.

Industry Trends

Certain trends may affect our Analytics revenue specifically. In particular, the confluence of Industry 4.0 (i.e. the fourth industrial revolution, or the automation and data exchange in manufacturing technologies and processes) and cloud computing (i.e. the on-demand availability of computing resources and data storage without direct active management by the user) is

26

driving increased innovation in semiconductor and electronics manufacturing and analytics, as well as in the organization of information technology (“IT”) networks and computing at semiconductor and electronics companies across the ecosystem. First, the ubiquity of wireless connectivity and sensor technology enables any manufacturing company to augment its factories and visualize its entire production line. In parallel, the cost per terabyte of data storage has continually decreased year to year. The combination of these two trends means that more data is collected and stored than ever before. Further, semiconductor companies are striving to analyze these very large data sets in real-time to make rapid decisions that measurably improve manufacturing efficiency and quality. In parallel, the traditional practice of on-site data storage, even for highly sensitive data, is changing. The ability to cost-effectively and securely store, analyze, and retrieve massive quantities of data from the cloud versus on-premise enables data to be utilized across a much broader population of users, frequently resulting in greater demands on analytics programs. The combination of these latter two trends means that cloud-based, analytic programs that effectively manage identity management, physical security, and data protection are increasingly in demand for insights and efficiencies across the organizations of these companies. We believe that all these trends will continue for the next few years, and the challenges involved in adopting Industry 4.0 and secure cloud computing will create opportunities for our combination of advanced analytics capabilities, proven and established supporting infrastructure, and professional services to configure our products to meet customers’ specialized needs.

Other trends may continue to affect our characterization services business and Integrated Yield Ramp revenue specifically. Semiconductor manufacturers have been experiencing lower wafer shipments, which has negatively impacted our Integrated Yield Ramp gainshare revenue. The logic foundry market at the leading-edge nodes, such as 7nm, 5nm, and smaller, underwent significant change over the past few years. The leading foundry continues to dominate market share. This trend will likely continue to impact our characterization services business on these nodes. We expect most logic foundries to invest in derivatives of older process nodes, such as 28nm and 14nm, to extract additional value as many of their customers will not move to advanced nodes due to either technological barriers or restrictive economics. Foundries that participate at leading edge nodes are expected to continue to invest in new technologies such as memory, packaging, and multi-patterned and extreme ultraviolet lithography, as well as new innovations in process control and variability management. We expect China’s investment in semiconductors to continue. Compliance with changing U.S. export restrictions limit our possible business with Chinese semiconductor manufacturers on advanced nodes. As a result of these market developments, we have chosen to focus our resources and investments in products, services, and solutions for analytics.

There are other global or business trends that may affect our business opportunities generally as follows:

Macroeconomy, inventories, and demand. The worldwide economy has not recovered as strongly or quickly post-COVID as expected, and recession fears are growing in some locations. As a result of the slow recovery, inventories of semiconductor devices remain elevated in many instances. The strength of demand for semiconductor products has varied by region and product segment. For example, demand for GPU products is strong, while demand for smart phones is weak. With high inventories and soft demand, semiconductor fab utilization rates are also low and semiconductor capital equipment orders have been impacted. As a result of these trends, customers are being cautious with their spend and some purchase cycles are lengthening and other purchase decisions are being delayed, particularly with respect to larger deals.  
Changing export controls and sanctions. The U.S. government continues to expand and intensify export controls and sanctions, with a major focus on the destinations of People’s Republic of China (“P.R.C.”), Russian Federation, and Belarus. After an internal evaluation, we determined that a large percentage of our software products are not of U.S. origin and are, thus, not subject to the U.S. Export Administration Regulations (“EAR”). Our standard operations include development, distribution processes, software download sites, and professional service centers and processes located in various geographies around the world to better serve our customers. Some customers in the P.R.C., in particular, have nonetheless expressed concerns to us that continued action by the U.S. government could potentially interrupt their ability to make use of our products or services, which has in some cases, and could in the future, negatively impact the demand for our products and services by these customers. In October 2022 and October 2023, the U.S. government issued interim final rules with additional export control restrictions. Other countries and jurisdictions with important roles in our industry are updating some of their export control regulations to further align with those of the U.S. government and, in some cases, to counter U.S. regulations. For example, the P.R.C. has imposed restrictions on imports of certain memory ICs offered by U.S. companies and has been developing its legal authorities to counter foreign sanctions. The U.S. government is renewing and amplifying its caution that visitors to

27

the P.R.C. are subject to arbitrary enforcement of local laws and wrongful detention, a risk that could deter or hinder certain business activities. Based on our current assessments, we expect the near-term impact of these expanded trade restrictions on our business to be limited, but clarifications and proposals that are still in government development and open questions of interpretation leave much unknown. We will continue to monitor for any further trade restrictions, other regulatory or policy changes by the U.S. or foreign governments and any actions in response.  The uncertainty caused by these recent regulations and the potential for additional future restrictions could negatively affect our future sales in the P.R.C. market.
Investments in semiconductor manufacturing. In 2022, the U.S. Congress passed into law funding programs from the bipartisan Creating Helpful Incentives to Produce Semiconductors Act (the “CHIPS Act of 2022”), authorizing the Department of Commerce, Department of Defense, and Department of State to develop onshore domestic manufacturing of semiconductors considered critical to U.S. competitiveness and national security. It is expected that U.S. semiconductor companies, especially manufacturers, will increase spending as a result of receiving funds under these programs. Recipients of funding under such programs may be required to agree to separate restrictions on certain commercial activity in the P.R.C., where we have current business. If our customers engage us for projects funded by these programs, we will evaluate all restrictions, and their impact on our existing business, before entering into any contracts associated with these programs.
Geopolitical tensions/conflicts. Geopolitical tensions and conflicts in various locations around the world continue to increase, including on the issue of Taiwan in Asia, Ukraine and Russia, and most recently between Israel and Hamas. These current situations have created volatility in the global financial markets and may have further global economic consequences, including potential disruptions of the global supply chain and heightened volatility of commodity and raw material prices. This has increased fears of a general recession. We have contractors located in the West Bank and in Israel, who are providing software development and customer technical support services, and have developed contingency plans to use alternative resources to continue serving customers, if needed. Any escalations could lead to disruptions or reductions in international trade, deter or prevent purchasing activity of customers, and negatively impact our development timelines and customer support (with respect to the Israel-Hamas conflict) or China sales (with respect to U.S.-P.R.C. tensions) and financial results in general (with respect to global tensions).  

Financial Highlights

Financial highlights for the three months ended September 30, 2023, are as follows:

Total revenues were $42.4 million, an increase of $2.5 million, or 6%, compared to the three months ended September 30, 2022. Analytics revenue was $39.5 million, an increase of $6.6 million, or 20%, compared to the three months ended September 30, 2022. The increase in Analytics revenue was driven by increases in revenue from DFI and CV systems, including a sales-type lease of a DFI asset, and an increase in revenue from Exensio software licenses, partially offset by a decrease in revenues from Cimetrix software licenses due to a decrease in orders for runtime licenses. Integrated Yield Ramp revenue decreased $4.1 million, or 59%, compared to the three months ended September 30, 2022, primarily due to a decrease in Gainshare from decreased customer wafer shipments at non-leading-edge nodes and a decrease in hours worked on fixed fees engagements.
Costs of revenues increased $1.7 million, compared to the three months ended September 30, 2022, primarily due to an increase in hardware costs, software licenses and maintenance costs. These increases were partially offset by decreases in personnel-related costs and third-party cloud-delivery costs.
Net loss was $5.0 million, compared to a net income of $1.4 million for the three months ended September 30, 2022. The decrease in net income was primarily attributable to increases in (i) income tax expense, (ii) costs of revenues, (iii) sales and marketing activities, and general and administrative expenses, which were primarily related to increases in personnel-related costs, travel expenses, partially offset by a decrease in legal fees related to the arbitration proceeding over a disputed customer contract, and (iv) foreign currency transaction exchange losses, partially offset by (a) an increase in total revenues, (b) an increase in interest income and (c) a decrease in research and development expenses.

28

Financial highlights for the nine months ended September 30, 2023, are as follows:

Total revenues were $124.7 million, an increase of $16.7 million, or 15%, compared to the nine months ended September 30, 2022. Analytics revenue was $113.0 million, an increase of $18.5 million, or 20%, compared to the nine months ended September 30, 2022. The increase in Analytics revenue was driven by increases in revenue from DFI and CV systems, including a sales-type lease of a DFI asset, and an increase in revenue from Exensio software licenses, partially offset by a decrease in revenues from Cimetrix software licenses due to a decrease in orders for runtime licenses. Integrated Yield Ramp revenue decreased $1.9 million, or 14%, compared to the nine months ended September 30, 2022, primarily due to a decrease in Gainshare from decreased customer wafer shipments at non-leading-edge nodes and a decrease in hours worked on fixed fees engagements.
Costs of revenues increased $2.4 million, compared to the nine months ended September 30, 2022, primarily due to an increase in hardware costs, increases in travel expenses, third-party cloud-delivery costs, software licenses and maintenance costs and subcontractor fees. These increases were partially offset by decreases in personnel-related costs and facilities and IT-related costs.
Net income was $2.2 million, compared to a net loss of $3.9 million for the nine months ended September 30, 2022. The increase in net income was primarily attributable to (i) an increase in total revenues, (ii) an increase in interest income, (iii) a decrease in research and development expenses and (iv) a decrease in income tax expenses, partially offset by increases in (a) costs of revenues, (b) sales and marketing activities, and general and administrative expenses, which were primarily related to increases in personnel-related costs, legal fees related to the arbitration proceeding over a disputed customer contract, travel expenses, third-party cloud-services related costs, business acquisition costs, software licenses and maintenance costs, facilities and IT-related costs, and (c) foreign currency transaction exchange losses.
Cash, cash equivalents, and short-term investments at September 30, 2023, were $135.4 million, compared to $139.2 million as of December 31, 2022, a decrease of $3.8 million, primarily due to payments of accrued bonuses, payments to vendors and for income taxes, purchases of and prepayments for property and equipment, payments for business acquisition, repurchases of common stock, and payments of taxes related to net share settlement of equity awards, partially offset by cash collection from customers, proceeds from purchases under our employee stock purchase plan and exercise of stock options, and interest income from cash, cash equivalents and short-term investments.

Critical Accounting Estimates

See Note 1, Basis of Presentation and Summary of Significant Accounting Policies, to our unaudited condensed consolidated financial statements in this Quarterly Report on Form 10-Q, for a description of recent accounting pronouncements and accounting changes, including the expected dates of adoption and estimated effects, if any, on our condensed consolidated financial statements, and to “Management’s Discussion and Analysis of Financial Condition and Results of Operations” contained in Part II, Item 7 of our Annual Report on Form 10-K for the year ended December 31, 2022, filed with the SEC on March 1, 2023.

There were no material changes during the three and nine months ended September 30, 2023, to the items that we disclosed as our critical accounting policies and estimates in “Management’s Discussion and Analysis of Financial Condition and Results of Operations” in Part II, Item 7 of our Annual Report on Form 10-K for the year ended December 31, 2022.

The following is a brief discussion of the more significant accounting policies and methods that we use.

General

Our discussion and analysis of our financial conditions, results of operations and cash flows are based on our condensed consolidated financial statements, which have been prepared in conformity with accounting principles generally accepted in the United States of America. Our preparation of these condensed consolidated financial statements requires us to make estimates and assumptions that affect the reported amounts of assets and liabilities, the disclosure of contingent assets and

29

liabilities at the dates of the financial statements and the reported amounts of revenues and expenses during the reporting periods. We base our estimates on historical experience and on various other assumptions that we believe to be reasonable under the circumstances. The most significant estimates and assumptions relate to revenue recognition, valuation of long-lived assets including goodwill and intangible assets, stock-based compensation and the realization of deferred tax assets (“DTAs”). Actual amounts may differ from such estimates under different assumptions or conditions.

Revenue Recognition

We derive revenue from two sources: Analytics and Integrated Yield Ramp.

Analytics Revenue

Analytics revenue is derived from the following primary offerings: licenses and services for standalone Software (which consists primarily of Exensio and Cimetrix products), SaaS (which consists primarily of Exensio products), and DFI and CV systems (including Characterization services) that do not include performance incentives based on customers’ yield achievement.

Revenue from standalone software is recognized depending on whether the license is perpetual or time-based. Perpetual (one-time charge) license software is recognized at the time of the inception of the arrangement when control transfers to the customers, if the software license is distinct from the services offered by us. Revenue from post-contract support is recognized over the contract term on a straight-line basis, because we are providing (i) support and (ii) unspecified software updates on a when-and-if available basis over the contract term. Revenue from time-based-licensed software is allocated to each performance obligation and is recognized either at a point in time or over time as follows. The license component is recognized at the time when control transfers to customers, with the post-contract support component recognized ratably over the committed term of the contract. For contracts with any combination of licenses, support, and other services, distinct performance obligations are accounted for separately. For contracts with multiple performance obligations, we allocate the transaction price of the contract to each performance obligation on a relative basis using the standalone selling price (“SSP”) attributed to each performance obligation.

Revenue from SaaS arrangements, which allow for the use of a cloud-based software product or service over a contractually determined period of time without taking possession of software, is accounted for as subscriptions and is recognized as revenue ratably, on a straight-line basis, over the subscription period beginning on the date the service is first made available to customers.

Revenue from DFI systems and CV systems (including Characterization services) that do not include performance incentives based on customers’ yield achievement is recognized primarily as services are performed. Where there are distinct performance obligations, we allocate revenue to all deliverables based on their SSPs. For these contracts with multiple performance obligations, we allocate the transaction price of the contract to each performance obligation on a relative basis using SSP attributed to each performance obligation. Where there are not discrete performance obligations, historically, revenue is primarily recognized as services are performed using a percentage of completion method based on costs or labor-hours inputs, whichever is the most appropriate measure of the progress towards completion of the contract. The estimation of percentage of completion method is complex and subject to many variables that require significant judgment.

Integrated Yield Ramp Revenue

Integrated Yield Ramp revenue is derived from our yield ramp engagements that include Gainshare or other performance incentives based on customers’ yield achievement.

Revenue under these project–based contracts, which are delivered over a specific period of time typically for a fixed fee component paid on a set schedule, is recognized as services are performed using a percentage of completion method based on costs or labor-hours inputs, whichever is the most appropriate measure of the progress towards completion of the contract. Where there are distinct performance obligations, we allocate revenue to all deliverables based on their SSPs and allocate the transaction price of the contract to each performance obligation on a relative basis using SSP. Similar to the services provided in connection with DFI systems and CV systems that are contributing to Analytics revenue, due to the nature of the work

30

performed in these arrangements, the estimation of percentage of completion method is complex and subject to many variables that require significant judgment.

The Gainshare contained in the yield ramp contracts is a variable fee related to continued usage of our IP after the fixed-fee service period ends, based on the customers’ yield achievement. Revenue derived from Gainshare is contingent upon our customers reaching certain defined production yield levels. Gainshare periods are generally subsequent to the delivery of all contractual services and performance obligations. We record Gainshare as a usage-based royalty derived from customers’ usage of intellectual property and record it in the same period in which the usage occurs.

Income Taxes

We are required to assess whether it is “more-likely-than-not” that we will realize our DTAs. If we believe that they are not likely to be fully realizable before the expiration dates applicable to such assets, then to the extent we believe that recovery is not likely, we must establish a valuation allowance. Based on all available evidence, both positive and negative, we determined a full valuation allowance was still appropriate for our U.S. federal and state net DTAs, primarily driven by a cumulative loss incurred over the 12-quarter period ended September 30, 2023, and the likelihood that we may not utilize tax attributes before they expire. The valuation allowance was approximately $59.2 million as of September 30, 2023, and December 31, 2022. We will continue to evaluate the need for a valuation allowance and may change our conclusion in a future period based on changes in facts (e.g., 12-quarter cumulative profit, significant new revenue, etc.). If we conclude that we are more-likely-than-not to utilize some or all of our U.S. DTAs, we will release some or all of our valuation allowance and our tax provision will decrease in the period in which we make such determination.

We evaluate our DTAs for realizability considering both positive and negative evidence, including our historical financial performance, projections of future taxable income, future reversals of existing taxable temporary differences, tax planning strategies and any carryback availability. In evaluating the need for a valuation allowance, we estimate future taxable income based on management approved business plans. This process involves significant management judgment about assumptions that are subject to change from period to period based on changes in tax laws or variances between future projected operating performance and actual results. Changes in the net DTAs, less offsetting valuation allowance, in a period are recorded through the income tax provision and could have a material impact on the condensed consolidated statements of comprehensive income (loss).

Our income tax calculations are based on the application of applicable U.S. federal, state, and/or foreign tax law. Our tax filings, however, are subject to audit by the respective tax authorities. Accordingly, we recognize tax liabilities based upon our estimate of whether, and the extent to which, additional taxes will be due when such estimates are more-likely-than-not to be sustained. An uncertain income tax position will not be recognized if it has less than a 50% likelihood of being sustained. To the extent the final tax liabilities are different than the amounts originally accrued, the increases or decreases are recorded as income tax expense or benefit in the condensed consolidated statements of comprehensive income (loss). As of September 30, 2023, no deferred taxes have been provided on undistributed earnings from our international subsidiaries. We intend to reinvest the earnings of our non-U.S. subsidiaries in those operations indefinitely. As such, we have not provided for any foreign withholding taxes on the earnings of foreign subsidiaries as of September 30, 2023. The earnings of our foreign subsidiaries are taxable in the U.S. in the year earned under the Global Intangible Low-Taxed Income rules implemented under 2017 Tax Cuts and Jobs Act.

The CHIPS Act was signed into U.S. law on August 9, 2022. The CHIPS Act is intended to increase domestic competitiveness in semiconductor manufacturing capacity, increase research and development in computing, artificial intelligence, clean energy, and nanotechnology through federal government programs and incentives over the next ten years. The CHIPS Act includes an advanced manufacturing tax credit equal to 25% of qualified investments in property purchased for an advanced manufacturing facility. We are evaluating the potential benefits of CHIPS Act to our business.

Stock-Based Compensation

We account for stock-based compensation using the fair value method, which requires us to measure stock-based compensation based on the grant-date fair value of the awards and recognize the compensation expense over the requisite service period. As stock-based compensation expense recognized is based on awards ultimately expected to vest, it has been

31

reduced for estimated forfeitures. Forfeitures are estimated at the time of grant and revised, if necessary, in subsequent periods if actual forfeitures differ from those estimates.

The fair value of our restricted stock units is equal to the market value of our common stock on the date of the grant. These awards are subject to time-based vesting which generally occurs over a period of four years.

The fair value of our stock options is estimated using the Black-Scholes-Merton option-pricing model, which incorporates various assumptions including volatility, expected life and interest rates. The expected volatility is based on the historical volatility of our common stock over the most recent period commensurate with the estimated expected life of our stock options. The expected life is based on historical experience and on the terms and conditions of the stock options granted. The interest rate assumption is based upon observed Treasury yield curve rates appropriate for the expected life of our stock options.

Valuation of Long-lived Assets including Goodwill and Intangible Assets

We record goodwill when the purchase consideration of an acquisition exceeds the fair value of the net tangible and identified intangible assets as of the date of acquisition. We have one operating segment and one operating unit. We perform an annual impairment assessment of goodwill during the fourth quarter of each calendar year or more frequently, if required to determine if any events or circumstances exist, such as an adverse change in business climate or a decline in the overall industry demand, that would indicate that it would more likely than not reduce the fair value of a reporting unit below its carrying amount, including goodwill. If events or circumstances do not indicate that the fair value of a reporting unit is below its carrying amount, then goodwill is not considered to be impaired and no further testing is required. If the carrying amount exceeds its fair value, an impairment loss would be recognized equal to the amount of excess, limited to the amount of total goodwill. There was no impairment of goodwill for the three and nine months ended September 30, 2023.

Our long-lived assets, excluding goodwill, consist of property, equipment, and intangible assets. We periodically review our long-lived assets for impairment. For assets to be held and used, we initiate our review whenever events or changes in circumstances indicate that the carrying amount of a long-lived asset group may not be recoverable. Recoverability of an asset group is measured by comparison of its carrying amount to the expected future undiscounted cash flows that the asset group is expected to generate. If it is determined that an asset group is not recoverable, an impairment loss is recorded in the amount by which the carrying amount of the asset group exceeds its fair value. There was no impairment of long-lived assets for the three and nine months ended September 30, 2023.

Recent Accounting Pronouncements and Accounting Changes

See Note 1, Basis of Presentation and Summary of Significant Accounting Policies, to our unaudited condensed consolidated financial statements in this Quarterly Report on Form 10-Q, for a description of recent accounting pronouncements and accounting changes, including the expected dates of adoption and estimated effects, if any, on our condensed consolidated financial statements.

32

Results of Operations

Discussion of Financial Data for the Three and Nine Months ended September 30, 2023 and 2022

Revenues, Costs of Revenues, and Gross Margin

Three Months Ended

Nine Months Ended

September 30, 

Change

September 30, 

Change

(Dollars in thousands)

2023

    

2022

    

$

    

%

 

    

2023

    

2022

    

$

    

%

 

Revenues:

  

 

  

 

  

 

  

 

  

 

  

 

  

 

  

Analytics

$

39,497

$

32,879

$

6,618

 

20

%

$

112,957

$

94,422

$

18,535

 

20

%

Integrated Yield Ramp

 

2,853

 

6,981

 

(4,128)

 

(59)

%

 

11,753

 

13,604

 

(1,851)

 

(14)

%

Total revenues

42,350

39,860

2,490

 

6

%

124,710

108,026

16,684

 

15

%

Costs of revenues

 

14,282

 

12,545

 

1,737

 

14

%

 

38,555

 

36,116

 

2,439

 

7

%

Gross profit

$

28,068

$

27,315

$

753

 

3

%

$

86,155

$

71,910

$

14,245

 

20

%

Gross margin

 

66

%  

 

69

%  

 

  

 

 

69

%  

 

67

%  

 

  

 

Analytics revenue as a percentage of total revenues

 

93

%  

 

82

%  

 

  

 

  

 

91

%  

 

87

%  

 

  

 

  

Integrated Yield Ramp revenue as a percentage of total revenues

 

7

%  

 

18

%  

 

  

 

  

 

9

%  

 

13

%  

 

  

 

  

Analytics Revenue

Analytics revenue increased $6.6 million for the three months ended September 30, 2023, compared to the three months ended September 30, 2022. The increase in Analytics revenue was driven by increases in revenue from DFI and CV systems, including a sales-type lease of a DFI asset, and an increase in revenue from Exensio software licenses, partially offset by a decrease in revenues from Cimetrix software licenses due to a decrease in orders for runtime licenses.

Analytics revenue increased $18.5 million for the nine months ended September 30, 2023, compared to the nine months ended September 30, 2022. The increase in Analytics revenue was driven by increases in revenue from DFI and CV systems, including a sales-type lease of a DFI asset, and an increase in revenue from Exensio software licenses, partially offset by a decrease in revenues from Cimetrix software licenses due to a decrease in orders for runtime licenses.

Integrated Yield Ramp Revenue

Integrated Yield Ramp revenue decreased $4.1 million for the three months ended September 30, 2023, compared to the three months ended September 30, 2022, primarily due to a decrease in Gainshare from decreased customer wafer shipments at non-leading-edge nodes and a decrease in hours worked on fixed fees engagements.

Integrated Yield Ramp revenue decreased $1.9 million for the nine months ended September 30, 2023, compared to the nine months ended September 30, 2022, primarily due to a decrease in Gainshare from decreased customer wafer shipments at non-leading-edge nodes and a decrease in hours worked on fixed fees engagements.

Our Integrated Yield Ramp revenue may continue to fluctuate from period to period primarily due to the contribution of Gainshare, which is dependent on many factors that are outside our control, including among others, continued production of ICs by our customers at facilities at which we generate Gainshare, sustained yield improvements by our customers, and whether we enter into new contracts containing Gainshare.

Our Analytics and Integrated Yield Ramp revenues may also fluctuate in the future and are dependent on a number of factors, including the semiconductor industry’s continued acceptance of our products, services and solutions, the timing of purchases by existing and new customers, cancellations by existing customers, and our ability to attract new customers and

33

penetrate new markets, supply chain challenges and further penetration of our current customer base. Fluctuations in future results may also occur if any of our significant customers renegotiate pre-existing contractual commitments, including due to adverse changes in their own business.

Costs of Revenues

Costs of revenues consist primarily of costs incurred to provide and support our services, costs recognized in connection with licensing our software, IT and facilities-related costs and amortization of acquired technology. Service costs include material costs, hardware costs (including cost of leased assets under sales-type lease), personnel-related costs (including compensation), employee benefits, bonus and stock-based compensation expense, subcontractor costs, overhead costs, travel expenses, and allocated facilities-related costs. Software license costs consist of costs associated with third-party cloud-delivery related expenses and licensing third-party software used by us in providing services to our customers in solution engagements or sold in conjunction with our software products.

The increase in costs of revenues of $1.7 million for the three months ended September 30, 2023, compared to the three months ended September 30, 2022, was primarily due to (i) a $2.0 million increase in hardware costs and (ii) a $0.1 million increase in software licenses and maintenance costs. These increases were partially offset by (i) a $0.2 million decrease in personnel-related costs due to lower compensation expense, partially offset by an increase in stock-based compensation expense, and (ii) a $0.1 million decrease in third-party cloud-delivery costs.

The increase in costs of revenues of $2.4 million for the nine months ended September 30, 2023, compared to the nine months ended September 30, 2022, was primarily due to (i) a $2.3 million increase in hardware costs, (ii) a $0.3 million increase in travel expenses, (iii) a $0.2 million increase in third-party cloud-delivery costs, (iv) a $0.2 million increase in software licenses and maintenance costs, and (v) a $0.1 million increase in subcontractor fees. These increases were partially offset by (i) a $0.3 million decrease in personnel-related costs due to lower compensation expenses, partially offset by an increase in worldwide salaries and increases in headcount and stock-based compensation expense, and (ii) a $0.2 million decrease in facilities and IT-related costs, including depreciation expense.

Gross Margin

Gross margin decreased three percentage points for the three months ended September 30, 2023, to 66%, compared to 69% for the three months ended September 30, 2022. The lower gross margin during the three months ended September 30, 2023, was primarily due to lower Gainshare revenue for the three months ended September 30, 2023.

Gross margin increased two percentage points for the nine months ended September 30, 2023, to 69%, compared to 67% for the nine months ended September 30, 2022. The higher gross margin during the nine months ended September 30, 2023, was primarily due to higher total revenues when compared to the year-ago period.

34

Operating Expenses:

Research and Development

Three Months Ended

Nine Months Ended

September 30, 

Change

September 30, 

Change

(Dollars in thousands)

    

2023

    

2022

    

$

%

 

    

2023

    

2022

    

$

%

 

Research and development

$

13,113

$

14,303

$

(1,190)

 

(8)

%

$

38,428

$

41,766

$

(3,338)

 

(8)

%

As a percentage of total revenues

 

31

%  

 

36

%  

 

  

 

  

 

31

%  

 

39

%  

 

  

 

  

Research and development expenses consist primarily of personnel-related costs including compensation, employee benefits, bonus, and stock-based compensation expense, outside development services, travel expenses, third-party cloud-services related costs, IT and facilities cost allocations to support product development activities.

Research and development expenses decreased $1.2 million for the three months ended September 30, 2023, compared to the three months ended September 30, 2022, primarily due (i) to a $1.1 million decrease in personnel-related costs mostly resulting from lower compensation expenses, partially offset by worldwide salary increases and increases in headcount, and (ii) a $0.2 million decrease in subcontractor fees primarily related to DFI systems. These were partially offset by a $0.1 million increase in travel expenses.

Research and development expenses decreased $3.3 million for the nine months ended September 30, 2023, compared to the nine months ended September 30, 2022, primarily due to (i) a $4.2 million decrease in personnel-related costs mostly resulting from a lower stock-based and other compensation expenses, partially offset by worldwide salary increases and increases in headcount, and (ii) a $0.3 million decrease in facilities and IT-related costs including depreciation expense. These were partially offset by (i) a $0.6 million increase in subcontractor expenses primarily related to Cimetrix and Exensio software, (ii) a $0.3 million increase in third-party cloud-services related costs, and (iii) a $0.3 million increase in travel expenses.

We anticipate our expenses in research and development will fluctuate in absolute dollars from period to period as a result of the size and the timing of product development projects.

Selling, General, and Administrative

Three Months Ended

Nine Months Ended

September 30, 

Change

September 30, 

Change

(Dollars in thousands)

    

2023

    

2022

    

$

%

 

    

2023

    

2022

    

$

%

 

Selling, general, and administrative

$

15,611

$

12,005

$

3,606

 

30

%

$

46,022

$

32,614

$

13,408

 

41

%

As a percentage of total revenues

 

37

%  

 

30

%  

 

  

 

  

 

37

%  

 

30

%  

 

  

 

  

Selling, general, and administrative expenses consist primarily of personnel-related costs including compensation, employee benefits, bonus, commission and stock-based compensation expense for sales, marketing, and general and administrative personnel, legal, tax and accounting services, marketing communications expenses, third-party cloud-services related costs, travel, IT, and facilities cost allocations.

Selling, general, and administrative expenses increased $3.6 million for the three months ended September 30, 2023, compared to the three months ended September 30, 2022, primarily due to (i) a $3.7 million increase in personnel-related costs mainly resulting from increases in stock-based and other compensation expense, including commission, employee benefit costs, headcount and worldwide salary increases and (ii) a $0.2 million increase in travel expenses. These were partially offset by a $0.3 million decrease in legal fees related to the arbitration proceeding over a disputed customer contract.

35

Selling, general, and administrative expenses increased $13.4 million for the nine months ended September 30, 2023, compared to the nine months ended September 30, 2022, primarily due to (i) a $11.2 million increase in personnel-related costs mainly resulting from increases in stock-based and other compensation expense, including commission, employee benefit costs, headcount and worldwide salary increases, (ii) a $1.5 million increase in legal fees related to the arbitration proceeding over a disputed customer contract, (iii) a $0.6 million increase in travel expenses, (iv) a $0.3 million increase in facilities and IT-related costs including depreciation expense, (v) a $0.2 million increase in business acquisition costs, and (vi) a $0.1 million increase in third-party cloud-services related costs. These were partially offset by a $0.4 million decrease in subcontractor expenses.

We anticipate our selling, general, and administrative expenses will fluctuate in absolute dollars from period to period as a result of cost control initiatives and to support increased selling efforts in the future.

Amortization of Acquired Intangible Assets

Three Months Ended

Nine Months Ended

September 30, 

Change

September 30, 

Change

(Dollars in thousands)

    

2023

    

2022

    

$

%

 

    

2023

    

2022

    

$

%

 

Amortization of acquired intangible assets

$

328

$

318

$

10

 

3

%

$

979

$

946

$

33

 

3

%

Amortization of acquired intangible assets primarily consists of amortization of intangibles acquired as a result of certain business combinations and was consistent for the three and nine months ended September 30, 2023 compared to the three and nine months ended September 30, 2022.

Interest and Other Expense (Income), Net

Three Months Ended

 

Nine Months Ended

 

September 30, 

Change

September 30, 

Change

(Dollars in thousands)

    

2023

    

2022

    

$

%

 

    

2023

    

2022

    

$

%

 

Interest and other expense (income), net

$

(2,018)

$

(1,511)

$

507

 

34

%

$

(4,000)

$

(2,812)

$

1,188

 

42

%

Interest and other expense (income), net, primarily consists of interest income and foreign currency transaction exchange gains and losses.

Interest and other expense (income), net increased $0.5 million for the three months ended September 30, 2023, compared to the three months ended September 30, 2022, primarily due to a higher interest income resulting from higher interest rates, partially offset by net unfavorable fluctuations in foreign currency exchange rates which resulted in a lower net foreign currency exchange gain.

Interest and other expense (income), net increased $1.2 million for the nine months ended September 30, 2023, compared to the nine months ended September 30, 2022, primarily due to a higher interest income resulting from higher interest rates, partially offset by net unfavorable fluctuations in foreign currency exchange rates.

Income Tax Expense

Three Months Ended

 

Nine Months Ended

 

September 30, 

Change

September 30, 

Change

(Dollars in thousands)

    

2023

    

2022

    

$

%

 

    

2023

    

2022

    

$

%

 

Income tax expense

$

(6,006)

$

(815)

$

5,191

 

637

%

$

(2,508)

$

(3,308)

$

(800)

 

(24)

%

Income tax expense increased for the three months and decreased for the nine months ended September 30, 2023, compared to the three and nine months ended September 30, 2022, respectively, primarily due to changes in the foreign and

36

state taxes and year-to-date recognition of worldwide pre-tax income (loss) in relation to their forecasted amounts for full years.

Any significant change in our future effective tax rates could adversely impact our consolidated financial position, results of operations and cash flows. Our future tax rates may be adversely affected by a number of factors including increase in expenses not deductible for tax purposes, new or changing tax legislation in the United States and in foreign countries where we are subject to tax jurisdictions, the geographic composition of our pre-tax income, the amount of our pre-tax income as business activities fluctuate, our ability to use tax attributes such as research and development tax credits and net operation losses, the tax effects of employee stock activity, audit examinations with adverse outcomes, changes in accounting principles generally accepted in the United States of America and the effectiveness of our tax planning strategies.

Liquidity and Capital Resources

As of September 30, 2023, our working capital, defined as total current assets less total current liabilities, was $144.4 million, compared to $135.2 million as of December 31, 2022. Total cash, cash equivalents, and short-term investments were $135.4 million as of September 30, 2023, compared to cash, cash equivalents, and short-term investments of $139.2 million as of December 31, 2022. As of September 30, 2023, and December 31, 2022, cash and cash equivalents held by our foreign subsidiaries were $9.1 million and $8.8 million, respectively. We believe that our existing cash resources and anticipated funds from operations will satisfy our cash requirements to fund our operating activities, capital expenditures, other obligations for at least the next twelve months.

Cash Flow Data

The following table summarizes our cash flows for the periods presented:

Nine Months Ended September 30, 

(In thousands)

    

2023

    

2022

    

$ Change

Net cash flows provided by (used in):

 

  

 

  

 

  

Operating activities

$

12,571

$

8,023

$

4,548

Investing activities

 

(14,235)

 

83,354

 

(97,589)

Financing activities

 

(5,577)

 

(24,186)

 

18,609

Effect of exchange rate changes on cash and cash equivalents

 

(763)

 

(1,147)

 

384

Net change in cash and cash equivalents

$

(8,004)

$

66,044

$

(74,048)

Net Cash Flows Provided by Operating Activities

Cash flows provided by operating activities during the nine months ended September 30, 2023, consisted of net income, adjusted for certain non-cash items which primarily consisted of depreciation and amortization, stock-based compensation expense, amortization of acquired intangible expense, amortization of costs capitalized to obtain revenue contracts and net change in operating assets and liabilities.

Net cash flows provided by operating activities was $12.6 million for the nine months ended September 30, 2023, compared to net cash flows provided by operating activities of $8.0 million for the nine months ended September 30, 2022. The $4.6 million increase in cash flows from operating activities between the periods was driven primarily by (i) collections from customers and (ii) a significant increase in net income compared to the same period in 2022, partially offset by payments

37

made to vendors and under the Company’s bonus plan. Net income was $2.2 million for the nine months ended September 30, 2023, compared to a net loss of $3.9 million for the nine months ended September 30, 2022.

The major contributors to the net change in operating assets and liabilities for the nine months ended September 30, 2023, were as follows:

Accounts receivable decreased by $1.2 million, primarily due to collections from customers, partially offset by contractual invoicing activity and an increase in unbilled accounts receivables due to the timing of billing and revenue recognition;
Prepaid expense and other current assets increased by $7.0 million, primarily due to increases in contract assets, lease receivables, income tax receivable and deferred commission;
Accounts payable decreased by $2.7 million primarily due to the timing of payments of vendor invoices;
Accrued compensation and related benefits decreased by $5.3 million primarily due to the payments of accrued bonuses net of new bonus accruals, a decrease in accrued commissions, and exercise of purchase rights under employee stock purchase plans;
Deferred revenue increased by $3.7 million primarily due to the timing of billing and revenue recognition; and
Billings in excess of recognized revenues decreased by $1.6 million primarily due to the timing of billing and revenue recognition.

Net Cash Flows Provided by (Used in) Investing Activities

Net cash used in investing activities was $14.2 million for the nine months ended September 30, 2023, compared to net cash provided by investing activities of $83.4 million for the nine months ended September 30, 2022.

For the nine months ended September 30, 2023, cash used in investing activities primarily related to purchases of short-term investments of $32.3 million, purchases of and prepayments for property and equipment of $8.9 million primarily related to our DFI and CV systems, payment for business acquisition, net of cash acquired, of $1.8 million, partially offset by proceeds from maturities and sales of short-term investments of $28.8 million.

For the nine months ended September 30, 2022, cash provided by investing activities primarily related to proceeds from maturities and sales of short-term investments of $136.0 million, partially offset by purchases of short-term investments of $45.8 million, and purchases of and prepayments for property and equipment of $6.7 million primarily related to our DFI systems and CV systems.

Net Cash Flows Used in Financing Activities

Net cash used in financing activities was $5.6 million for the nine months ended September 30, 2023, compared to $24.2 million for the nine months ended September 30, 2022.

For the nine months ended September 30, 2023, net cash used in financing activities primarily consisted of $9.1 million in cash payments for taxes related to net share settlement of equity awards, repurchases of common stock of $0.8 million, partially offset by $4.3 million of proceeds from our employee stock purchase plans and exercise of stock options.

For the nine months ended September 30, 2022, net cash used in financing activities primarily consisted of $22.5 million for the repurchase of shares of our common stock and $5.8 million in cash payments for taxes related to net share settlement of equity awards, partially offset by $4.1 million of proceeds from our employee stock purchase plans and exercise of stock options.

38

Related Party Transactions

Refer to Note 12, Strategic Partnership Agreement with Advantest and Related Party Transactions, to our unaudited condensed consolidated financial statements in this Quarterly Report on Form 10-Q, for the discussion about related party transactions between the Company and Advantest (as defined therein).

Off-Balance Sheet Agreements

We do not have any off-balance sheet arrangements, investments in special purpose entities or undisclosed borrowings or debt.

Item 3. Quantitative and Qualitative Disclosures about Market Risk

The following discusses our exposure to market risk related to changes in interest rates and foreign currency exchange rates. We do not currently own any equity investments, nor do we expect to own any in the foreseeable future. This discussion contains forward-looking statements that are subject to risks and uncertainties. Actual results could vary materially as a result of a number of factors.

Interest Rate Risk.  As of September 30, 2023, we had cash, cash equivalents and short-term investments of $135.4 million. Cash and cash equivalents consisted of cash and highly liquid money market instruments and short-term investments consisted of U.S. Government securities. We would not expect our operating results or cash flows to be affected to any significant degree by the effect of a sudden change in market interest on our portfolio. A hypothetical increase in market interest rates of 100 basis points from the market rates in effect as of September 30, 2023, would cause the fair value of these investments to decrease by an immaterial amount which would not have significantly impacted our financial position or results of operations.

As of September 30, 2023, and periodically throughout the year, we have maintained cash balances in various operating accounts in excess of federally insured limits. We limit the amount of credit exposure to any financial institution by evaluating the creditworthiness of the financial institutions with which we invest and investing through more than one financial institution.

Foreign Currency and Exchange Risk. Certain of our receivables and payables for our international offices are denominated in the local currency, including the Euro, Yen and RMB. Therefore, a portion of our revenues and operating expenditures are subject to foreign currency risks. From time to time, we enter into foreign currency forward contracts to reduce the exposure to foreign currency exchange rate fluctuations on certain foreign currency denominated monetary assets and liabilities. We do not use foreign currency forward contracts for speculative or trading purposes. We record these forward contracts at fair value. The counterparty to these foreign currency forward contracts is a financial institution that we believe is creditworthy, and therefore, we believe the credit risk of counterparty non-performance is not significant. The change in fair value of these contracts is recorded in earnings as a component of other income (expense), net and offsets the change in fair value of foreign currency denominated monetary assets and liabilities, which is also recorded in other income (expense), net. As of September 30, 2023, we had no outstanding forward contracts.

Item 4. Controls and Procedures

Evaluation of Disclosure Controls and Procedures

Our management, with the participation of our principal executive officer and principal financial and accounting officer, evaluated the effectiveness of our “disclosure controls and procedures” as defined in Exchange Act Rules 13a-15(e) and 15d-15(e) as of September 30, 2023, in connection with the filing of this Quarterly Report on Form 10-Q. Based on that evaluation as of September 30, 2023, our principal executive officer and principal financial and accounting officer concluded that our disclosure controls and procedures were effective to ensure that information we are required to disclose in reports that we file or submit under the Exchange Act is recorded, processed, summarized and reported within the time periods specified in the rules and forms of the SEC and is accumulated and communicated to our management as appropriate to allow timely decisions regarding required disclosure.

39

Changes in Internal Control over Financial Reporting

There were no changes in the Company’s internal control over financial reporting during the three months ended September 30, 2023, that have materially affected, or are reasonably likely to materially affect, the Company’s internal control over financial reporting.

PART II — OTHER INFORMATION

Item 1. Legal Proceedings

Refer to Note 11, Commitments and Contingencies to our condensed consolidated financial statements in this Quarterly Report on Form 10-Q, for information regarding our legal proceedings.

Item 1A. Risk Factors

As of the date of this Quarterly Report on Form 10-Q, there have been no material changes from the risk factors disclosed in our Annual Report on Form 10-K for the year ended December 31, 2022, filed with the SEC on March 1, 2023. Any of such factors could result in a significant or material adverse effect on our result of operations or financial conditions. Additional risk factors not presently known to us or that we currently deem immaterial may also impair our business or results of operations. We may disclose changes to such factors or disclose additional factors from time to time in our future filings with the SEC.

Item 2. Unregistered Sales of Equity Securities and Use of Proceeds

Repurchase of Shares of Company Equity Securities

On April 11, 2022, the Board of Directors adopted a stock repurchase program (the “2022 Program”) to repurchase up to $35.0 million of the Company’s common stock both on the open market and in privately negotiated transactions, from time to time, over the next two years.

The table below sets forth the information with respect to purchases made under the 2022 Program by or on behalf of the Company or any “affiliated purchaser” (as the term is defined in Rule 10b-18(a)(3) under the Exchange Act) of our common stock during the three months ended September 30, 2023.

Approximate

Total Number

 

Dollar

of Shares

 

Value of

Purchased

 

Shares that

 

Total

as Part of

 

May Yet Be

 

Number of

Publicly

 

Purchased

 

Shares

Average

Announced

 

Under

 

Purchased

Price Paid

Programs

 

Programs

Period

    

(in thousands)

    

Per Share

    

(in thousands)

    

(in thousands)

July 1, 2023 through July 31, 2023

$

 

$

18,307

August 1, 2023 through August 31, 2023

21

$

34.81

 

$

17,564

September 1, 2023 through September 30, 2023

$

 

$

17,564

Total

21

$

See Note 5, Stock Repurchase Program, to our unaudited condensed consolidated financial statements in this Quarterly Report on Form 10 Q for more information on the 2022 Program.

40

Item 3. Defaults Upon Senior Securities

None.

Item 4. Mine Safety Disclosures

None.

Item 5. Other Information

Insider Adoption or Termination of Trading Arrangements

During the quarter ended September 30, 2023, none of our directors or officers informed us of the adoption or termination of a “Rule 10b5-1 trading arrangement” or “non-Rule 10b5-1 trading arrangement,” as those terms are defined in Regulation S-K, Item 408.

Item 6. Exhibits

Exhibit
Number

    

Description

31.01

Certification of the principal executive officer pursuant to Exchange Act Rules 13a-14(a) and 15d-14(a), as adopted pursuant to Section 302 of the Sarbanes-Oxley Act of 2002.†

  

  

31.02

Certification of the principal financial and accounting officer pursuant to Exchange Act Rules 13a-14(a) and 15d-14(a), as adopted pursuant to Section 302 of the Sarbanes-Oxley Act of 2002.†

  

  

32.01

Certification pursuant to 18 U.S.C. Section 1350, as adopted pursuant to Section 906 of the Sarbanes-Oxley Act of 2002.*

  

  

32.02

Certification pursuant to 18 U.S.C. Section 1350, as adopted pursuant to Section 906 of the Sarbanes-Oxley Act of 2002.*

  

  

101

The following financial statements from the Company’s Quarterly Report on Form 10-Q for the quarter ended September 30, 2023, formatted in Inline XBRL: (i) Condensed Consolidated Balance Sheets, (ii) Condensed Consolidated Statements of Comprehensive Income (Loss), (iii) Condensed Consolidated Statements of Stockholders’ Equity, (iv) Condensed Consolidated Statements of Cash Flows and (v) Notes to Condensed Consolidated Financial Statements, tagged as blocks of text and including detailed tags.†

 

 

104

Cover Page Interactive Data File (formatted as Inline XBRL and contained in Exhibit 101).†

*

Furnished, and not filed.

Filed herewith.

41

SIGNATURES

Pursuant to the requirements of the Securities Exchange Act of 1934, the Registrant has duly caused this report to be signed on its behalf by the undersigned thereunto duly authorized.

PDF SOLUTIONS, INC.

Date: November 8, 2023

By:

/s/ JOHN K. KIBARIAN

John K. Kibarian

President and Chief Executive Officer

(principal executive officer)

Date: November 8, 2023

By:

/s/ ADNAN RAZA

Adnan Raza

Executive Vice President, Finance and Chief

Financial Officer

(principal financial and accounting officer)

42

EX-31.01 2 pdfs-20230930xex31d01.htm EX-31.01

Exhibit 31.01

CERTIFICATIONS

I, John K. Kibarian, certify that:

1. I have reviewed this quarterly report on Form 10-Q of PDF Solutions, Inc.;

2. Based on my knowledge, this report does not contain any untrue statement of a material fact or omit to state a material fact necessary to make the statements made, in light of the circumstances under which such statements were made, not misleading with respect to the period covered by this report;

3. Based on my knowledge, the financial statements, and other financial information included in this report, fairly present in all material respects the financial condition, results of operations and cash flows of the registrant as of, and for, the periods presented in this report;

4. The registrant’s other certifying officer(s) and I are responsible for establishing and maintaining disclosure controls and procedures (as defined in Exchange Act Rules 13a-15(e) and 15d-15(e)) and internal control over financial reporting (as defined in Exchange Act Rules 13a-15(f) and 15d-15(f)) for the registrant and have:

(a) Designed such disclosure controls and procedures, or caused such disclosure controls and procedures to be designed under our supervision, to ensure that material information relating to the registrant, including its consolidated subsidiaries, is made known to us by others within those entities, particularly during the period in which this report is being prepared;

(b) Designed such internal control over financial reporting, or caused such internal control over financial reporting to be designed under our supervision, to provide reasonable assurance regarding the reliability of financial reporting and the preparation of financial statements for external purposes in accordance with generally accepted accounting principles;

(c) Evaluated the effectiveness of the registrant’s disclosure controls and procedures and presented in this report our conclusions about the effectiveness of the disclosure controls and procedures, as of the end of the period covered by this report based on such evaluation; and

(d) Disclosed in this report any change in the registrant’s internal control over financial reporting that occurred during the registrant’s most recent fiscal quarter (the registrant’s fourth fiscal quarter in the case of an annual report) that has materially affected, or is reasonably likely to materially affect, the registrant’s internal control over financial reporting; and

5. The registrant’s other certifying officer(s) and I have disclosed, based on our most recent evaluation of internal control over financial reporting, to the registrant’s auditors and the audit committee of registrant’s board of directors (or persons performing the equivalent functions):

(a) All significant deficiencies and material weaknesses in the design or operation of internal control over financial reporting which are reasonably likely to adversely affect the registrant’s ability to record, process, summarize and report financial information; and

(b) Any fraud, whether or not material, that involves management or other employees who have a significant role in the registrant’s internal control over financial reporting.

  

By:

 /s/ John K. Kibarian

  

  

John K. Kibarian

  

  

President and Chief Executive Officer

  

  

(principal executive officer)

Date: November 8, 2023


EX-31.02 3 pdfs-20230930xex31d02.htm EX-31.02

Exhibit 31.02

CERTIFICATIONS

I, Adnan Raza, certify that:

1. I have reviewed this quarterly report on Form 10-Q of PDF Solutions, Inc.;

2. Based on my knowledge, this report does not contain any untrue statement of a material fact or omit to state a material fact necessary to make the statements made, in light of the circumstances under which such statements were made, not misleading with respect to the period covered by this report;

3. Based on my knowledge, the financial statements, and other financial information included in this report, fairly present in all material respects the financial condition, results of operations and cash flows of the registrant as of, and for, the periods presented in this report;

4. The registrant’s other certifying officer(s) and I are responsible for establishing and maintaining disclosure controls and procedures (as defined in Exchange Act Rules 13a-15(e) and 15d-15(e)) and internal control over financial reporting (as defined in Exchange Act Rules 13a-15(f) and 15d-15(f)) for the registrant and have:

(a) Designed such disclosure controls and procedures, or caused such disclosure controls and procedures to be designed under our supervision, to ensure that material information relating to the registrant, including its consolidated subsidiaries, is made known to us by others within those entities, particularly during the period in which this report is being prepared;

(b) Designed such internal control over financial reporting, or caused such internal control over financial reporting to be designed under our supervision, to provide reasonable assurance regarding the reliability of financial reporting and the preparation of financial statements for external purposes in accordance with generally accepted accounting principles;

(c) Evaluated the effectiveness of the registrant’s disclosure controls and procedures and presented in this report our conclusions about the effectiveness of the disclosure controls and procedures, as of the end of the period covered by this report based on such evaluation; and

(d) Disclosed in this report any change in the registrant’s internal control over financial reporting that occurred during the registrant’s most recent fiscal quarter (the registrant’s fourth fiscal quarter in the case of an annual report) that has materially affected, or is reasonably likely to materially affect, the registrant’s internal control over financial reporting; and

5. The registrant’s other certifying officer(s) and I have disclosed, based on our most recent evaluation of internal control over financial reporting, to the registrant’s auditors and the audit committee of registrant’s board of directors (or persons performing the equivalent functions):

(a) All significant deficiencies and material weaknesses in the design or operation of internal control over financial reporting which are reasonably likely to adversely affect the registrant’s ability to record, process, summarize and report financial information; and

(b) Any fraud, whether or not material, that involves management or other employees who have a significant role in the registrant’s internal control over financial reporting.

  

By:

/s/ Adnan Raza

  

  

Adnan Raza

  

  

Executive Vice President, Finance

and Chief Financial Officer

  

  

(principal financial and accounting

officer)

Date: November 8, 2023


EX-32.01 4 pdfs-20230930xex32d01.htm EX-32.01

Exhibit 32.01

CERTIFICATION PURSUANT TO

18 U.S.C. SECTION 1350,

AS ADOPTED PURSUANT TO

SECTION 906 OF THE SARBANES-OXLEY ACT OF 2002

In connection with the Quarterly Report of PDF Solutions, Inc. (the “Company”) on Form 10-Q for the quarter ended September 30, 2023, as filed with the Securities and Exchange Commission on November 8, 2023 (the “Report”), I, John K. Kibarian, President and Chief Executive Officer of the Company, certify, pursuant to 18 U.S.C. Section 1350, as adopted pursuant to Section 906 of the Sarbanes-Oxley Act of 2002, that, to my knowledge:

(1) The Report fully complies with the requirements of section 13(a) or 15(d) of the Securities Exchange Act of 1934; and

(2) The information contained in the Report fairly presents, in all material respects, the financial condition and result of operations of the Company.

  

By:

/s/ John K. Kibarian

  

  

John K. Kibarian

  

  

President and Chief Executive

Officer

  

  

(principal executive officer)

Date: November 8, 2023


EX-32.02 5 pdfs-20230930xex32d02.htm EX-32.02

Exhibit 32.02

CERTIFICATION PURSUANT TO

18 U.S.C. SECTION 1350,

AS ADOPTED PURSUANT TO

SECTION 906 OF THE SARBANES-OXLEY ACT OF 2002

In connection with the Quarterly Report of PDF Solutions, Inc. (the “Company”) on Form 10-Q for the quarter ended September 30, 2023, as filed with the Securities and Exchange Commission on November 8, 2023 (the “Report”), I, Adnan Raza, Executive Vice President, Finance and Chief Financial Officer of the Company, certify, pursuant to 18 U.S.C. Section 1350, as adopted pursuant to Section 906 of the Sarbanes-Oxley Act of 2002, that, to my knowledge:

(1) The Report fully complies with the requirements of section 13(a) or 15(d) of the Securities Exchange Act of 1934; and

(2) The information contained in the Report fairly presents, in all material respects, the financial condition and result of operations of the Company.

10

  

By:

/s/ Adnan Raza

  

  

Adnan Raza

  

  

Executive Vice President, Finance

and Chief Financial Officer

  

  

(principal financial and accounting

officer)

Date: November 8, 2023


EX-101.SCH 6 pdfs-20230930.xsd EX-101.SCH 00100 - Statement - CONDENSED CONSOLIDATED BALANCE SHEETS link:presentationLink link:calculationLink link:definitionLink 00200 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF COMPREHENSIVE LOSS link:presentationLink link:calculationLink link:definitionLink 00400 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF CASH FLOWS link:presentationLink link:calculationLink link:definitionLink 40302 - Disclosure - BALANCE SHEET COMPONENTS - Property and Equipment (Details) link:presentationLink link:calculationLink link:definitionLink 40304 - Disclosure - BALANCE SHEET COMPONENTS - Annual Amortization of Identifiable Intangible Assets (Details) link:presentationLink link:calculationLink link:definitionLink 40402 - Disclosure - LEASES - Lease Cost (Details) link:presentationLink link:calculationLink link:definitionLink 40403 - Disclosure - LEASES - Maturity of Operating Lease Liabilities (Details) link:presentationLink link:calculationLink link:definitionLink 40504 - Disclosure - Note 5 - BALANCE SHEET COMPONENTS - Intangible Asset (Details) (Calc 2) link:presentationLink link:calculationLink link:definitionLink 40504 - Disclosure - Note 5 - BALANCE SHEET COMPONENTS - Intangible Asset (Details) (Calc 3) link:presentationLink link:calculationLink link:definitionLink 40703 - Disclosure - Note 7 - LEASES - Maturity of Operating Lease Liabilities (Details) (Calc 2) link:presentationLink link:calculationLink link:definitionLink 40801 - Disclosure - NET INCOME (LOSS) PER SHARE - Calculation of Earnings Per Share (Details) link:presentationLink link:calculationLink link:definitionLink 41001 - Disclosure - FAIR VALUE MEASUREMENTS - Fair Value, Assets Measured on a Recurring Basis (Details) link:presentationLink link:calculationLink link:definitionLink 41302 - Disclosure - BUSINESS COMBINATION - Fair Values of Assets Acquired and Liabilities Assumed (Details) link:presentationLink link:calculationLink link:definitionLink 00090 - Document - Document And Entity Information link:presentationLink link:calculationLink link:definitionLink 00105 - Statement - CONDENSED CONSOLIDATED BALANCE SHEETS (Parentheticals) link:presentationLink link:calculationLink link:definitionLink 00300 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF STOCKHOLDERS EQUITY link:presentationLink link:calculationLink link:definitionLink 20102 - Disclosure - SIGNIFICANT ACCOUNTING POLICIES (Policies) link:presentationLink link:calculationLink link:definitionLink 31303 - Disclosure - BUSINESS COMBINATION (Tables) link:presentationLink link:calculationLink link:definitionLink 40201 - Disclosure - REVENUE FROM CONTRACT WITH CUSTOMERS (Details) link:presentationLink link:calculationLink link:definitionLink 40202 - Disclosure - REVENUE FROM CONTRACT WITH CUSTOMERS - Disaggregation of Revenue (Details) link:presentationLink link:calculationLink link:definitionLink 40203 - Disclosure - REVENUE FROM CONTRACT WITH CUSTOMERS - Additional information (Details) link:presentationLink link:calculationLink link:definitionLink 40203 - Disclosure - REVENUE FROM CONTRACT WITH CUSTOMERS - Additional information Default (Details) link:presentationLink link:calculationLink link:definitionLink 40301 - Disclosure - BALANCE SHEET COMPONENTS (Details) link:presentationLink link:calculationLink link:definitionLink 40303 - Disclosure - BALANCE SHEET COMPONENTS - Intangible Assets (Details) link:presentationLink link:calculationLink link:definitionLink 40401 - Disclosure - LEASES - Other (Details) link:presentationLink link:calculationLink link:definitionLink 40501 - Disclosure - STOCKHOLDERS EQUITY (Details) link:presentationLink link:calculationLink link:definitionLink 40601 - Disclosure - EMPLOYEE BENEFIT PLANS - Other (Details) link:presentationLink link:calculationLink link:definitionLink 40602 - Disclosure - EMPLOYEE BENEFIT PLANS - Valuation Assumptions for ESPP (Details) link:presentationLink link:calculationLink link:definitionLink 40603 - Disclosure - EMPLOYEE BENEFIT PLANS - Allocation of Recognized Period Costs (Details) link:presentationLink link:calculationLink link:definitionLink 40604 - Disclosure - EMPLOYEE BENEFIT PLANS - Stock Options Activity (Details) link:presentationLink link:calculationLink link:definitionLink 40605 - Disclosure - EMPLOYEE BENEFIT PLANS - Nonvested Restricted Stock Units Activity (Details) link:presentationLink link:calculationLink link:definitionLink 40701 - Disclosure - INCOME TAXES (Details) link:presentationLink link:calculationLink link:definitionLink 40802 - Disclosure - NET INCOME (LOSS) PER SHARE - Anti-dilutive Securities (Details) link:presentationLink link:calculationLink link:definitionLink 40901 - Disclosure - CUSTOMER AND GEOGRAPHIC INFORMATION - Other (Details) link:presentationLink link:calculationLink link:definitionLink 40902 - Disclosure - CUSTOMER AND GEOGRAPHIC INFORMATION - Revenue Percentage by Major Customers (Details) link:presentationLink link:calculationLink link:definitionLink 40903 - Disclosure - CUSTOMER AND GEOGRAPHIC INFORMATION - Revenues by Geographic Area (Details) link:presentationLink link:calculationLink link:definitionLink 40904 - Disclosure - CUSTOMER AND GEOGRAPHIC INFORMATION - Long-lived Assets by Geographic Area (Details) link:presentationLink link:calculationLink link:definitionLink 41101 - Disclosure - COMMITMENTS AND CONTINGENCIES (Details) link:presentationLink link:calculationLink link:definitionLink 41201 - Disclosure - STRATEGIC PARTNERSHIP AGREEMENT WITH ADVANTEST AND RELATED PARTY TRANSACTIONS (Details) link:presentationLink link:calculationLink link:definitionLink 41301 - Disclosure - BUSINESS COMBINATION - Other (Details) link:presentationLink link:calculationLink link:definitionLink 10101 - Disclosure - DESCRIPTION OF BUSINESS AND SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES link:presentationLink link:calculationLink link:definitionLink 10201 - Disclosure - REVENUE FROM CONTRACT WITH CUSTOMERS link:presentationLink link:calculationLink link:definitionLink 10301 - Disclosure - BALANCE SHEET COMPONENTS link:presentationLink link:calculationLink link:definitionLink 10401 - Disclosure - LEASES link:presentationLink link:calculationLink link:definitionLink 10501 - Disclosure - STOCKHOLDERS' EQUITY link:presentationLink link:calculationLink link:definitionLink 10601 - Disclosure - EMPLOYEE BENEFIT PLANS link:presentationLink link:calculationLink link:definitionLink 10701 - Disclosure - INCOME TAXES link:presentationLink link:calculationLink link:definitionLink 10801 - Disclosure - NET INCOME (LOSS) PER SHARE link:presentationLink link:calculationLink link:definitionLink 10901 - Disclosure - CUSTOMER AND GEOGRAPHIC INFORMATION link:presentationLink link:calculationLink link:definitionLink 11001 - Disclosure - FAIR VALUE MEASUREMENTS link:presentationLink link:calculationLink link:definitionLink 11101 - Disclosure - COMMITMENTS AND CONTINGENCIES link:presentationLink link:calculationLink link:definitionLink 11201 - Disclosure - STRATEGIC PARTNERSHIP AGREEMENT WITH ADVANTEST AND RELATED PARTY TRANSACTIONS link:presentationLink link:calculationLink link:definitionLink 11301 - Disclosure - BUSINESS COMBINATION link:presentationLink link:calculationLink link:definitionLink 30203 - Disclosure - REVENUE FROM CONTRACT WITH CUSTOMERS (Tables) link:presentationLink link:calculationLink link:definitionLink 30303 - Disclosure - BALANCE SHEET COMPONENTS (Tables) link:presentationLink link:calculationLink link:definitionLink 30403 - Disclosure - LEASES (Tables) link:presentationLink link:calculationLink link:definitionLink 30603 - Disclosure - EMPLOYEE BENEFIT PLANS (Tables) link:presentationLink link:calculationLink link:definitionLink 30803 - Disclosure - NET INCOME (LOSS) PER SHARE (Tables) link:presentationLink link:calculationLink link:definitionLink 30903 - Disclosure - CUSTOMER AND GEOGRAPHIC INFORMATION (Tables) link:presentationLink link:calculationLink link:definitionLink 99900 - Disclosure - Standard And Custom Axis Domain Defaults link:presentationLink link:calculationLink link:definitionLink EX-101.CAL 7 pdfs-20230930_cal.xml EX-101.CAL EX-101.DEF 8 pdfs-20230930_def.xml EX-101.DEF EX-101.LAB 9 pdfs-20230930_lab.xml EX-101.LAB EX-101.PRE 10 pdfs-20230930_pre.xml EX-101.PRE XML 11 R1.htm IDEA: XBRL DOCUMENT v3.23.3
Document And Entity Information - shares
9 Months Ended
Sep. 30, 2023
Nov. 03, 2023
Document and Entity Information    
Document Type 10-Q  
Document Quarterly Report true  
Document Period End Date Sep. 30, 2023  
Document Transition Report false  
Entity File Number 000-31311  
Entity Registrant Name PDF SOLUTIONS, INC.  
Entity Incorporation, State or Country Code DE  
Entity Tax Identification Number 25-1701361  
Entity Address, Address Line One 2858 De La Cruz Blvd.  
Entity Address, City or Town Santa Clara  
Entity Address, State or Province CA  
Entity Address, Postal Zip Code 95050  
City Area Code 408  
Local Phone Number 280-7900  
Title of 12(b) Security Common Stock, $0.00015 par value  
Trading Symbol PDFS  
Security Exchange Name NASDAQ  
Entity Current Reporting Status Yes  
Entity Interactive Data Current Yes  
Entity Filer Category Accelerated Filer  
Entity Small Business false  
Entity Emerging Growth Company false  
Entity Shell Company false  
Entity Common Stock, Shares Outstanding   38,261,403
Entity Central Index Key 0001120914  
Amendment Flag false  
Current Fiscal Year End Date --12-31  
Document Fiscal Period Focus Q3  
Document Fiscal Year Focus 2023  
XML 12 R2.htm IDEA: XBRL DOCUMENT v3.23.3
CONDENSED CONSOLIDATED BALANCE SHEETS - USD ($)
$ in Thousands
Sep. 30, 2023
Dec. 31, 2022
Current assets:    
Cash and cash equivalents $ 111,620 $ 119,624
Short-term investments 23,744 19,557
Accounts receivable, net of allowance for credit losses of $890 as of September 30, 2023 and December 31, 2022 40,959 42,164
Prepaid expenses and other current assets 18,001 12,063
Total current assets 194,324 193,408
Property and equipment, net 37,833 40,174
Operating lease right-of-use assets, net 5,069 6,002
Goodwill 15,008 14,123
Intangible assets, net 16,486 18,055
Deferred tax assets, net 32 64
Other non-current assets 13,701 6,845
Total assets 282,453 278,671
Current liabilities:    
Accounts payable 2,633 6,388
Accrued compensation and related benefits 11,502 16,948
Accrued and other current liabilities 4,772 5,581
Operating lease liabilities - current portion 1,504 1,412
Deferred revenues - current portion 29,267 26,019
Billings in excess of recognized revenues 240 1,852
Total current liabilities 49,918 58,200
Long-term income taxes payable 2,820 2,622
Non-current portion of operating lease liabilities 4,922 5,932
Other non-current liabilities 3,229 1,905
Total liabilities 60,889 68,659
Commitments and contingencies (Note 12)
Stockholders' equity:    
Preferred stock, $0.00015 par value, 5,000 shares authorized, no shares issued and outstanding
Common stock, $0.00015 par value, 70,000 shares authorized; shares issued 49,694 and 48,613, respectively; shares outstanding 38,245 and 37,431, respectively 6 6
Additional paid-in-capital 467,304 447,415
Treasury stock at cost, 11,449 and 11,182 shares, respectively (143,587) (133,709)
Accumulated deficit (98,932) (101,150)
Accumulated other comprehensive loss (3,227) (2,550)
Total stockholders' equity 221,564 210,012
Total liabilities and stockholders' equity $ 282,453 $ 278,671
XML 13 R3.htm IDEA: XBRL DOCUMENT v3.23.3
CONDENSED CONSOLIDATED BALANCE SHEETS (Parentheticals) - USD ($)
shares in Thousands, $ in Thousands
Sep. 30, 2023
Dec. 31, 2022
CONDENSED CONSOLIDATED BALANCE SHEETS    
Accounts receivable, net of allowance for credit losses $ 890  
Preferred stock, par value (in dollars per share) $ 0.00015 $ 0.00015
Preferred stock, shares authorized (in shares) 5,000 5,000
Preferred stock, shares issued (in shares) 0 0
Preferred stock, shares outstanding (in shares) 0 0
Common stock, par value (in dollars per share) $ 0.00015 $ 0.00015
Common stock, shares authorized (in shares) 70,000 70,000
Common stock, shares issued (in shares) 49,694 48,613
Common stock, shares outstanding (in shares) 38,245 37,431
Treasury stock, shares (in shares) 11,449 11,182
XML 14 R4.htm IDEA: XBRL DOCUMENT v3.23.3
CONDENSED CONSOLIDATED STATEMENTS OF COMPREHENSIVE LOSS - USD ($)
shares in Thousands, $ in Thousands
3 Months Ended 9 Months Ended
Sep. 30, 2023
Sep. 30, 2022
Sep. 30, 2023
Sep. 30, 2022
Revenues:        
Revenues $ 42,350 $ 39,860 $ 124,710 $ 108,026
Costs and Expenses:        
Costs of revenues 14,282 12,545 38,555 36,116
Research and development 13,113 14,303 38,428 41,766
Selling, general and administrative 15,611 12,005 46,022 32,614
Amortization of acquired intangible assets 328 318 979 946
Interest and other expense (income), net (2,018) (1,511) (4,000) (2,812)
Income (loss) before income tax expense (benefit) 1,034 2,200 4,726 (604)
Income tax expense (6,006) (815) (2,508) (3,308)
Net income (loss) (4,972) 1,385 2,218 (3,912)
Other comprehensive income (loss):        
Foreign currency translation adjustments, net of tax (552) (1,394) (679) (2,828)
Change in unrealized gain (loss) related to available-for-sale debt securities, net of tax (5) 17 2 (17)
Total other comprehensive (loss) (557) (1,377) (677) (2,845)
Comprehensive income (loss) $ (5,529) $ 8 $ 1,541 $ (6,757)
Net income (loss) per share:        
Basic $ (0.13) $ 0.04 $ 0.06 $ (0.10)
Diluted $ (0.13) $ 0.04 $ 0.06 $ (0.10)
Weighted average common shares used to calculate net income (loss) per share:        
Basic 38,187 37,226 37,930 37,285
Diluted 38,187 38,054 38,977 37,285
Analytics        
Revenues:        
Revenues $ 39,497 $ 32,879 $ 112,957 $ 94,422
Integrated Yield Ramp        
Revenues:        
Revenues $ 2,853 $ 6,981 $ 11,753 $ 13,604
XML 15 R5.htm IDEA: XBRL DOCUMENT v3.23.3
CONDENSED CONSOLIDATED STATEMENTS OF STOCKHOLDERS EQUITY - USD ($)
shares in Thousands, $ in Thousands
Common Stock Outstanding
Additional Paid-in Capital
Treasury Stock
Accumulated Deficit
Accumulated Other Comprehensive Loss
Total
Balances (in shares) at Dec. 31, 2021 37,411   10,003      
Balances at Dec. 31, 2021 $ 6 $ 423,069 $ (104,705) $ (97,721) $ (1,064) $ 219,585
Issuance of common stock in connection with employee stock purchase plan (in shares) 95          
Issuance of common stock in connection with employee stock purchase plan   1,502       1,502
Issuance of common stock in connection with exercise of options (in shares) 75          
Issuance of common stock in connection with exercise of options   675       675
Vesting of restricted stock units (in shares) 232          
Purchases of treasury stock in connection with tax withholdings on restricted stock grants (in shares)     113      
Purchases of treasury stock in connection with tax withholdings on restricted stock grants     $ (3,389)     (3,389)
Repurchase of common stock     $ (5,778)     (5,778)
Repurchase of common stock (in shares) (219)   219      
Stock-based compensation expense   5,553       5,553
Comprehensive income (loss)       (4,150) (431) (4,581)
Balances (in shares) at Mar. 31, 2022 37,594   10,335      
Balances at Mar. 31, 2022 $ 6 430,799 $ (113,872) (101,871) (1,495) 213,567
Balances (in shares) at Dec. 31, 2021 37,411   10,003      
Balances at Dec. 31, 2021 $ 6 423,069 $ (104,705) (97,721) (1,064) 219,585
Comprehensive income (loss)           (6,757)
Balances (in shares) at Sep. 30, 2022 37,295   11,153      
Balances at Sep. 30, 2022 $ 6 441,705 $ (132,966) (101,633) (3,909) 203,203
Balances (in shares) at Mar. 31, 2022 37,594   10,335      
Balances at Mar. 31, 2022 $ 6 430,799 $ (113,872) (101,871) (1,495) 213,567
Issuance of common stock in connection with exercise of options (in shares) 12          
Issuance of common stock in connection with exercise of options   113       113
Vesting of restricted stock units (in shares) 84          
Purchases of treasury stock in connection with tax withholdings on restricted stock grants (in shares)     33      
Purchases of treasury stock in connection with tax withholdings on restricted stock grants     $ (800)     (800)
Repurchase of common stock $ (715)   $ (16,693)     (16,693)
Repurchase of common stock (in shares)     715      
Stock-based compensation expense   3,872       3,872
Comprehensive income (loss)       (1,147) (1,037) (2,184)
Balances (in shares) at Jun. 30, 2022 36,975   11,083      
Balances at Jun. 30, 2022 $ 6 434,784 $ (131,365) (103,018) (2,532) 197,875
Issuance of common stock in connection with employee stock purchase plan (in shares) 92          
Issuance of common stock in connection with employee stock purchase plan   1,509       1,509
Issuance of common stock in connection with exercise of options (in shares) 22          
Issuance of common stock in connection with exercise of options   276       276
Vesting of restricted stock units (in shares) 206          
Purchases of treasury stock in connection with tax withholdings on restricted stock grants (in shares)     70      
Purchases of treasury stock in connection with tax withholdings on restricted stock grants     $ (1,601)     (1,601)
Stock-based compensation expense   5,136       5,136
Comprehensive income (loss)       1,385 (1,377) 8
Balances (in shares) at Sep. 30, 2022 37,295   11,153      
Balances at Sep. 30, 2022 $ 6 441,705 $ (132,966) (101,633) (3,909) 203,203
Balances (in shares) at Dec. 31, 2022 37,431   11,182      
Balances at Dec. 31, 2022 $ 6 447,415 $ (133,709) (101,150) (2,550) 210,012
Issuance of common stock in connection with employee stock purchase plan (in shares) 98          
Issuance of common stock in connection with employee stock purchase plan   1,663       1,663
Issuance of common stock in connection with exercise of options (in shares) 21          
Issuance of common stock in connection with exercise of options   345       345
Vesting of restricted stock units (in shares) 286          
Purchases of treasury stock in connection with tax withholdings on restricted stock grants (in shares)     133      
Purchases of treasury stock in connection with tax withholdings on restricted stock grants     $ (4,101)     (4,101)
Stock-based compensation expense   4,884       4,884
Comprehensive income (loss)       355 267 622
Balances (in shares) at Mar. 31, 2023 37,836   11,315      
Balances at Mar. 31, 2023 $ 6 454,307 $ (137,810) (100,795) (2,283) 213,425
Balances (in shares) at Dec. 31, 2022 37,431   11,182      
Balances at Dec. 31, 2022 $ 6 447,415 $ (133,709) (101,150) (2,550) 210,012
Comprehensive income (loss)           1,541
Balances (in shares) at Sep. 30, 2023 38,245   11,449      
Balances at Sep. 30, 2023 $ 6 467,304 $ (143,587) (98,932) (3,227) 221,564
Balances (in shares) at Mar. 31, 2023 37,836   11,315      
Balances at Mar. 31, 2023 $ 6 454,307 $ (137,810) (100,795) (2,283) 213,425
Issuance of common stock in connection with exercise of options (in shares) 6          
Issuance of common stock in connection with exercise of options   87       87
Vesting of restricted stock units (in shares) 37          
Purchases of treasury stock in connection with tax withholdings on restricted stock grants (in shares)     11      
Purchases of treasury stock in connection with tax withholdings on restricted stock grants     $ (468)     (468)
Stock-based compensation expense   4,678       4,678
Comprehensive income (loss)       6,835 (387) 6,448
Balances (in shares) at Jun. 30, 2023 37,879   11,326      
Balances at Jun. 30, 2023 $ 6 459,072 $ (138,278) (93,960) (2,670) 224,170
Issuance of common stock in connection with employee stock purchase plan (in shares) 125          
Issuance of common stock in connection with employee stock purchase plan   2,169       2,169
Issuance of common stock in connection with exercise of options (in shares) 2          
Issuance of common stock in connection with exercise of options   37       37
Vesting of restricted stock units (in shares) 260          
Purchases of treasury stock in connection with tax withholdings on restricted stock grants (in shares)     102      
Purchases of treasury stock in connection with tax withholdings on restricted stock grants     $ (4,566)     (4,566)
Repurchase of common stock $ (21)   $ (743)     (743)
Repurchase of common stock (in shares)     21      
Stock-based compensation expense   6,026       6,026
Comprehensive income (loss)       (4,972) (557) (5,529)
Balances (in shares) at Sep. 30, 2023 38,245   11,449      
Balances at Sep. 30, 2023 $ 6 $ 467,304 $ (143,587) $ (98,932) $ (3,227) $ 221,564
XML 16 R6.htm IDEA: XBRL DOCUMENT v3.23.3
CONDENSED CONSOLIDATED STATEMENTS OF CASH FLOWS - USD ($)
$ in Thousands
9 Months Ended
Sep. 30, 2023
Sep. 30, 2022
Cash flows from operating activities:    
Net income (loss) $ 2,218 $ (3,912)
Adjustments to reconcile net income (loss) to net cash provided by (used in) operating activities:    
Depreciation and amortization 3,778 4,173
Stock-based compensation expense 15,561 14,561
Amortization of acquired intangible assets 2,659 2,605
Amortization of costs capitalized to obtain revenue contracts 1,494 1,127
Net (accretion of discounts) and amortization of premiums on short-term investments (734) (41)
Deferred taxes 43 46
Other (106)  
Changes in operating assets and liabilities:    
Accounts receivable 1,185 (14,999)
Prepaid expenses and other current assets (7,038) (2,750)
Operating lease right-of-use assets 904 1,510
Other non-current assets (928) 1,479
Accounts payable (2,697) (2,852)
Accrued compensation and related benefits (5,342) 3,624
Accrued and other liabilities 393 2,560
Deferred revenues 3,681 2,322
Billings in excess of recognized revenues (1,612) 183
Operating lease liabilities (888) (1,613)
Net cash provided by (used in) operating activities 12,571 8,023
Cash flows from investing activities:    
Proceeds from maturities and sales of short-term investments 28,800 136,000
Purchases of property and equipment (8,574) (6,651)
Prepayment for the purchase of property and equipment (343) (54)
Purchase of intangible assets (150) (150)
Payment for business acquisition, net of cash acquired (1,823)  
Net cash provided by (used in) investing activities (14,235) 83,354
Cash flows from financing activities:    
Proceeds from exercise of stock options 469 1,064
Proceeds from employee stock purchase plan 3,832 3,011
Payments for taxes related to net share settlement of equity awards (9,135) (5,790)
Repurchases of common stock (743) (22,471)
Net cash used in financing activities (5,577) (24,186)
Effect of exchange rate changes on cash and cash equivalents (763) (1,147)
Net change in cash and cash equivalents (8,004) 66,044
Cash and cash equivalents at beginning of period 119,624 27,684
Cash and cash equivalents at end of period 111,620 93,728
Supplemental disclosure of cash flow information:    
Cash paid during the period for taxes 3,568 2,001
Cash paid for amounts included in the measurement of operating lease liabilities 1,160 1,219
Supplemental disclosure of noncash information:    
Property and equipment received and accrued in accounts payable and accrued and other liabilities 697 2,200
Property and equipment transferred to sales-type lease 6,002  
Advances for purchase of fixed assets transferred from prepaid assets to property and equipment $ 66 336
Operating lease liabilities arising from obtaining right-of-use assets   $ 2,268
XML 17 R7.htm IDEA: XBRL DOCUMENT v3.23.3
DESCRIPTION OF BUSINESS AND SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES
9 Months Ended
Sep. 30, 2023
BASIS OF PRESENTATION AND SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES  
DESCRIPTION OF BUSINESS AND SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES

1. BASIS OF PRESENTATION AND SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES

Basis of Presentation

The interim unaudited condensed consolidated financial statements included herein have been prepared by PDF Solutions, Inc. (the “Company”) pursuant to the rules and regulations of the Securities and Exchange Commission (“SEC”), including the instructions to the Quarterly Report on Form 10-Q and Article 10 of Regulation S-X. Certain information and footnote disclosures normally included in annual financial statements prepared in accordance with accounting principles generally accepted in the United States of America have been condensed or omitted. The interim unaudited condensed consolidated financial statements reflect, in the opinion of management, all adjustments necessary (consisting only of normal recurring adjustments) to present a fair statement of results for the interim periods presented. The operating results for any interim period are not necessarily indicative of the results that may be expected for other interim periods or the full fiscal year. The accompanying interim unaudited condensed consolidated financial statements should be read in conjunction with the audited consolidated financial statements and notes thereto in the Company’s Annual Report on Form 10-K for the year ended December 31, 2022, filed with the SEC on March 1, 2023.

The interim unaudited condensed consolidated financial statements include the accounts of the Company and its wholly-owned subsidiaries after the elimination of all intercompany balances and transactions.

The accompanying interim unaudited condensed consolidated balance sheet as of December 31, 2022 has been derived from the audited consolidated financial statements but does not include all disclosures required by accounting principles generally accepted in the United States of America.

Use of Estimates

The preparation of financial statements in conformity with accounting principles generally accepted in the United States of America requires management to make estimates and assumptions that affect the reported amounts of assets and liabilities, the disclosure of contingent assets and liabilities at the date of the financial statements and the reported amounts of revenues and expenses during the reporting period. Significant estimates in these condensed consolidated financial statements include revenue recognition, the estimated useful lives of property and equipment and intangible assets, assumptions made in analysis of allowance for credit losses, impairment of goodwill and long-lived assets, valuation for deferred tax assets (“DTAs”), and accounting for lease obligations, stock-based compensation expense, and income tax uncertainties and contingencies. Actual results could differ from those estimates and may result in material effects on the Company’s operating results and financial position.

Recent Accounting Standards

Accounting Standards Adopted

In June 2016, the Financial Accounting Standards Board (“FASB’) issued Accounting Standards Update (“ASU”) No. 2016-13, Financial Instruments – Credit Losses (Topic 326): Measurement of Credit Losses on Financial Instruments (“ASU No. 2016-13”), which requires measurement and recognition of expected credit losses for financial assets held at the reporting date based on internal information, external information, or a combination of both relating to past events, current conditions, and reasonable and supportable forecasts. ASU No. 2016-13 replaces the existing incurred loss impairment model with a forward-looking expected credit loss model, which will result in earlier recognition of credit losses. Subsequent to the issuance of ASU No. 2016-13, the FASB issued ASU No. 2018-19, Codification Improvements to Topic 326, Financial Instruments – Credit Losses, ASU No. 2019-04, Codification Improvements to Topic 326, Financial Instruments – Credit Losses, Topic 815, Derivatives and Hedging, and Topic 825, Financial Instrument, ASU No. 2019-05, Financial Instruments – Credit Losses (Topic 326) Targeted Transition Relief, ASU No. 2016-13, ASU No. 2019-10 Financial Instruments-Credit Losses (Topic 326), Derivatives and Hedging (Topic 815), and Leases (Topic 842), and ASU No. 2019-11 Codification Improvements to Topic 326, Financial Instruments-Credit Losses. The subsequent ASUs do not change the core principle of the guidance in

ASU No. 2016-13. Instead, these amendments are intended to clarify and improve operability of certain topics included within ASU No. 2016-13.

The Company adopted this standard on January 1, 2023, using a modified retrospective approach, which requires a cumulative-effect adjustment to retained earnings as of the beginning of the period of adoption with prior periods not restated. The adoption of ASU No. 2016-13 did not have a material impact on the Company’s condensed consolidated financial statements.

Accounting Standards Not Yet Adopted

Management has reviewed other recently issued accounting pronouncements issued or proposed by the FASB, and does not believe any of these accounting pronouncements has had or will have a material impact on the condensed consolidated financial statements.

XML 18 R8.htm IDEA: XBRL DOCUMENT v3.23.3
REVENUE FROM CONTRACT WITH CUSTOMERS
9 Months Ended
Sep. 30, 2023
REVENUE FROM CONTRACT WITH CUSTOMERS  
REVENUE FROM CONTRACT WITH CUSTOMERS

2. REVENUE FROM CONTRACTS WITH CUSTOMERS

The Company derives revenue from two sources: Analytics revenue and Integrated Yield Ramp revenue.

The Company recognizes revenue in accordance with FASB Accounting Standards Codification (“ASC”) Topic 606, Revenue from Contracts with Customers, and its related amendments (collectively known as “ASC 606”). ASC 606 outlines a single comprehensive model to use in accounting for revenue arising from contracts with customers. Revenue is recognized when control of products or services is transferred to customers, in an amount that reflects the consideration the Company expects to be entitled to in exchange for those promised products or services.

The Company determines revenue recognition through the following five steps:

Identification of the contract, or contracts, with a customer
Identification of the performance obligations in the contract
Determination of the transaction price
Allocation of the transaction price to the performance obligations in the contract
Recognition of revenue when, or as, performance obligations are satisfied

The Company accounts for a contract when it has approval and commitment from both parties, the rights of the parties are identified, payment terms are identified, the contract has commercial substance, and collectibility of consideration is probable.

Contracts with multiple performance obligations

The Company enters into contracts that can include various combinations of licenses, products and services, some of which are distinct and are accounted for as separate performance obligations. For contracts with multiple performance obligations, the Company allocates the transaction price of the contract to each performance obligation on a relative basis using the standalone selling price (“SSP”).

Analytics Revenue

Analytics revenue is derived from the following primary offerings: licenses and services for standalone software (which is primarily Exensio® and Cimetrix® products), software-as-a-service (“SaaS”) (which is primarily Exensio® products), and Design-for-Inspection™ (“DFI™”) systems and Characterization Vehicle® (“CV®”) systems that do not include performance incentives based on customers’ yield achievement.

Revenue from standalone software is recognized depending on whether the license is perpetual or time-based. Perpetual (one-time charge) license software is recognized at the time of the inception of the arrangement when control transfers to the customers if the software license is considered as a separate performance obligation from the services offered by the Company.

Revenue from post-contract support is recognized over the contract term on a straight-line basis, because the Company is providing (i) support and (ii) unspecified software updates on a when-and-if available basis over the contract term. Revenue from time-based-licensed software is allocated to each performance obligation and is recognized either at a point in time or over time as follows. The license component is recognized at the time when control transfers to customers, with the post-contract support component recognized ratably over the committed term of the contract. For contracts with any combination of licenses, support, and other services, distinct performance obligations are accounted for separately. For contracts with multiple performance obligations, the Company allocates the transaction price of the contract to each performance obligation on a relative basis using the SSP attributed to each performance obligation.

Revenue from SaaS arrangements, which allow for the use of a cloud-based software product or service over a contractually determined period of time without the customer having to take possession of software, is accounted for as a subscription and is recognized as revenue ratably, on a straight-line basis, over the subscription period beginning on the date the service is first made available to customers. For contracts with any combination of SaaS and related services, distinct performance obligations are accounted for separately. For contracts with multiple performance obligations, the Company allocates the transaction price of the contract to each performance obligation on a relative basis using the SSP attributed to each performance obligation.

Revenue from DFI systems and CV systems (including Characterization services) that do not include performance incentives based on customers’ yield achievement is recognized primarily as services are performed. Where there are distinct performance obligations, the Company allocates revenue to all deliverables based on their SSPs. For those contracts with multiple performance obligations, the Company allocates the transaction price of the contract to each performance obligation on a relative basis using the SSP attributed to each performance obligation. Where there are not discrete performance obligations, historically, revenue is primarily recognized as services are performed using a percentage of completion method based on costs or labor-hours inputs, whichever is the most appropriate measure of the progress towards completion of the contract. The estimation of percentage of completion method is complex and subject to many variables that require significant judgment. Please refer to the “Significant Judgments” section of this Note for further discussion.

Integrated Yield Ramp Revenue

Integrated Yield Ramp revenue is derived from the Company’s fixed-fee engagements that include performance incentives based on customers’ yield achievement (which consists primarily of Gainshare royalties) typically based on customer’s wafer shipments, pertaining to these fixed-price contracts, which royalties are variable.

Revenue under these project-based contracts, which are delivered over a specific period of time, typically for a fixed fee component paid on a set schedule, is recognized as services are performed using a percentage of completion method based on costs or labor-hours inputs, whichever is the most appropriate measure of the progress towards completion of the contract. Where there are distinct performance obligations, the Company allocates revenue to all deliverables based on their SSPs and allocates the transaction price of the contract to each performance obligation on a relative basis using SSP. Similar to the services provided in connection with DFI systems and CV systems that are contributing to Analytics revenue, due to the nature of the work performed in these arrangements, the estimation of percentage of completion method is complex and subject to many variables that require significant judgment. Please refer to the “Significant Judgments” section of this Note for further discussion.

The Gainshare contained in Integrated Yield Ramp contracts is a variable fee related to continued usage of the Company’s intellectual property after the fixed-fee service period ends, based on a customer’s yield achievement. Revenue derived from Gainshare is contingent upon the Company’s customers reaching certain defined production yield levels. Gainshare periods are generally subsequent to the delivery of all contractual services and performance obligations. The Company records Gainshare as a usage-based royalty derived from customers’ usage of intellectual property and records it in the same period in which the usage occurs.

Disaggregation of Revenue

The Company disaggregates revenue from contracts with customers into the timing of the transfer of goods and services and the geographical regions. The Company determined that disaggregating revenue into these categories achieves the disclosure objective to depict how the nature, amount, timing, and uncertainty of revenue and cash flows are affected by economic factors.

The Company’s performance obligations are satisfied either over time or at a point-in-time. The following table represents a disaggregation of revenue percentage by timing of revenue:

Three Months Ended September 30, 

 

Nine Months Ended September 30, 

    

2023

    

2022

2023

    

2022

Over time

68

%  

68

%

74

%  

70

%

Point-in-time

 

32

%  

32

%

26

%  

30

%

Total

 

100

%  

100

%

100

%  

100

%

International revenues accounted for approximately 42% and 54% of the Company’s total revenues during the three months ended September 30, 2023 and 2022, respectively. International revenues accounted for approximately 44% and 51% of the Company’s total revenues during the nine months ended September 30, 2023 and 2022, respectively. See Note 9, Customer and Geographic Information.

Significant Judgments

Judgments and estimates are required under ASC 606. Due to the complexity of certain contracts, the actual revenue recognition treatment required under ASC 606 for the Company’s arrangements may be dependent on contract-specific terms and may vary in some instances.

For revenue under project-based contracts for fixed-price implementation services, revenue is recognized as services are performed using a percentage-of-completion method based on costs or labor-hours input method, whichever is the most appropriate measure of the progress towards completion of the contract. Due to the nature of the work performed in these arrangements, the estimation of percentage of completion method is complex, subject to many variables and requires significant judgment. Key factors reviewed by the Company to estimate costs to complete each contract are future labor and product costs and expected productivity efficiencies. If circumstances arise that change the original estimates of revenues, costs, or extent of progress toward completion, revisions to the estimates are made. These revisions may result in increases or decreases in estimated revenues or costs, and such revisions are reflected in revenue on a cumulative catch-up basis in the period in which the circumstances that gave rise to the revision become known.

The Company’s contracts with customers often include promises to transfer products, software licenses and provide services, including professional services, technical support services, and rights to unspecified updates to a customer. Determining whether licenses and services are distinct performance obligations that should be accounted for separately, or not distinct and thus accounted for together, requires significant judgment. The Company rarely licenses software on a standalone basis, so the Company is required to estimate the range of SSPs for each performance obligation. In instances where SSP is not directly observable because the Company does not license the software or sell the service separately, the Company determines the SSP using information that may include market conditions and other observable inputs.

The Company is required to record Gainshare revenue in the same period in which the usage occurs. Because the Company generally does not receive the acknowledgment reports from its customers during a given quarter within the time frame necessary to adequately review the reports and include the actual amounts in quarterly results for such quarter, the Company accrues the related revenue based on estimates of customers underlying sales achievement. The Company’s estimation process can be based on historical data, trends, seasonality, changes in the contract rate, knowledge of the changes in the industry and changes in the customer’s manufacturing environment learned through discussions with customers and sales personnel. As a result of accruing revenue for the quarter based on such estimates, adjustments will be required in the following quarter to true-up revenue to the actual amounts reported.

Contract Balances

The Company performs its obligations under a contract with a customer by licensing software or providing services in exchange for consideration from the customer. The timing of the Company’s performance often differs from the timing of the customer’s payment, which results in the recognition of a receivable, a contract asset or a contract liability.

The Company classifies the right to consideration in exchange for software or services transferred to a customer as either a receivable or a contract asset. A receivable is a right to consideration that is unconditional, as compared to a contract asset, which is a right to consideration that is conditional upon factors other than the passage of time. The majority of the Company’s contract assets represent unbilled amounts related to fixed-price service contracts when the revenue recognized exceeds the amount billed to the customer. The contract assets are generally classified as current and are recorded on a net basis with deferred revenue (i.e., contract liabilities) at the contract level. As of September 30, 2023 and December 31, 2022, the total contract assets included in prepaid expenses and other current assets in the accompanying condensed consolidated balance sheets were $8.1 million and $3.3 million, respectively. The Company did not record any asset impairment charges related to contract assets for the periods presented.

Deferred revenues and billings in excess of recognized revenues consist substantially of amounts invoiced in advance of revenue recognition and are recognized as the revenue recognition criteria are met. Deferred revenues that will be recognized during the succeeding twelve-month period are recorded as current deferred revenues and the remaining portion is recorded in other non-current liabilities in the accompanying condensed consolidated balance sheets. As of September 30, 2023, and December 31, 2022, the non-current portion of deferred revenues included in non-current liabilities was $2.3 million and $1.9 million, respectively. Revenue recognized that was included in the deferred revenues and billings in excess of recognized revenues balances at the beginning of each reporting period was $13.1 million and $10.6 million during the three months ended September 30, 2023 and 2022, respectively, and $23.8 million and $16.3 million during the nine months ended September 30, 2023 and 2022, respectively.

As of September 30, 2023, the aggregate amount of the transaction price allocated to the remaining performance obligations related to customer contracts that were unsatisfied or partially unsatisfied was approximately $218.3 million. Given the applicable contract terms with customers, more than half of this amount is expected to be recognized as revenue over the next two years with the remainder to be recognized thereafter. This amount does not include insignificant contracts to which the customer is not committed, nor significant contracts for which the Company recognizes revenue equal to the amount the Company has the right to invoice for services performed, or future sales-based or usage-based royalty payments in exchange for a license of intellectual property. This amount is subject to change due to future revaluations of variable consideration, terminations, other contract modifications, or currency adjustments. The estimated timing of the recognition of remaining unsatisfied performance obligations is subject to change and is affected by changes to the scope, change in timing of delivery of products and services, or contract modifications.

The adjustment to revenue recognized from performance obligations satisfied (or partially satisfied) in previous periods was a decrease of $0.6 million and an increase of $1.9 million during the three months ended September 30, 2023 and 2022, respectively, and an increase of $4.3 million and an increase of $0.4 million during the nine months ended September 30, 2023 and 2022, respectively. These amounts primarily represent changes in estimated percentage-of-completion based contracts and changes in actual versus estimated Gainshare.

Costs to obtain or fulfill a contract

The Company capitalizes the incremental costs to obtain or fulfill a contract with a customer, including direct sales commissions and related fees, when it expects to recover those costs. Amortization expense related to these capitalized costs is recognized over the period associated with the revenue from which the cost was incurred. Total capitalized direct sales commission costs included in prepaid expenses and other current assets in the accompanying condensed consolidated balance sheets as of September 30, 2023, and December 31, 2022, were $2.0 million and $1.7 million, respectively. Total capitalized direct sales commission costs included in other non-current assets in the accompanying condensed consolidated balance sheets as of September 30, 2023, and December 31, 2022, were $2.5 million and $2.1 million, respectively. Amortization of these assets was $0.5 million and $0.4 million during the three months ended September 30, 2023 and 2022, respectively, and $1.5 million and $1.1 million during the nine months ended September 30, 2023 and 2022. There was no impairment loss in relation to the costs capitalized for the periods presented.

Practical expedient

The Company does not adjust the transaction price for the effects of a significant financing component when the period between the transfers of the promised good or service to the customer and payment for that good or service by the customer is expected to be one year or less. The Company assessed each of its revenue generating arrangements in order to determine whether a significant financing component exists, and determined its contracts did not include a significant financing component during the three and nine months ended September 30, 2023 and 2022.

XML 19 R9.htm IDEA: XBRL DOCUMENT v3.23.3
BALANCE SHEET COMPONENTS
9 Months Ended
Sep. 30, 2023
BALANCE SHEET COMPONENTS  
BALANCE SHEET COMPONENTS

3. BALANCE SHEET COMPONENTS

Accounts receivable

Accounts receivable include amounts that are unbilled at the end of the period that are expected to be billed and collected within a 12-month period. Unbilled accounts receivable, included in accounts receivable, totaled $14.3 million and $13.5 million as of September 30, 2023, and December 31, 2022, respectively. Unbilled accounts receivable that are not expected to be billed and collected during the succeeding 12-month period are recorded in other non-current assets and totaled $0.8 million and $0.8 million as of September 30, 2023, and December 31, 2022, respectively.

The Company performs ongoing credit evaluations of its customers’ financial condition. An allowance for credit losses is maintained for probable credit losses based upon the Company’s assessment of the expected collectability of the accounts receivable. The allowance for credit losses is reviewed on a quarterly basis to assess the adequacy of the allowance.

Property and equipment

Property and equipment, net consist of the following (in thousands):

September 30, 

December 31, 

    

2023

2022

Computer equipment

$

12,076

$

11,853

Software

 

5,575

 

5,395

Furniture, fixtures, and equipment

 

2,491

 

2,484

Leasehold improvements

 

6,456

 

6,467

Laboratory and other equipment

 

4,770

 

4,431

Test equipment

 

27,866

 

28,403

Property and equipment in progress:

 

 

DFI™ system assets

21,123

22,231

CV® system and other assets

 

6,963

 

5,105

 

87,320

 

86,369

Less: Accumulated depreciation and amortization

 

(49,487)

 

(46,195)

Total

$

37,833

$

40,174

Test equipment mainly includes DFI™ system and CV® system assets at customer sites that are contributing to revenue. Property and equipment in progress represent the development or construction of property and equipment that have not yet been placed in service for the Company’s intended use and are not depreciated. 

Depreciation and amortization expense was $1.2 million and $1.4 million during the three months ended September 30, 2023 and 2022, respectively, and $3.8 million and $4.2 million during the nine months ended September 30, 2023 and 2022, respectively.

Goodwill and Intangible Assets, Net

As of September 30, 2023, and December 31, 2022, the carrying amount of goodwill was $15.0 million and $14.1 million, respectively. Refer to Note 13, Business Combination, for the discussion about additional goodwill recognized during the three and nine months ended September 30, 2023.

Intangible assets, net, consisted of the following (in thousands):

September 30, 2023

December 31, 2022

Amortization

Gross

Net

Gross

Net

Period

Carrying

Accumulated

Carrying

Carrying

Accumulated

Carrying

(Years)

    

Amount

    

Amortization

    

Amount

    

Amount

    

Amortization

    

Amount

Acquired identifiable intangibles:

Customer relationships

 

1-10

$

9,505

$

(7,170)

$

2,335

$

9,407

$

(6,684)

$

2,723

Developed technology

 

4-9

 

34,627

 

(21,463)

 

13,164

 

33,635

 

(19,647)

 

13,988

Tradename and trademarks

 

2-10

 

1,598

 

(999)

 

599

 

1,598

 

(918)

 

680

Patent

 

6-10

 

2,100

 

(1,760)

 

340

 

2,100

 

(1,696)

 

404

Noncompetition agreements

 

3

 

848

 

(800)

 

48

 

848

 

(588)

 

260

Total

$

48,678

$

(32,192)

$

16,486

$

47,588

$

(29,533)

$

18,055

The weighted average amortization period for acquired identifiable intangible assets was 5.5 years as of September 30, 2023. The following table summarizes intangible assets amortization expense in the accompanying condensed consolidated statements of comprehensive income (loss) (in thousands):

Three Months Ended September 30, 

Nine Months Ended September 30, 

    

2023

    

2022

    

2023

    

2022

Amortization of acquired technology included under costs of revenues

$

574

$

553

$

1,680

$

1,659

Amortization of acquired intangible assets presented separately under costs and expenses

 

328

 

318

 

979

 

946

Total amortization of acquired intangible assets

$

902

$

871

$

2,659

$

2,605

The Company expects annual amortization of acquired identifiable intangible assets to be as follows (in thousands):

Year Ending December 31, 

    

Amount

2023 (remaining three months)

$

890

2024

 

3,233

2025

 

3,069

2026

 

2,899

2027

 

2,747

2028 and thereafter

 

3,648

Total future amortization expense

$

16,486

There were no impairment charges for goodwill and intangible assets during the three and nine months ended September 30, 2023 and 2022.

XML 20 R10.htm IDEA: XBRL DOCUMENT v3.23.3
LEASES
9 Months Ended
Sep. 30, 2023
LEASES  
LEASES

4. LEASES

The Company leases administrative and sales offices and certain equipment under non-cancellable operating leases, which contain various renewal options and, in some cases, require payment of common area costs, taxes and utilities. These operating leases expire at various dates through 2028. The Company had no leases that were classified as a financing lease as of September 30, 2023, and December 31, 2022.

In the first quarter of 2022, the Company early terminated an office lease contract. The termination of this lease reduced the Company’s operating lease right-of-use assets and lease liabilities by approximately $0.5 million and $0.6 million, respectively. The gain from the lease termination of approximately $0.1 million was recorded under selling, general, and administrative expense in the accompanying condensed consolidated statement of comprehensive income (loss) for the nine months ended September 30, 2022.

Lease expense was comprised of the following (in thousands):

Three Months Ended September 30, 

Nine Months Ended September 30, 

    

2023

    

2022

    

2023

    

2022

Operating lease expense (1)

$

382

$

375

$

1,153

$

1,073

Short-term lease and variable lease expense (2)

 

239

 

244

 

673

 

801

Total lease expense

$

621

$

619

$

1,826

$

1,874

(1)Net of gain recognized upon lease termination of $0.1 million in the nine months ended September 30, 2022.
(2)Leases with an initial term of 12 months or less are not recorded on the accompanying condensed consolidated balance sheets, and the Company recognizes lease expense for these leases on a straight-line basis over the lease term. Variable lease expense for the periods presented primarily included common area maintenance charges.

Supplemental condensed consolidated balance sheets information related to operating leases was as follows:

September 30, 

December 31, 

 

    

2023

2022

 

Weighted average remaining lease term under operating leases (in years)

4.7

5.3

Weighted average discount rate for operating lease liabilities

 

4.89

%  

4.87

%

Maturities of operating lease liabilities as of September 30, 2023, were as follows (in thousands):

Year Ending December 31, 

    

Amount (1)

2023 (remaining three months)

$

422

2024

 

1,619

2025

 

1,539

2026

 

1,354

2027

 

1,294

2028 and thereafter

992

Total future minimum lease payments

7,220

Less: Interest (2)

 

(794)

Present value of future minimum lease payments under operating lease liabilities (3)

$

6,426

(1)As of September 30, 2023, the total operating lease liability includes approximately $0.9 million related to an option to extend a lease term that is reasonably certain to be exercised.
(2)Calculated using incremental borrowing interest rate for each lease.
(3)Includes the current portion of operating lease liabilities of $1.5 million as of September 30, 2023.
XML 21 R11.htm IDEA: XBRL DOCUMENT v3.23.3
STOCKHOLDERS' EQUITY
9 Months Ended
Sep. 30, 2023
STOCKHOLDERS EQUITY  
STOCKHOLDERS' EQUITY

5. STOCKHOLDERS’ EQUITY

Stock Repurchase Program

On June 4, 2020, the Company’s Board of Directors adopted a stock repurchase program (the “2020 Program”) to repurchase up to $25.0 million of the Company’s common stock both on the open market and in privately negotiated transactions, including through Rule 10b5-1 plans, over the next two years. During the nine months ended September 30, 2022, 218,858 shares were repurchased by the Company under the 2020 Program at an average price of $26.40 per share for an aggregate total price of $5.8 million. In total, 470,070 shares were repurchased under the 2020 Program at an average price of $21.91 per share, for an aggregate total price of $10.3 million.

On April 11, 2022, the Board of Directors terminated the 2020 Program, and adopted a new program (the “2022 Program”) to repurchase up to $35.0 million of the Company’s common stock both on the open market and in privately negotiated transactions, from time to time, over the next two years. During the nine months ended September 30, 2022, 714,600 shares were repurchased by the Company under the 2022 Program at an average price of $23.36 per share for an aggregate total price of $16.7 million. During the nine months ended September 30, 2023, 21,340 shares were repurchased by the Company under the 2022 Program at an average price of $34.81 per share for an aggregate total price of $0.7 million. In total, the Company has repurchased 735,940 shares under the 2022 Program at an average price of $23.69 per share for an aggregate total price of $17.4 million.

XML 22 R12.htm IDEA: XBRL DOCUMENT v3.23.3
EMPLOYEE BENEFIT PLANS
9 Months Ended
Sep. 30, 2023
EMPLOYEE BENEFIT PLANS  
EMPLOYEE BENEFIT PLANS

6. EMPLOYEE BENEFIT PLANS

On September 30, 2023, the Company had the following stock-based compensation plans:

Employee Stock Purchase Plan

In July 2001, the Company’s stockholders initially approved the 2001 Employee Stock Purchase Plan, which was subsequently amended and restated in 2010 (as amended, the “2010 Purchase Plan”) to extend the term of the plan through May 17, 2020. Under the 2010 Purchase Plan, eligible employees could contribute up to 10% of their compensation, as defined in the 2010 Purchase Plan, towards the purchase of shares of PDF common stock at a price of 85% of the lower of the fair market value at the beginning of the offering period or the end of the purchase period. The 2010 Purchase Plan provided for twenty-four-month offering periods with four six-month purchase periods in each offering period. The 2010 Purchase Plan expired on May 17, 2020. Existing offering periods under the 2010 Plan continued through the applicable expiration date and the final offering period expired on January 31, 2022. On June 15, 2021, the Company’s stockholders approved the 2021 Employee Stock Purchase Plan, which has a ten-year term (the “2021 Purchase Plan” and, together with the 2010 Purchase Plan, the “Employee Purchase Plans”). The terms of the 2021 Purchase Plan are substantially similar to those of the 2010 Purchase Plan. A twenty-four-month offering period under the 2021 Purchase Plan commenced on August 1, 2021.

The Company estimated the fair value of purchase rights granted under the 2021 Purchase Plan during the period using the Black-Scholes-Merton option-pricing model with the following weighted average assumptions, resulting in the following weighted average fair values:

Nine Months Ended September 30, 

2023

    

2022

    

Expected life (in years)

1.25

 

1.25

 

Volatility

43.66

%  

48.73

%  

Risk-free interest rate

5.15

%  

2.75

%  

Expected dividend

 

 

Weighted average fair value of purchase rights granted during the period

$

15.71

$

10.00

During the three months ended September 30, 2023, a total of 125,392 shares were issued under the 2021 Purchase Plan, at a weighted average purchase price of $17.30 per share. During the three months ended September 30, 2022, a total of 92,043 shares were issued under the 2021 Purchase Plan, at a weighted-average purchase price of $16.40 per share. During the nine months ended September 30, 2023, a total of 223,608 shares were issued under the 2021 Purchase Plan, at a weighted average purchase price of $17.14 per share. During the nine months ended September 30, 2022, a total of 182,083 shares were issued under the 2021 Purchase Plan, at a weighted average purchase price of $16.15 per share. During the nine months ended September 30, 2022, a total of 5,203 shares were issued under the 2010 Purchase Plan, at a weighted average purchase price of $13.40 per share. As of September 30, 2023, unrecognized compensation cost related to the 2021 Purchase Plan was $3.9 million. This estimated unrecognized cost is expected to be recognized over a weighted average period of 1.7 years.

As of September 30, 2023, 594,309 shares were available for future issuance under the 2021 Purchase Plan.

Stock Incentive Plans

On November 16, 2011, the Company’s stockholders initially approved the 2011 Stock Incentive Plan, which has been amended and restated and approved by the Company’s stockholders a number of times since then (as approved by the stockholders through the date of this report, the “2011 Plan”) and currently expires in 2033. Under the 2011 Plan, the Company may award stock options, stock appreciation rights (“SARs”), stock grants or stock units covering shares of the Company’s common stock to employees, directors, non-employee directors and contractors. The aggregate number of shares reserved for awards under the 2011 Plan is 13.8 million shares, plus up to 3.5 million shares previously issued under the 2001 Stock Plan adopted by the Company in 2001, which expired in 2011 (the “2001 Plan”) that are either (i) forfeited or (ii) repurchased by the Company or are shares subject to awards previously issued under the 2001 Plan that expire or that terminate without having been exercised or settled in full on or after November 16, 2011. In case of awards other than options or SARs, the aggregate number of shares reserved under the 2011 Plan will be decreased at a rate of 1.33 shares issued pursuant to such awards. The exercise price for stock options must generally be at prices no less than the fair market value at the date of grant. Stock options generally expire ten years from the date of grant and become vested and exercisable over a four-year period.

As of September 30, 2023, 14.3 million shares of common stock were reserved to cover stock-based awards under the 2011 Plan, of which 3.7 million shares were available for future grant. The number of shares reserved and available under the 2011 Plan includes 0.5 million shares that were subject to awards previously made under the 2001 Plan and were forfeited, expired or repurchased by the Company after the adoption of the 2011 Plan through September 30, 2023. As of September 30, 2023, there were no outstanding awards that had been granted outside of the 2011 or 2001 Plans (collectively, the “Stock Plans”).

The Company estimated the fair value of share-based awards granted under the 2011 Stock Plan during the period using the Black-Scholes-Merton option-pricing model. There were no stock options granted during the three and nine months ended September 30, 2023 and 2022.

Stock-Based Compensation

Stock-based compensation is estimated at the grant date based on the award’s fair value and is recognized on a straight-line basis over the vesting periods, generally four years. Stock-based compensation expense before taxes related to the Company’s stock plans and employee stock purchase plans was allocated as follows (in thousands):

Three Months Ended September 30, 

Nine Months Ended September 30, 

    

2023

    

2022

    

2023

    

2022

Costs of revenues

$

1,120

$

854

$

3,022

$

2,237

Research and development

 

2,196

 

2,180

 

5,609

 

7,158

Selling, general, and administrative

 

2,683

 

2,102

 

6,930

 

5,166

Stock-based compensation expense

$

5,999

$

5,136

$

15,561

$

14,561

Stock-based compensation capitalized in the capitalized software development costs included in property and equipment, net, was immaterial for the three and nine months ended September 30, 2023.

Additional information with respect to options under the Stock Plans during the nine months ended September 30, 2023, is as follows:

Outstanding Options

Weighted

Weighted

Average

Average

Remaining

Aggregate

Number of

Exercise

Contractual

Intrinsic

Options

Price

Term

Value

    

(in thousands)

    

per Share

    

(Years)

    

(in thousands)

Outstanding, December 31, 2022

 

68

$

16.11

 

  

 

  

Granted

 

 

  

 

  

Exercised

 

(29)

16.39

 

  

 

  

Canceled

 

 

  

 

  

Expired

 

 

  

 

  

Outstanding, September 30, 2023

 

39

$

15.91

 

4.40

$

654

Vested and expected to vest, September 30, 2023

 

39

$

15.91

 

4.40

$

653

Exercisable, September 30, 2023

 

36

$

15.80

 

4.21

$

604

The aggregate intrinsic value in the table above represents the total intrinsic value based on the Company’s closing stock price of $32.40 per share as of September 30, 2023. The total intrinsic value of options exercised was $0.6 million during the nine months ended September 30, 2023.

Total remaining unrecognized compensation cost related to unvested stock options as of September 30, 2023, which is expected to be fully recognized in 2023, and total fair value of shares vested during the nine months ended September 30, 2023, were immaterial.

Nonvested restricted stock unit activity during the nine months ended September 30, 2023, was as follows:

Weighted

Average Grant

Shares 

Date Fair Value

    

(in thousands)

    

Per Share

Nonvested, December 31, 2022

 

2,124

$

21.29

Granted

 

753

$

43.92

Vested

 

(829)

$

20.46

Forfeited

 

(18)

$

25.87

Nonvested, September 30, 2023

 

2,030

$

29.98

As of September 30, 2023, there was $48.6 million of total unrecognized compensation cost related to restricted stock units. That cost is expected to be recognized over a weighted average period of 2.7 years. Restricted stock units do not have rights to dividends prior to vesting.

XML 23 R13.htm IDEA: XBRL DOCUMENT v3.23.3
INCOME TAXES
9 Months Ended
Sep. 30, 2023
INCOME TAXES  
INCOME TAXES

7. INCOME TAXES

Income tax expense decreased by $0.8 million for the nine months ended September 30, 2023, to a $2.5 million income tax expense as compared to a $3.3 million income tax expense for the nine months ended September 30, 2022. The Company’s effective tax rate was 53.1% and (547.7%) for the nine months ended September 30, 2023 and 2022, respectively. The Company’s effective tax rate increased in the nine months ended September 30, 2023, as compared to the same period in 2022, primarily due to changes in the foreign and state taxes and year-to-date recognition of worldwide pre-tax income (loss) in relation to their forecasted amounts for full years. Our provision for income taxes for the nine months ended September 30, 2023, was primarily attributable to foreign and state taxes.

The Company’s total amount of unrecognized tax benefits, excluding interest and penalties, as of September 30, 2023, was $15.9 million, of which $2.0 million, if recognized, would affect the Company’s effective tax rate. The Company’s total amount of unrecognized tax benefits, excluding interest and penalties, as of December 31, 2022, was $15.1 million, of which $2.0 million, if recognized, would affect the Company’s effective tax rate. As of September 30, 2023, the Company has recorded unrecognized tax benefits of $2.5 million, including interest and penalties of $0.6 million, as long-term taxes payable in the accompanying condensed consolidated balance sheet. The remaining $14.0 million has been recorded within the Company’s DTAs, which is subject to a full valuation allowance.

The valuation allowance was approximately $59.2 million as of September 30, 2023, and December 31, 2022, which was related to U.S. net federal and state DTAs. The worldwide net DTAs balance as of September 30, 2023, and December 31, 2022, were not significant.

The Company conducts business globally and, as a result, files numerous consolidated and separate income tax returns in the U.S. federal and various state and foreign jurisdictions. For U.S. federal and California income tax purposes, the statute of limitations currently remains open for the tax years ended 2019 to present and 2018 to present, respectively. In addition, due to net operating loss carryback claims, the tax years 2013 through 2015 may be subject to federal examination and all of the net operating loss and research and development credit carryforwards that may be utilized in future years may be subject to federal and state examination. The Company is not subject to income tax examinations in any other of its major foreign subsidiaries’ jurisdictions.

XML 24 R14.htm IDEA: XBRL DOCUMENT v3.23.3
NET INCOME (LOSS) PER SHARE
9 Months Ended
Sep. 30, 2023
NET INCOME (LOSS) PER SHARE  
NET INCOME (LOSS) PER SHARE

8. NET INCOME (LOSS) PER SHARE

Basic net income (loss) per share is computed by dividing net income (loss) by weighted average number of common shares outstanding for the period (excluding outstanding stock options and shares subject to repurchase). Diluted net income (loss) per share is computed using the weighted average number of common shares outstanding for the period plus the potential effect of dilutive securities which are convertible into common shares (using the treasury stock method), except in cases in which the effect would be anti-dilutive. The following is a reconciliation of the numerators and denominators used in computing basic and diluted net income (loss) per share (in thousands except per share amount):

Three Months Ended September 30, 

Nine Months Ended September 30, 

    

2023

    

2022

    

2023

    

2022

Numerator:

 

  

 

  

 

  

 

  

Net income (loss)

$

(4,972)

$

1,385

$

2,218

$

(3,912)

Denominator:

 

  

 

  

 

  

 

  

Basic weighted average shares outstanding

 

38,187

 

37,226

 

37,930

 

37,285

Effect of dilutive stock options, unvested restricted stock units, and shares of common stock expected to be issued under employee stock purchase plan(s)

 

 

828

 

1,047

 

Diluted weighted average shares outstanding

 

38,187

 

38,054

 

38,977

 

37,285

Net income (loss) per share:

Basic

$

(0.13)

$

0.04

$

0.06

$

(0.10)

Diluted

$

(0.13)

$

0.04

$

0.06

$

(0.10)

For the three months ended September 30, 2023 and for the nine months ended September 30, 2022, because the Company was in a loss position, diluted net loss per share is the same as basic net loss per share as the inclusion of the potential common shares would have been anti-dilutive.

The following table sets forth the weighted average potential shares of common stock that were not included in the diluted net income (loss) per share calculation above because to do so would be anti-dilutive for the periods indicated (in thousands):

Three Months Ended September 30, 

Nine Months Ended September 30, 

    

2023

    

2022

    

2023

    

2022

Outstanding options

 

23

 

 

63

Non-vested restricted stock units

 

1,391

62

 

223

784

Employee Stock Purchase Plan

 

38

 

75

Total

 

1,452

 

62

 

223

922

XML 25 R15.htm IDEA: XBRL DOCUMENT v3.23.3
CUSTOMER AND GEOGRAPHIC INFORMATION
9 Months Ended
Sep. 30, 2023
CUSTOMER AND GEOGRAPHIC INFORMATION  
CUSTOMER AND GEOGRAPHIC INFORMATION

9. CUSTOMER AND GEOGRAPHIC INFORMATION

Operating segments are defined as components of an enterprise about which separate financial information is available that is evaluated regularly by the chief operating decision maker, or group, in deciding how to allocate resources and in assessing performance.

The Company’s chief operating decision maker, the chief executive officer, reviews discrete financial information presented on a consolidated basis for purposes of regularly making operating decisions, allocation of resources, and assessing financial performance. Accordingly, the Company considers itself to be in one operating and reporting segment, specifically the provision of services for differentiated data and analytics solutions to the semiconductor and electronics industries.

Revenues from an individual customer that are approximately 10% or more of the Company’s consolidated total revenues are as follows:

Three Months Ended September 30, 

 

Nine Months Ended September 30, 

Customer

    

2023

    

2022

    

2023

    

2022

 

A

38

%  

28

%

36

%  

30

%

B

*

%  

16

%

10

%  

11

%

Gross accounts receivable balances (including amounts that are unbilled) from individual customers that are approximately 10% or more of the Company’s gross accounts receivable balance are as follows:

September 30, 

December 31, 

 

Customer

    

2023

2022

 

A

 

44

%  

29

%

B

 

*

%  

12

%

C

*

%  

12

%

* represents less than 10%

Revenues from customers by geographic area based on the location of the customers’ work sites are as follows (amounts in thousands):

Three Months Ended September 30, 

2023

2022

 

Percentage

Percentage

 

    

Revenues

    

of Revenues

    

Revenues

    

of Revenues

 

United States

$

24,477

 

58

%  

$

18,292

46

%

China

 

7,549

 

18

 

9,555

24

Rest of the world

 

10,324

 

24

 

12,013

30

Total revenue

$

42,350

 

100

%  

$

39,860

 

100

%

Nine Months Ended September 30, 

2023

2022

 

Percentage

Percentage

 

    

Revenues

    

of Revenues

    

Revenues

    

of Revenues

 

United States

$

70,090

 

56

%  

$

52,869

 

49

%

China

 

21,927

 

18

 

18,214

 

17

Rest of the world

 

32,693

 

26

 

36,943

 

34

Total revenue

$

124,710

 

100

%  

$

108,026

 

100

%

Long-lived assets, net by geographic area are as follows (in thousands):

September 30, 

December 31, 

    

2023

2022

United States (1)

$

45,419

$

44,730

Rest of the world

 

1,207

 

1,446

Total long-lived assets, net

$

46,626

$

46,176

(1) Includes assets deployed at customer sites which could be outside the U.S.

XML 26 R16.htm IDEA: XBRL DOCUMENT v3.23.3
FAIR VALUE MEASUREMENTS
9 Months Ended
Sep. 30, 2023
FAIR VALUE MEASUREMENTS  
FAIR VALUE MEASUREMENTS

10. FAIR VALUE MEASUREMENTS

Fair value is the exit price, or the amount that would be received to sell an asset or paid to transfer a liability in an orderly transaction between market participants as of the measurement date. The multiple assumptions used to value financial instruments are referred to as inputs, and a hierarchy for inputs used in measuring fair value is established, that maximizes the use of observable inputs and minimizes the use of unobservable inputs by requiring that the most observable inputs be used when available. Observable inputs reflect assumptions market participants would use in pricing an asset or liability based on market data obtained from independent sources while unobservable inputs reflect a reporting entity’s pricing based upon its own market assumptions. These inputs are ranked according to a fair value hierarchy that prioritizes the inputs to valuation techniques used to measure fair value into three broad levels.

Level 1 -

Inputs are quoted prices in active markets for identical assets or liabilities.

 

 

Level 2 -

Inputs are quoted prices for similar assets or liabilities in an active market, quoted prices for identical or similar assets or liabilities in markets that are not active, inputs other than quoted prices that are observable and market-corroborated inputs which are derived principally from or corroborated by observable market data.

 

 

Level 3 -

Inputs are derived from valuation techniques in which one or more significant inputs or value drivers are unobservable.

The following table represents the Company’s assets measured at fair value on a recurring basis as of September 30, 2023, and December 31, 2022, and the basis for those measurements (in thousands):

Fair Value Measurements Using

Quoted

Prices in

Active

Significant

Markets for

Other

Identical

Observable

Significant

September 30, 

Assets

Inputs

Unobservable

Assets

    

2023

    

(Level 1)

    

(Level 2)

    

Inputs (Level 3)

Cash equivalents

 

  

 

  

 

  

 

  

Money market mutual funds

$

92,113

$

92,113

$

$

Short-term investments (available-for-sale debt securities)

 

  

 

  

 

  

 

  

U.S. Government securities (1)

 

23,744

 

23,744

 

 

Total

$

115,857

$

115,857

$

$

Fair Value Measurements Using

Quoted

Prices in

Active

Significant

Markets for

Other

Significant

Identical

Observable

Unobservable

December 31, 

Assets

Inputs

Inputs 

Assets

    

2022

    

(Level 1)

    

(Level 2)

    

(Level 3)

Cash equivalents

 

  

 

  

 

  

 

  

Money market mutual funds

$

75,738

$

75,738

$

$

U.S. Government securities (1)

1,990

1,990

Short-term investments (available-for-sale debt securities)

  

 

  

 

  

 

  

U.S. Government securities (1)

19,557

 

19,557

 

 

Total

$

97,285

$

97,285

$

$

(1)As of September 30, 2023, and December 31, 2022, the amortized cost of the Company’s investments in U.S Government securities approximated their fair value due to their short-term maturities, and there have been no events or changes in circumstances that would have had a significant effect on the fair value of these securities in the periods presented. For the three and nine months ended September 30, 2023, there were no material realized or unrealized gains or losses, either individually or in the aggregate.
XML 27 R17.htm IDEA: XBRL DOCUMENT v3.23.3
COMMITMENTS AND CONTINGENCIES
9 Months Ended
Sep. 30, 2023
COMMITMENTS AND CONTINGENCIES  
COMMITMENTS AND CONTINGENCIES

11. COMMITMENTS AND CONTINGENCIES

Strategic Partnership with Advantest — See Note 12, Strategic Partnership Agreement with Advantest and Related Party Transactions, for the discussion about the Company’s commitments under the strategic partnership with Advantest.

Operating Leases — Refer to Note 4, Leases, for the discussion about the Company’s lease commitments.

Indemnifications — The Company generally provides a warranty to its customers that its software will perform substantially in accordance with documented specifications typically for a period of 90 days following initial delivery of its products. The Company also indemnifies certain customers from third-party claims of intellectual property infringement relating to the use of its products. Historically, costs related to these guarantees have not been significant. The Company is unable to estimate the maximum potential impact of these guarantees on its future results of operations.

Purchase Obligations — The Company has purchase obligations with certain suppliers for the purchase of goods and services entered into in the ordinary course of business. As of September 30, 2023, total outstanding purchase obligations were $24.6 million, the majority of which is due within the next 15 months.

Indemnification of Officers and Directors — As permitted by the Delaware general corporation law, the Company has included a provision in its certificate of incorporation to eliminate the personal liability of its officers and directors for monetary damages for breach or alleged breach of their fiduciary duties as officers or directors, other than in cases of fraud or other willful misconduct.

In addition, the Bylaws of the Company provide that the Company is required to indemnify its officers and directors even when indemnification would otherwise be discretionary, and the Company is required to advance expenses to its officers and directors as incurred in connection with proceedings against them for which they may be indemnified. The Company has entered into indemnification agreements with its officers and directors containing provisions that are in some respects broader than the specific indemnification provisions contained in the Delaware general corporation law. The indemnification agreements require the Company to indemnify its officers and directors against liabilities that may arise by reason of their status or service as officers and directors other than for liabilities arising from willful misconduct of a culpable nature, to advance their expenses incurred as a result of any proceeding against them as to which they could be indemnified, and to obtain directors’ and officers’ insurance if available on reasonable terms. The Company has obtained directors’ and officers’ liability insurance in amounts comparable to other companies of the Company’s size and in the Company’s industry. Since a maximum obligation of the Company is not explicitly stated in the Company’s Bylaws or in its indemnification agreements and will depend on the facts and circumstances that arise out of any future claims, the overall maximum amount of the obligations cannot be reasonably estimated.

Legal Proceedings — From time to time, the Company is subject to various claims and legal proceedings that arise in the ordinary course of business. The Company accrues for losses related to litigation when a potential loss is probable, and the loss can be reasonably estimated in accordance with FASB requirements. As of September 30, 2023, the Company was not party to any material legal proceedings for which a loss was probable or an amount was accrued. From time to time, the Company may enter into contingent fee arrangements with external legal firms that may represent the Company in legal proceedings related to disputes. Contingent legal fees are accrued by the Company when they are probable and reasonably estimable.  

On May 6, 2020, the Company initiated an arbitration proceeding with the Hong Kong International Arbitration Center against SMIC New Technology Research & Development (Shanghai) Corporation (“SMIC”) due to SMIC’s failure to pay fees due to the Company under a series of contracts. The Company seeks to recover the unpaid fees, a declaration requiring SMIC to pay fees under the contracts in the future (or a lump sum payment to end the contract), and costs associated with

bringing the arbitration proceeding. SMIC denies liability and an arbitration hearing was held in February 2023. Final written submissions were submitted by the parties at the end of August. A decision is expected potentially within this calendar year.

XML 28 R18.htm IDEA: XBRL DOCUMENT v3.23.3
STRATEGIC PARTNERSHIP AGREEMENT WITH ADVANTEST AND RELATED PARTY TRANSACTIONS
9 Months Ended
Sep. 30, 2023
STRATEGIC PARTNERSHIP AGREEMENT WITH ADVANTEST AND RELATED PARTY TRANSACTIONS  
STRATEGIC PARTNERSHIP AGREEMENT WITH ADVANTEST AND RELATED PARTY TRANSACTIONS

12. STRATEGIC PARTNERSHIP AGREEMENT WITH ADVANTEST AND RELATED PARTY TRANSACTIONS

In July 2020, the Company entered into a long-term strategic partnership with Advantest Corporation through its wholly-owned subsidiary, Advantest America, Inc. (collectively referred to herein as “Advantest”).

Analytics revenue recognized from Advantest was $2.6 million and $2.8 million during the three months ended September 30, 2023 and 2022, respectively, and $6.2 million and $8.1 million during the nine months ended September 30, 2023 and 2022, respectively. Accounts receivable from Advantest was not material as of September 30, 2023 and amounted to $0.3 million as of December 31, 2022. Deferred revenue amounted to $12.1 million and $7.1 million as of September 30, 2023, and December 31, 2022, respectively.

XML 29 R19.htm IDEA: XBRL DOCUMENT v3.23.3
BUSINESS COMBINATION
9 Months Ended
Sep. 30, 2023
BUSINESS COMBINATION  
BUSINESS COMBINATION

13. BUSINESS COMBINATION

On July 5, 2023 (the “Acquisition Date”), the Company, through its wholly-owned subsidiary in Canada, PDF Solutions Canada, Ltd., acquired 100% of the equity interest in Lantern Machinery Analytics, Inc. headquartered in Canada, a privately-held provider of automated image analysis and feature extraction artificial intelligence/machine learning software for critical inspection and metrology steps at battery cell development and manufacturing processes for the electric vehicle industry. This software will enhance the Company’s Exensio analytics platform and product offerings to new and existing battery manufacturer customers. The total cash consideration for this acquisition was $1.8 million, net of cash acquired, for all of the outstanding equity of Lantern Machinery Analytics, Inc.

The Company accounted for this acquisition as a business combination in accordance with FASB ASC Topic 805, Business Combinations. This method requires that assets acquired and liabilities assumed in a business combination be recognized at their respective estimated fair values as of the Acquisition Date. The excess of purchase consideration over the fair value of net tangible and identifiable intangible assets acquired was recorded as goodwill. The goodwill recorded from this acquisition represents business benefits the Company anticipates from the acquired workforce and expectation for expanded sales opportunities to foster further business growth. Due to the nature of the transaction, the goodwill associated with the acquisition is not deductible for tax purposes. As of September 30, 2023, payment made for this acquisition, net of cash acquired, amounted to $1.8 million and was funded from available cash of the Company.

The allocation of the purchase price for this acquisition, as of the date of the acquisition, is as follows (in thousands, except amortization period):

Amortization

    

Amount

    

Period (Years)

Allocation of Purchase Price:

 

  

 

  

Assets

 

  

 

  

Fair value of tangible assets (including cash of $265)

$

450

 

  

Fair value of intangible assets:

 

  

 

  

Developed technology

 

1,010

 

8

Customer relationships

 

100

 

6

Goodwill

 

895

 

N/A

Total assets acquired

$

2,455

 

  

Liabilities

 

  

 

  

Deferred tax liabilities

$

294

Accounts payable and accrued expenses

73

 

  

Total liabilities assumed

367

 

  

Total purchase price allocation

$

2,088

 

  

Pro forma results of operations have not been presented because the effect of the acquisition was not material to the Company’s financial results.

XML 30 R20.htm IDEA: XBRL DOCUMENT v3.23.3
SIGNIFICANT ACCOUNTING POLICIES (Policies)
9 Months Ended
Sep. 30, 2023
BASIS OF PRESENTATION AND SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES  
Basis of Presentation, Policy

Basis of Presentation

The interim unaudited condensed consolidated financial statements included herein have been prepared by PDF Solutions, Inc. (the “Company”) pursuant to the rules and regulations of the Securities and Exchange Commission (“SEC”), including the instructions to the Quarterly Report on Form 10-Q and Article 10 of Regulation S-X. Certain information and footnote disclosures normally included in annual financial statements prepared in accordance with accounting principles generally accepted in the United States of America have been condensed or omitted. The interim unaudited condensed consolidated financial statements reflect, in the opinion of management, all adjustments necessary (consisting only of normal recurring adjustments) to present a fair statement of results for the interim periods presented. The operating results for any interim period are not necessarily indicative of the results that may be expected for other interim periods or the full fiscal year. The accompanying interim unaudited condensed consolidated financial statements should be read in conjunction with the audited consolidated financial statements and notes thereto in the Company’s Annual Report on Form 10-K for the year ended December 31, 2022, filed with the SEC on March 1, 2023.

The interim unaudited condensed consolidated financial statements include the accounts of the Company and its wholly-owned subsidiaries after the elimination of all intercompany balances and transactions.

The accompanying interim unaudited condensed consolidated balance sheet as of December 31, 2022 has been derived from the audited consolidated financial statements but does not include all disclosures required by accounting principles generally accepted in the United States of America.

Use of Estimates, Policy

Use of Estimates

The preparation of financial statements in conformity with accounting principles generally accepted in the United States of America requires management to make estimates and assumptions that affect the reported amounts of assets and liabilities, the disclosure of contingent assets and liabilities at the date of the financial statements and the reported amounts of revenues and expenses during the reporting period. Significant estimates in these condensed consolidated financial statements include revenue recognition, the estimated useful lives of property and equipment and intangible assets, assumptions made in analysis of allowance for credit losses, impairment of goodwill and long-lived assets, valuation for deferred tax assets (“DTAs”), and accounting for lease obligations, stock-based compensation expense, and income tax uncertainties and contingencies. Actual results could differ from those estimates and may result in material effects on the Company’s operating results and financial position.

Revenue from Contracts with Customers, Policy

The Company derives revenue from two sources: Analytics revenue and Integrated Yield Ramp revenue.

The Company recognizes revenue in accordance with FASB Accounting Standards Codification (“ASC”) Topic 606, Revenue from Contracts with Customers, and its related amendments (collectively known as “ASC 606”). ASC 606 outlines a single comprehensive model to use in accounting for revenue arising from contracts with customers. Revenue is recognized when control of products or services is transferred to customers, in an amount that reflects the consideration the Company expects to be entitled to in exchange for those promised products or services.

The Company determines revenue recognition through the following five steps:

Identification of the contract, or contracts, with a customer
Identification of the performance obligations in the contract
Determination of the transaction price
Allocation of the transaction price to the performance obligations in the contract
Recognition of revenue when, or as, performance obligations are satisfied

The Company accounts for a contract when it has approval and commitment from both parties, the rights of the parties are identified, payment terms are identified, the contract has commercial substance, and collectibility of consideration is probable.

Contracts with multiple performance obligations

The Company enters into contracts that can include various combinations of licenses, products and services, some of which are distinct and are accounted for as separate performance obligations. For contracts with multiple performance obligations, the Company allocates the transaction price of the contract to each performance obligation on a relative basis using the standalone selling price (“SSP”).

Analytics Revenue

Analytics revenue is derived from the following primary offerings: licenses and services for standalone software (which is primarily Exensio® and Cimetrix® products), software-as-a-service (“SaaS”) (which is primarily Exensio® products), and Design-for-Inspection™ (“DFI™”) systems and Characterization Vehicle® (“CV®”) systems that do not include performance incentives based on customers’ yield achievement.

Revenue from standalone software is recognized depending on whether the license is perpetual or time-based. Perpetual (one-time charge) license software is recognized at the time of the inception of the arrangement when control transfers to the customers if the software license is considered as a separate performance obligation from the services offered by the Company.

Revenue from post-contract support is recognized over the contract term on a straight-line basis, because the Company is providing (i) support and (ii) unspecified software updates on a when-and-if available basis over the contract term. Revenue from time-based-licensed software is allocated to each performance obligation and is recognized either at a point in time or over time as follows. The license component is recognized at the time when control transfers to customers, with the post-contract support component recognized ratably over the committed term of the contract. For contracts with any combination of licenses, support, and other services, distinct performance obligations are accounted for separately. For contracts with multiple performance obligations, the Company allocates the transaction price of the contract to each performance obligation on a relative basis using the SSP attributed to each performance obligation.

Revenue from SaaS arrangements, which allow for the use of a cloud-based software product or service over a contractually determined period of time without the customer having to take possession of software, is accounted for as a subscription and is recognized as revenue ratably, on a straight-line basis, over the subscription period beginning on the date the service is first made available to customers. For contracts with any combination of SaaS and related services, distinct performance obligations are accounted for separately. For contracts with multiple performance obligations, the Company allocates the transaction price of the contract to each performance obligation on a relative basis using the SSP attributed to each performance obligation.

Revenue from DFI systems and CV systems (including Characterization services) that do not include performance incentives based on customers’ yield achievement is recognized primarily as services are performed. Where there are distinct performance obligations, the Company allocates revenue to all deliverables based on their SSPs. For those contracts with multiple performance obligations, the Company allocates the transaction price of the contract to each performance obligation on a relative basis using the SSP attributed to each performance obligation. Where there are not discrete performance obligations, historically, revenue is primarily recognized as services are performed using a percentage of completion method based on costs or labor-hours inputs, whichever is the most appropriate measure of the progress towards completion of the contract. The estimation of percentage of completion method is complex and subject to many variables that require significant judgment. Please refer to the “Significant Judgments” section of this Note for further discussion.

Integrated Yield Ramp Revenue

Integrated Yield Ramp revenue is derived from the Company’s fixed-fee engagements that include performance incentives based on customers’ yield achievement (which consists primarily of Gainshare royalties) typically based on customer’s wafer shipments, pertaining to these fixed-price contracts, which royalties are variable.

Revenue under these project-based contracts, which are delivered over a specific period of time, typically for a fixed fee component paid on a set schedule, is recognized as services are performed using a percentage of completion method based on costs or labor-hours inputs, whichever is the most appropriate measure of the progress towards completion of the contract. Where there are distinct performance obligations, the Company allocates revenue to all deliverables based on their SSPs and allocates the transaction price of the contract to each performance obligation on a relative basis using SSP. Similar to the services provided in connection with DFI systems and CV systems that are contributing to Analytics revenue, due to the nature of the work performed in these arrangements, the estimation of percentage of completion method is complex and subject to many variables that require significant judgment. Please refer to the “Significant Judgments” section of this Note for further discussion.

The Gainshare contained in Integrated Yield Ramp contracts is a variable fee related to continued usage of the Company’s intellectual property after the fixed-fee service period ends, based on a customer’s yield achievement. Revenue derived from Gainshare is contingent upon the Company’s customers reaching certain defined production yield levels. Gainshare periods are generally subsequent to the delivery of all contractual services and performance obligations. The Company records Gainshare as a usage-based royalty derived from customers’ usage of intellectual property and records it in the same period in which the usage occurs.

Contract Balances

Contract Balances

The Company performs its obligations under a contract with a customer by licensing software or providing services in exchange for consideration from the customer. The timing of the Company’s performance often differs from the timing of the customer’s payment, which results in the recognition of a receivable, a contract asset or a contract liability.

The Company classifies the right to consideration in exchange for software or services transferred to a customer as either a receivable or a contract asset. A receivable is a right to consideration that is unconditional, as compared to a contract asset, which is a right to consideration that is conditional upon factors other than the passage of time. The majority of the Company’s contract assets represent unbilled amounts related to fixed-price service contracts when the revenue recognized exceeds the amount billed to the customer. The contract assets are generally classified as current and are recorded on a net basis with deferred revenue (i.e., contract liabilities) at the contract level. As of September 30, 2023 and December 31, 2022, the total contract assets included in prepaid expenses and other current assets in the accompanying condensed consolidated balance sheets were $8.1 million and $3.3 million, respectively. The Company did not record any asset impairment charges related to contract assets for the periods presented.

Deferred revenues and billings in excess of recognized revenues consist substantially of amounts invoiced in advance of revenue recognition and are recognized as the revenue recognition criteria are met. Deferred revenues that will be recognized during the succeeding twelve-month period are recorded as current deferred revenues and the remaining portion is recorded in other non-current liabilities in the accompanying condensed consolidated balance sheets. As of September 30, 2023, and December 31, 2022, the non-current portion of deferred revenues included in non-current liabilities was $2.3 million and $1.9 million, respectively. Revenue recognized that was included in the deferred revenues and billings in excess of recognized revenues balances at the beginning of each reporting period was $13.1 million and $10.6 million during the three months ended September 30, 2023 and 2022, respectively, and $23.8 million and $16.3 million during the nine months ended September 30, 2023 and 2022, respectively.

As of September 30, 2023, the aggregate amount of the transaction price allocated to the remaining performance obligations related to customer contracts that were unsatisfied or partially unsatisfied was approximately $218.3 million. Given the applicable contract terms with customers, more than half of this amount is expected to be recognized as revenue over the next two years with the remainder to be recognized thereafter. This amount does not include insignificant contracts to which the customer is not committed, nor significant contracts for which the Company recognizes revenue equal to the amount the Company has the right to invoice for services performed, or future sales-based or usage-based royalty payments in exchange for a license of intellectual property. This amount is subject to change due to future revaluations of variable consideration, terminations, other contract modifications, or currency adjustments. The estimated timing of the recognition of remaining unsatisfied performance obligations is subject to change and is affected by changes to the scope, change in timing of delivery of products and services, or contract modifications.

The adjustment to revenue recognized from performance obligations satisfied (or partially satisfied) in previous periods was a decrease of $0.6 million and an increase of $1.9 million during the three months ended September 30, 2023 and 2022, respectively, and an increase of $4.3 million and an increase of $0.4 million during the nine months ended September 30, 2023 and 2022, respectively. These amounts primarily represent changes in estimated percentage-of-completion based contracts and changes in actual versus estimated Gainshare.

Significant Judgements, Policy

Significant Judgments

Judgments and estimates are required under ASC 606. Due to the complexity of certain contracts, the actual revenue recognition treatment required under ASC 606 for the Company’s arrangements may be dependent on contract-specific terms and may vary in some instances.

For revenue under project-based contracts for fixed-price implementation services, revenue is recognized as services are performed using a percentage-of-completion method based on costs or labor-hours input method, whichever is the most appropriate measure of the progress towards completion of the contract. Due to the nature of the work performed in these arrangements, the estimation of percentage of completion method is complex, subject to many variables and requires significant judgment. Key factors reviewed by the Company to estimate costs to complete each contract are future labor and product costs and expected productivity efficiencies. If circumstances arise that change the original estimates of revenues, costs, or extent of progress toward completion, revisions to the estimates are made. These revisions may result in increases or decreases in estimated revenues or costs, and such revisions are reflected in revenue on a cumulative catch-up basis in the period in which the circumstances that gave rise to the revision become known.

The Company’s contracts with customers often include promises to transfer products, software licenses and provide services, including professional services, technical support services, and rights to unspecified updates to a customer. Determining whether licenses and services are distinct performance obligations that should be accounted for separately, or not distinct and thus accounted for together, requires significant judgment. The Company rarely licenses software on a standalone basis, so the Company is required to estimate the range of SSPs for each performance obligation. In instances where SSP is not directly observable because the Company does not license the software or sell the service separately, the Company determines the SSP using information that may include market conditions and other observable inputs.

The Company is required to record Gainshare revenue in the same period in which the usage occurs. Because the Company generally does not receive the acknowledgment reports from its customers during a given quarter within the time frame necessary to adequately review the reports and include the actual amounts in quarterly results for such quarter, the Company accrues the related revenue based on estimates of customers underlying sales achievement. The Company’s estimation process can be based on historical data, trends, seasonality, changes in the contract rate, knowledge of the changes in the industry and changes in the customer’s manufacturing environment learned through discussions with customers and sales personnel. As a result of accruing revenue for the quarter based on such estimates, adjustments will be required in the following quarter to true-up revenue to the actual amounts reported.

Practical Expedient, Policy

Practical expedient

The Company does not adjust the transaction price for the effects of a significant financing component when the period between the transfers of the promised good or service to the customer and payment for that good or service by the customer is expected to be one year or less. The Company assessed each of its revenue generating arrangements in order to determine whether a significant financing component exists, and determined its contracts did not include a significant financing component during the three and nine months ended September 30, 2023 and 2022.

Accounts Receivable, Policy

Accounts receivable

Accounts receivable include amounts that are unbilled at the end of the period that are expected to be billed and collected within a 12-month period. Unbilled accounts receivable, included in accounts receivable, totaled $14.3 million and $13.5 million as of September 30, 2023, and December 31, 2022, respectively. Unbilled accounts receivable that are not expected to be billed and collected during the succeeding 12-month period are recorded in other non-current assets and totaled $0.8 million and $0.8 million as of September 30, 2023, and December 31, 2022, respectively.

Costs to obtain or fulfill a contract

Costs to obtain or fulfill a contract

The Company capitalizes the incremental costs to obtain or fulfill a contract with a customer, including direct sales commissions and related fees, when it expects to recover those costs. Amortization expense related to these capitalized costs is recognized over the period associated with the revenue from which the cost was incurred. Total capitalized direct sales commission costs included in prepaid expenses and other current assets in the accompanying condensed consolidated balance sheets as of September 30, 2023, and December 31, 2022, were $2.0 million and $1.7 million, respectively. Total capitalized direct sales commission costs included in other non-current assets in the accompanying condensed consolidated balance sheets as of September 30, 2023, and December 31, 2022, were $2.5 million and $2.1 million, respectively. Amortization of these assets was $0.5 million and $0.4 million during the three months ended September 30, 2023 and 2022, respectively, and $1.5 million and $1.1 million during the nine months ended September 30, 2023 and 2022. There was no impairment loss in relation to the costs capitalized for the periods presented.

Stock-Based Compensation, Policy

Stock-based compensation is estimated at the grant date based on the award’s fair value and is recognized on a straight-line basis over the vesting periods, generally four years. Stock-based compensation expense before taxes related to the Company’s stock plans and employee stock purchase plans was allocated as follows (in thousands):

Three Months Ended September 30, 

Nine Months Ended September 30, 

    

2023

    

2022

    

2023

    

2022

Costs of revenues

$

1,120

$

854

$

3,022

$

2,237

Research and development

 

2,196

 

2,180

 

5,609

 

7,158

Selling, general, and administrative

 

2,683

 

2,102

 

6,930

 

5,166

Stock-based compensation expense

$

5,999

$

5,136

$

15,561

$

14,561

Stock Incentive Plan, Policy

The Company estimated the fair value of share-based awards granted under the 2011 Stock Plan during the period using the Black-Scholes-Merton option-pricing model. There were no stock options granted during the three and nine months ended September 30, 2023 and 2022.

Employee Stock Purchase Plan, Policy

The Company estimated the fair value of purchase rights granted under the 2021 Purchase Plan during the period using the Black-Scholes-Merton option-pricing model with the following weighted average assumptions, resulting in the following weighted average fair values:

Nine Months Ended September 30, 

2023

    

2022

    

Expected life (in years)

1.25

 

1.25

 

Volatility

43.66

%  

48.73

%  

Risk-free interest rate

5.15

%  

2.75

%  

Expected dividend

 

 

Weighted average fair value of purchase rights granted during the period

$

15.71

$

10.00

Net Income (Loss) Per Share, Policy Basic net income (loss) per share is computed by dividing net income (loss) by weighted average number of common shares outstanding for the period (excluding outstanding stock options and shares subject to repurchase). Diluted net income (loss) per share is computed using the weighted average number of common shares outstanding for the period plus the potential effect of dilutive securities which are convertible into common shares (using the treasury stock method), except in cases in which the effect would be anti-dilutive.
Fair Value Measurement, Policy

Fair value is the exit price, or the amount that would be received to sell an asset or paid to transfer a liability in an orderly transaction between market participants as of the measurement date. The multiple assumptions used to value financial instruments are referred to as inputs, and a hierarchy for inputs used in measuring fair value is established, that maximizes the use of observable inputs and minimizes the use of unobservable inputs by requiring that the most observable inputs be used when available. Observable inputs reflect assumptions market participants would use in pricing an asset or liability based on market data obtained from independent sources while unobservable inputs reflect a reporting entity’s pricing based upon its own market assumptions. These inputs are ranked according to a fair value hierarchy that prioritizes the inputs to valuation techniques used to measure fair value into three broad levels.

Level 1 -

Inputs are quoted prices in active markets for identical assets or liabilities.

 

 

Level 2 -

Inputs are quoted prices for similar assets or liabilities in an active market, quoted prices for identical or similar assets or liabilities in markets that are not active, inputs other than quoted prices that are observable and market-corroborated inputs which are derived principally from or corroborated by observable market data.

 

 

Level 3 -

Inputs are derived from valuation techniques in which one or more significant inputs or value drivers are unobservable.

Business Combinations, Policy The Company accounted for this acquisition as a business combination in accordance with FASB ASC Topic 805, Business Combinations. This method requires that assets acquired and liabilities assumed in a business combination be recognized at their respective estimated fair values as of the Acquisition Date. The excess of purchase consideration over the fair value of net tangible and identifiable intangible assets acquired was recorded as goodwill. The goodwill recorded from this acquisition represents business benefits the Company anticipates from the acquired workforce and expectation for expanded sales opportunities to foster further business growth. Due to the nature of the transaction, the goodwill associated with the acquisition is not deductible for tax purposes.
Accounting Standards, Policy

Recent Accounting Standards

Accounting Standards Adopted

In June 2016, the Financial Accounting Standards Board (“FASB’) issued Accounting Standards Update (“ASU”) No. 2016-13, Financial Instruments – Credit Losses (Topic 326): Measurement of Credit Losses on Financial Instruments (“ASU No. 2016-13”), which requires measurement and recognition of expected credit losses for financial assets held at the reporting date based on internal information, external information, or a combination of both relating to past events, current conditions, and reasonable and supportable forecasts. ASU No. 2016-13 replaces the existing incurred loss impairment model with a forward-looking expected credit loss model, which will result in earlier recognition of credit losses. Subsequent to the issuance of ASU No. 2016-13, the FASB issued ASU No. 2018-19, Codification Improvements to Topic 326, Financial Instruments – Credit Losses, ASU No. 2019-04, Codification Improvements to Topic 326, Financial Instruments – Credit Losses, Topic 815, Derivatives and Hedging, and Topic 825, Financial Instrument, ASU No. 2019-05, Financial Instruments – Credit Losses (Topic 326) Targeted Transition Relief, ASU No. 2016-13, ASU No. 2019-10 Financial Instruments-Credit Losses (Topic 326), Derivatives and Hedging (Topic 815), and Leases (Topic 842), and ASU No. 2019-11 Codification Improvements to Topic 326, Financial Instruments-Credit Losses. The subsequent ASUs do not change the core principle of the guidance in

ASU No. 2016-13. Instead, these amendments are intended to clarify and improve operability of certain topics included within ASU No. 2016-13.

The Company adopted this standard on January 1, 2023, using a modified retrospective approach, which requires a cumulative-effect adjustment to retained earnings as of the beginning of the period of adoption with prior periods not restated. The adoption of ASU No. 2016-13 did not have a material impact on the Company’s condensed consolidated financial statements.

Accounting Standards Not Yet Adopted

Management has reviewed other recently issued accounting pronouncements issued or proposed by the FASB, and does not believe any of these accounting pronouncements has had or will have a material impact on the condensed consolidated financial statements.

XML 31 R21.htm IDEA: XBRL DOCUMENT v3.23.3
REVENUE FROM CONTRACT WITH CUSTOMERS (Tables)
9 Months Ended
Sep. 30, 2023
REVENUE FROM CONTRACT WITH CUSTOMERS  
Schedule of Disaggregation of Revenue

Three Months Ended September 30, 

 

Nine Months Ended September 30, 

    

2023

    

2022

2023

    

2022

Over time

68

%  

68

%

74

%  

70

%

Point-in-time

 

32

%  

32

%

26

%  

30

%

Total

 

100

%  

100

%

100

%  

100

%

XML 32 R22.htm IDEA: XBRL DOCUMENT v3.23.3
BALANCE SHEET COMPONENTS (Tables)
9 Months Ended
Sep. 30, 2023
BALANCE SHEET COMPONENTS  
Schedule of Property, Plant and Equipment

September 30, 

December 31, 

    

2023

2022

Computer equipment

$

12,076

$

11,853

Software

 

5,575

 

5,395

Furniture, fixtures, and equipment

 

2,491

 

2,484

Leasehold improvements

 

6,456

 

6,467

Laboratory and other equipment

 

4,770

 

4,431

Test equipment

 

27,866

 

28,403

Property and equipment in progress:

 

 

DFI™ system assets

21,123

22,231

CV® system and other assets

 

6,963

 

5,105

 

87,320

 

86,369

Less: Accumulated depreciation and amortization

 

(49,487)

 

(46,195)

Total

$

37,833

$

40,174

Schedule of Finite-Lived Intangible Assets, Net

September 30, 2023

December 31, 2022

Amortization

Gross

Net

Gross

Net

Period

Carrying

Accumulated

Carrying

Carrying

Accumulated

Carrying

(Years)

    

Amount

    

Amortization

    

Amount

    

Amount

    

Amortization

    

Amount

Acquired identifiable intangibles:

Customer relationships

 

1-10

$

9,505

$

(7,170)

$

2,335

$

9,407

$

(6,684)

$

2,723

Developed technology

 

4-9

 

34,627

 

(21,463)

 

13,164

 

33,635

 

(19,647)

 

13,988

Tradename and trademarks

 

2-10

 

1,598

 

(999)

 

599

 

1,598

 

(918)

 

680

Patent

 

6-10

 

2,100

 

(1,760)

 

340

 

2,100

 

(1,696)

 

404

Noncompetition agreements

 

3

 

848

 

(800)

 

48

 

848

 

(588)

 

260

Total

$

48,678

$

(32,192)

$

16,486

$

47,588

$

(29,533)

$

18,055

Schedule of Finite-lived Intangible Assets Amortization Expense

Three Months Ended September 30, 

Nine Months Ended September 30, 

    

2023

    

2022

    

2023

    

2022

Amortization of acquired technology included under costs of revenues

$

574

$

553

$

1,680

$

1,659

Amortization of acquired intangible assets presented separately under costs and expenses

 

328

 

318

 

979

 

946

Total amortization of acquired intangible assets

$

902

$

871

$

2,659

$

2,605

Schedule of Finite-Lived Intangible Assets, Future Amortization Expense

Year Ending December 31, 

    

Amount

2023 (remaining three months)

$

890

2024

 

3,233

2025

 

3,069

2026

 

2,899

2027

 

2,747

2028 and thereafter

 

3,648

Total future amortization expense

$

16,486

XML 33 R23.htm IDEA: XBRL DOCUMENT v3.23.3
LEASES (Tables)
9 Months Ended
Sep. 30, 2023
LEASES  
Schedule of Lease Expenses

Three Months Ended September 30, 

Nine Months Ended September 30, 

    

2023

    

2022

    

2023

    

2022

Operating lease expense (1)

$

382

$

375

$

1,153

$

1,073

Short-term lease and variable lease expense (2)

 

239

 

244

 

673

 

801

Total lease expense

$

621

$

619

$

1,826

$

1,874

(1)Net of gain recognized upon lease termination of $0.1 million in the nine months ended September 30, 2022.
(2)Leases with an initial term of 12 months or less are not recorded on the accompanying condensed consolidated balance sheets, and the Company recognizes lease expense for these leases on a straight-line basis over the lease term. Variable lease expense for the periods presented primarily included common area maintenance charges.
Schedule of Supplemental Operating Lease Information

September 30, 

December 31, 

 

    

2023

2022

 

Weighted average remaining lease term under operating leases (in years)

4.7

5.3

Weighted average discount rate for operating lease liabilities

 

4.89

%  

4.87

%

Schedule of Operating Lease Liabilities and Maturities

Year Ending December 31, 

    

Amount (1)

2023 (remaining three months)

$

422

2024

 

1,619

2025

 

1,539

2026

 

1,354

2027

 

1,294

2028 and thereafter

992

Total future minimum lease payments

7,220

Less: Interest (2)

 

(794)

Present value of future minimum lease payments under operating lease liabilities (3)

$

6,426

(1)As of September 30, 2023, the total operating lease liability includes approximately $0.9 million related to an option to extend a lease term that is reasonably certain to be exercised.
(2)Calculated using incremental borrowing interest rate for each lease.
(3)Includes the current portion of operating lease liabilities of $1.5 million as of September 30, 2023.
XML 34 R24.htm IDEA: XBRL DOCUMENT v3.23.3
EMPLOYEE BENEFIT PLANS (Tables)
9 Months Ended
Sep. 30, 2023
EMPLOYEE BENEFIT PLANS  
Schedule of Share-based Payment Awards, Stock Options, Valuation Assumptions

Nine Months Ended September 30, 

2023

    

2022

    

Expected life (in years)

1.25

 

1.25

 

Volatility

43.66

%  

48.73

%  

Risk-free interest rate

5.15

%  

2.75

%  

Expected dividend

 

 

Weighted average fair value of purchase rights granted during the period

$

15.71

$

10.00

Schedule of Share-based Payment Arrangement, Expensed and Capitalized Amounts

Three Months Ended September 30, 

Nine Months Ended September 30, 

    

2023

    

2022

    

2023

    

2022

Costs of revenues

$

1,120

$

854

$

3,022

$

2,237

Research and development

 

2,196

 

2,180

 

5,609

 

7,158

Selling, general, and administrative

 

2,683

 

2,102

 

6,930

 

5,166

Stock-based compensation expense

$

5,999

$

5,136

$

15,561

$

14,561

Schedule of Share-based Payment Arrangement, Options Activity - Additional Information

Outstanding Options

Weighted

Weighted

Average

Average

Remaining

Aggregate

Number of

Exercise

Contractual

Intrinsic

Options

Price

Term

Value

    

(in thousands)

    

per Share

    

(Years)

    

(in thousands)

Outstanding, December 31, 2022

 

68

$

16.11

 

  

 

  

Granted

 

 

  

 

  

Exercised

 

(29)

16.39

 

  

 

  

Canceled

 

 

  

 

  

Expired

 

 

  

 

  

Outstanding, September 30, 2023

 

39

$

15.91

 

4.40

$

654

Vested and expected to vest, September 30, 2023

 

39

$

15.91

 

4.40

$

653

Exercisable, September 30, 2023

 

36

$

15.80

 

4.21

$

604

The aggregate intrinsic value in the table above represents the total intrinsic value based on the Company’s closing stock price of $32.40 per share as of September 30, 2023. The total intrinsic value of options exercised was $0.6 million during the nine months ended September 30, 2023.

Schedule of Share-based Payment Arrangement, Restricted Stock Unit Activity

Weighted

Average Grant

Shares 

Date Fair Value

    

(in thousands)

    

Per Share

Nonvested, December 31, 2022

 

2,124

$

21.29

Granted

 

753

$

43.92

Vested

 

(829)

$

20.46

Forfeited

 

(18)

$

25.87

Nonvested, September 30, 2023

 

2,030

$

29.98

XML 35 R25.htm IDEA: XBRL DOCUMENT v3.23.3
NET INCOME (LOSS) PER SHARE (Tables)
9 Months Ended
Sep. 30, 2023
NET INCOME (LOSS) PER SHARE  
Schedule of Earnings Per Share, Basic and Diluted

Three Months Ended September 30, 

Nine Months Ended September 30, 

    

2023

    

2022

    

2023

    

2022

Numerator:

 

  

 

  

 

  

 

  

Net income (loss)

$

(4,972)

$

1,385

$

2,218

$

(3,912)

Denominator:

 

  

 

  

 

  

 

  

Basic weighted average shares outstanding

 

38,187

 

37,226

 

37,930

 

37,285

Effect of dilutive stock options, unvested restricted stock units, and shares of common stock expected to be issued under employee stock purchase plan(s)

 

 

828

 

1,047

 

Diluted weighted average shares outstanding

 

38,187

 

38,054

 

38,977

 

37,285

Net income (loss) per share:

Basic

$

(0.13)

$

0.04

$

0.06

$

(0.10)

Diluted

$

(0.13)

$

0.04

$

0.06

$

(0.10)

Schedule of Antidilutive Securities Excluded from Computation of Earnings Per Share

Three Months Ended September 30, 

Nine Months Ended September 30, 

    

2023

    

2022

    

2023

    

2022

Outstanding options

 

23

 

 

63

Non-vested restricted stock units

 

1,391

62

 

223

784

Employee Stock Purchase Plan

 

38

 

75

Total

 

1,452

 

62

 

223

922

XML 36 R26.htm IDEA: XBRL DOCUMENT v3.23.3
CUSTOMER AND GEOGRAPHIC INFORMATION (Tables)
9 Months Ended
Sep. 30, 2023
CUSTOMER AND GEOGRAPHIC INFORMATION  
Schedule of Revenue by Major Customers by Reporting Segments

Three Months Ended September 30, 

 

Nine Months Ended September 30, 

Customer

    

2023

    

2022

    

2023

    

2022

 

A

38

%  

28

%

36

%  

30

%

B

*

%  

16

%

10

%  

11

%

Gross accounts receivable balances (including amounts that are unbilled) from individual customers that are approximately 10% or more of the Company’s gross accounts receivable balance are as follows:

September 30, 

December 31, 

 

Customer

    

2023

2022

 

A

 

44

%  

29

%

B

 

*

%  

12

%

C

*

%  

12

%

* represents less than 10%

Schedule of Revenue from External Customers Attributed to Foreign Countries by Geographic Area

Three Months Ended September 30, 

2023

2022

 

Percentage

Percentage

 

    

Revenues

    

of Revenues

    

Revenues

    

of Revenues

 

United States

$

24,477

 

58

%  

$

18,292

46

%

China

 

7,549

 

18

 

9,555

24

Rest of the world

 

10,324

 

24

 

12,013

30

Total revenue

$

42,350

 

100

%  

$

39,860

 

100

%

Nine Months Ended September 30, 

2023

2022

 

Percentage

Percentage

 

    

Revenues

    

of Revenues

    

Revenues

    

of Revenues

 

United States

$

70,090

 

56

%  

$

52,869

 

49

%

China

 

21,927

 

18

 

18,214

 

17

Rest of the world

 

32,693

 

26

 

36,943

 

34

Total revenue

$

124,710

 

100

%  

$

108,026

 

100

%

Schedule of Disclosure on Geographic Areas, Long-Lived Assets in Individual Foreign Countries by Country

September 30, 

December 31, 

    

2023

2022

United States (1)

$

45,419

$

44,730

Rest of the world

 

1,207

 

1,446

Total long-lived assets, net

$

46,626

$

46,176

(1) Includes assets deployed at customer sites which could be outside the U.S.

XML 37 R27.htm IDEA: XBRL DOCUMENT v3.23.3
BUSINESS COMBINATION (Tables)
9 Months Ended
Sep. 30, 2023
Notes Tables  
Schedule of allocated purchase price for business acquisition

Amortization

    

Amount

    

Period (Years)

Allocation of Purchase Price:

 

  

 

  

Assets

 

  

 

  

Fair value of tangible assets (including cash of $265)

$

450

 

  

Fair value of intangible assets:

 

  

 

  

Developed technology

 

1,010

 

8

Customer relationships

 

100

 

6

Goodwill

 

895

 

N/A

Total assets acquired

$

2,455

 

  

Liabilities

 

  

 

  

Deferred tax liabilities

$

294

Accounts payable and accrued expenses

73

 

  

Total liabilities assumed

367

 

  

Total purchase price allocation

$

2,088

 

  

XML 38 R28.htm IDEA: XBRL DOCUMENT v3.23.3
REVENUE FROM CONTRACT WITH CUSTOMERS (Details)
$ in Thousands
3 Months Ended 9 Months Ended
Sep. 30, 2023
USD ($)
Sep. 30, 2022
USD ($)
Sep. 30, 2023
USD ($)
item
Sep. 30, 2022
USD ($)
Dec. 31, 2022
USD ($)
Number of revenue sources | item     2    
Contract with Customer, Asset, after Allowance for Credit Loss, Current, Total $ 8,100   $ 8,100   $ 3,300
Capitalized Contract Cost, Impairment Loss     $ 0 $ 0  
Short-term deferred revenue     12 months    
Revenue, Remaining Performance Obligation, Amount 218,300   $ 218,300    
Contract with Customer, Performance Obligation Satisfied in Previous Period 600 $ 1,900 4,300 400  
Amortization of Capitalized Contract Costs 500 400 1,500 1,100  
Prepaid Expenses and Other Current Assets          
Capitalized Contract Cost, Net, Total 2,000   2,000   1,700
Other Non-current Assets          
Capitalized Contract Cost, Net, Total 2,500   2,500   2,100
Non-current Liabilities          
Contract with Customer, Liability, Noncurrent Revenue Deferred 2,300   2,300   $ 1,900
Deferred Revenue and Billings in Excess of Recognized Revenue          
Contract with Customer, Liability, Revenue Recognized $ 13,100 $ 10,600 $ 23,800 $ 16,300  
Geographic Concentration Risk | Revenue Benchmark          
Percentage of Revenues 100.00% 100.00% 100.00% 100.00%  
Geographic Concentration Risk | Revenue Benchmark | Non-US [Member]          
Percentage of Revenues 42.00% 54.00% 44.00% 51.00%  
XML 39 R29.htm IDEA: XBRL DOCUMENT v3.23.3
REVENUE FROM CONTRACT WITH CUSTOMERS - Disaggregation of Revenue (Details)
3 Months Ended 9 Months Ended
Sep. 30, 2023
Sep. 30, 2022
Sep. 30, 2023
Sep. 30, 2022
Percent of revenues 100.00% 100.00% 100.00% 100.00%
Transferred over Time [Member]        
Percent of revenues 68.00% 68.00% 74.00% 70.00%
Transferred at Point in Time [Member]        
Percent of revenues 32.00% 32.00% 26.00% 30.00%
XML 40 R30.htm IDEA: XBRL DOCUMENT v3.23.3
REVENUE FROM CONTRACT WITH CUSTOMERS - Additional information (Details)
Sep. 30, 2023
Software License and Related Services Agreement [Member] | Advantest America, Inc. [Member] | Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date [Axis]: 2022-04-01  
Revenue recognition, expected period to recognize more than half of remaining performance obligations 2 years
XML 41 R31.htm IDEA: XBRL DOCUMENT v3.23.3
BALANCE SHEET COMPONENTS (Details) - USD ($)
3 Months Ended 9 Months Ended
Sep. 30, 2023
Sep. 30, 2022
Sep. 30, 2023
Sep. 30, 2022
Dec. 31, 2022
Period over which current unbilled receivables are billed and collected     12 months    
Depreciation, Depletion and Amortization, Nonproduction, Total $ 1,200,000 $ 1,400,000 $ 3,800,000 $ 4,200,000  
Impairment of Intangible Assets, Finite-lived     0 0  
Goodwill 15,008,000   15,008,000   $ 14,123,000
Impairment of goodwill     0 0  
Amortization of acquired intangible assets presented separately under Costs and Expenses 328,000 318,000 979,000 946,000  
Total amortization of acquired intangible assets 902,000 871,000 $ 2,659,000 2,605,000  
Weighted-average amortization period intangible assets     5 years 6 months    
Accounts Receivable          
Unbilled Receivables, Current 14,300,000   $ 14,300,000   13,500,000
Other Non-current Assets          
Unbilled Receivables, Not Expected to be Billed and Collected in Next Twelve Months 800,000   800,000   $ 800,000
Costs of Revenues          
Amortization of acquired technology included under Costs of revenues 574,000 553,000 1,680,000 1,659,000  
Costs and Expenses          
Amortization of acquired intangible assets presented separately under Costs and Expenses $ 328,000 $ 318,000 $ 979,000 $ 946,000  
XML 42 R32.htm IDEA: XBRL DOCUMENT v3.23.3
BALANCE SHEET COMPONENTS - Property and Equipment (Details) - USD ($)
$ in Thousands
Sep. 30, 2023
Dec. 31, 2022
Property and equipment, gross $ 87,320 $ 86,369
Less: accumulated depreciation and amortization (49,487) (46,195)
Total 37,833 40,174
Computer Equipment    
Property and equipment, gross 12,076 11,853
Software    
Property and equipment, gross 5,575 5,395
Furniture, Fixtures and Equipment    
Property and equipment, gross 2,491 2,484
Leasehold Improvements    
Property and equipment, gross 6,456 6,467
Laboratory and Other Equipment    
Property and equipment, gross 4,770 4,431
Test Equipment    
Property and equipment, gross 27,866 28,403
In-Progress DFI System Assets    
Property and equipment, gross 21,123 22,231
In-Progress CV System and Other Assets    
Property and equipment, gross $ 6,963 $ 5,105
XML 43 R33.htm IDEA: XBRL DOCUMENT v3.23.3
BALANCE SHEET COMPONENTS - Intangible Assets (Details) - USD ($)
$ in Thousands
9 Months Ended
Sep. 30, 2023
Dec. 31, 2022
Weighted-average amortization period intangible assets 5 years 6 months  
Gross Carrying Amount $ 48,678 $ 47,588
Accumulated Amortization (32,192) (29,533)
Total future amortization expense 16,486  
Net Carrying Amount, Total 16,486 18,055
Customer Relationships    
Gross Carrying Amount 9,505 9,407
Accumulated Amortization (7,170) (6,684)
Total future amortization expense $ 2,335 2,723
Customer Relationships | Minimum    
Amortization Period (Year) 1 year  
Customer Relationships | Maximum    
Amortization Period (Year) 10 years  
Developed Technology Rights    
Gross Carrying Amount $ 34,627 33,635
Accumulated Amortization (21,463) (19,647)
Total future amortization expense $ 13,164 13,988
Developed Technology Rights | Minimum    
Amortization Period (Year) 4 years  
Developed Technology Rights | Maximum    
Amortization Period (Year) 9 years  
Tradename and Trademarks    
Gross Carrying Amount $ 1,598 1,598
Accumulated Amortization (999) (918)
Total future amortization expense $ 599 680
Tradename and Trademarks | Minimum    
Amortization Period (Year) 2 years  
Tradename and Trademarks | Maximum    
Amortization Period (Year) 10 years  
Patents    
Gross Carrying Amount $ 2,100 2,100
Accumulated Amortization (1,760) (1,696)
Total future amortization expense $ 340 404
Patents | Minimum    
Amortization Period (Year) 6 years  
Patents | Maximum    
Amortization Period (Year) 10 years  
Noncompete Agreements    
Amortization Period (Year) 3 years  
Gross Carrying Amount $ 848 848
Accumulated Amortization (800) (588)
Total future amortization expense $ 48 $ 260
XML 44 R34.htm IDEA: XBRL DOCUMENT v3.23.3
BALANCE SHEET COMPONENTS - Annual Amortization of Identifiable Intangible Assets (Details)
$ in Thousands
Sep. 30, 2023
USD ($)
BALANCE SHEET COMPONENTS  
2023 (remaining six months) $ 890
2024 3,233
2025 3,069
2026 2,899
2027 2,747
2028 and thereafter 3,648
Total future amortization expense $ 16,486
XML 45 R35.htm IDEA: XBRL DOCUMENT v3.23.3
LEASES - Other (Details)
$ in Thousands
3 Months Ended 9 Months Ended
Mar. 31, 2022
USD ($)
Sep. 30, 2023
USD ($)
lease
Sep. 30, 2022
USD ($)
Dec. 31, 2022
USD ($)
lease
Number of finance leases | lease   0   0
Operating Lease, Liability, Amount Related to Extension of Lease Term   $ 900    
Operating Lease, Liability, Current   1,504   $ 1,412
Operating lease right of use assets decrease from early lease termination     $ 500  
Operating lease liability decrease from early lease termination     $ 600  
Selling, General, and Administrative        
Lease termination gain $ 100 $ 100    
XML 46 R36.htm IDEA: XBRL DOCUMENT v3.23.3
LEASES - Lease Cost (Details) - USD ($)
$ in Thousands
3 Months Ended 9 Months Ended
Sep. 30, 2023
Sep. 30, 2022
Sep. 30, 2023
Sep. 30, 2022
Dec. 31, 2022
LEASES          
Operating lease expense $ 382 $ 375 $ 1,153 $ 1,073  
Short-term lease and variable lease expense 239 244 673 801  
Total lease expense $ 621 $ 619 $ 1,826 1,874  
Weighted average remaining lease term under operating ROU leases (in years) (Year) 4 years 8 months 12 days   4 years 8 months 12 days   5 years 3 months 18 days
Weighted average discount rate for operating lease liabilities 4.89%   4.89%   4.87%
Operating lease ROU assets obtained (in thousands)       $ 2,268  
XML 47 R37.htm IDEA: XBRL DOCUMENT v3.23.3
LEASES - Maturity of Operating Lease Liabilities (Details)
$ in Thousands
Sep. 30, 2023
USD ($)
LEASES  
2023 (remaining six months) $ 422
2024 1,619
2025 1,539
2026 1,354
2027 1,294
2028 and thereafter 992
Total future minimum lease payments 7,220
Less: Interest (2) (794)
Present value of future minimum lease payments under operating lease liabilities (3) $ 6,426
XML 48 R38.htm IDEA: XBRL DOCUMENT v3.23.3
STOCKHOLDERS EQUITY (Details) - USD ($)
$ / shares in Units, $ in Thousands
3 Months Ended 9 Months Ended 18 Months Ended 40 Months Ended
Apr. 11, 2022
Jun. 04, 2020
Sep. 30, 2023
Jun. 30, 2023
Mar. 31, 2023
Sep. 30, 2022
Jun. 30, 2022
Mar. 31, 2022
Sep. 30, 2023
Sep. 30, 2022
Sep. 30, 2023
Sep. 30, 2023
Purchases of treasury stock in connection with tax withholdings on restricted stock grants     $ 4,566 $ 468 $ 4,101 $ 1,601 $ 800 $ 3,389        
2020 Stock Repurchase Program                        
Stock Repurchase Program, Authorized Amount   $ 25,000                    
Stock Repurchase Program, Period in Force (Year)   2 years                    
Common stock repurchased                   218,858   470,070
Repurchase of common stock, weighted-average price per share                   $ 26.40   $ 21.91
Repurchases of common stock, cost                   $ 5,800   $ 10,300
2022 Stock Repurchase Program                        
Stock Repurchase Program, Authorized Amount $ 35,000                      
Stock Repurchase Program, Period in Force (Year) 2 years                      
Common stock repurchased                 21,340 714,600 735,940  
Repurchase of common stock, weighted-average price per share                 $ 34.81 $ 23.36 $ 23.69  
Repurchases of common stock, cost                 $ 700 $ 16,700 $ 17,400  
XML 49 R39.htm IDEA: XBRL DOCUMENT v3.23.3
EMPLOYEE BENEFIT PLANS - Other (Details) - USD ($)
$ / shares in Units, $ in Millions
3 Months Ended 9 Months Ended 140 Months Ended 227 Months Ended
Aug. 01, 2021
Jun. 15, 2021
Nov. 16, 2011
Sep. 30, 2023
Sep. 30, 2022
Sep. 30, 2023
Sep. 30, 2022
Jun. 30, 2023
May 17, 2020
Dec. 31, 2022
Stock Option Vesting Period           4 years        
Common Stock, Closing Share Price       $ 32.40   $ 32.40        
Options Exercised in Period, Intrinsic Value           $ 0.6        
Restricted Stock Units (RSUs)                    
Unrecognized Compensation       $ 48.6   $ 48.6        
Unrecognized Compensation Recognition Period           2 years 8 months 12 days        
Employee Stock Plans                    
Stock Incentive Plans, Stock Option Awards Outstanding       39,000   39,000       68,000
Shares Previously Issued Under the 2001 Stock Plan                    
Stock Incentive Plans, Cumulative Share Forfeitures, Expirations and Repurchases               500,000    
Shares Previously Issued Under the 2001 Stock Plan | Maximum                    
Stock Incentive Plans, Common Shares Reserved for Future Issuance     3,500,000              
Shares Outside of the 2001, 2011 or IDS Plans                    
Stock Incentive Plans, Stock Option Awards Outstanding       0   0        
2010 Stock Purchase Plan                    
ESPP, Employee Contribution Rate (Percentage of Compensation)                 10.00%  
ESPP, Share Purchase Price (Percentage of Fair Market Value)                 85.00%  
ESPP, Share Offering Period Duration                 24 months  
ESPP, Share Purchase Periods Within Each Offering Period                 4  
ESPP, Share Purchase Period Duration                 6 months  
ESPP, Shares Issued During Period             5,203      
ESPP, Weighted Average Purchase Price             $ 13.40      
2011 Stock Incentive Plan                    
Stock Incentive Plans, Common Shares Reserved for Future Issuance     13,800,000 14,300,000   14,300,000        
Stock Incentive Plans, Shares Available for Future Grant       3,700,000   3,700,000        
Stock Incentive Plans, Stock Options and Awards Granted           0 0      
2011 Stock Incentive Plan | Stock Options                    
Stock Incentive Plans, Decrease in Share Reservation Rate     1.33              
Stock Option Expiration Period     10 years              
Stock Option Vesting Period     4 years              
2021 Stock Purchase Plan                    
ESPP, Employee Contribution Rate (Percentage of Compensation) 10.00%                  
ESPP, Share Purchase Price (Percentage of Fair Market Value) 85.00%                  
ESPP, Share Offering Period Duration 24 months                  
ESPP, Share Purchase Periods Within Each Offering Period 4                  
ESPP, Share Purchase Period Duration 6 months                  
ESPP, Purchase Plan Term   10 years                
ESPP, Shares Issued During Period       125,392 92,043 223,608 182,083      
ESPP, Weighted Average Purchase Price       $ 17.30 $ 16.40 $ 17.14 $ 16.15      
ESPP, Common Shares Reserved for Future Issuance       594,309   594,309        
Unrecognized Compensation       $ 3.9   $ 3.9        
Unrecognized Compensation Recognition Period           1 year 8 months 12 days        
XML 50 R40.htm IDEA: XBRL DOCUMENT v3.23.3
EMPLOYEE BENEFIT PLANS - Valuation Assumptions for ESPP (Details) - 2021 Stock Purchase Plan - $ / shares
9 Months Ended
Sep. 30, 2023
Sep. 30, 2022
Expected life (in years) 1 year 3 months 1 year 3 months
Volatility 43.66% 48.73%
Risk-free interest rate 5.15% 2.75%
Expected dividend 0.00%  
Weighted average fair value of purchase rights granted during the period $ 15.71 $ 10.00
XML 51 R41.htm IDEA: XBRL DOCUMENT v3.23.3
EMPLOYEE BENEFIT PLANS - Allocation of Recognized Period Costs (Details) - USD ($)
$ in Thousands
3 Months Ended 9 Months Ended
Sep. 30, 2023
Sep. 30, 2022
Sep. 30, 2023
Sep. 30, 2022
Stock-based compensation expenses $ 5,999 $ 5,136 $ 15,561 $ 14,561
Costs of Revenues        
Stock-based compensation expenses 1,120 854 3,022 2,237
Research and Development        
Stock-based compensation expenses 2,196 2,180 5,609 7,158
Selling, General, and Administrative        
Stock-based compensation expenses $ 2,683 $ 2,102 $ 6,930 $ 5,166
XML 52 R42.htm IDEA: XBRL DOCUMENT v3.23.3
EMPLOYEE BENEFIT PLANS - Stock Options Activity (Details) - Employee Stock Plans - USD ($)
$ / shares in Units, shares in Thousands, $ in Thousands
9 Months Ended
Sep. 30, 2023
Options Outstanding, Beginning Balance 68
Options Exercised (29)
Options Expired (1)
Options Outstanding, Ending Balance 39
Options Vested and Expected to Vest 39
Options Exercisable 36
Options Outstanding, Weighted Average Exercise Price, Beginning Balance $ 16.11
Options Exercised, Weighted Average Exercise Price 16.39
Options Outstanding, Weighted Average Exercise Price, Ending Balance 15.91
Options Vested and Expected to Vest, Weighted Average Exercise Price 15.91
Options Exercisable, Weighted Average Exercise Price $ 15.80
Options Outstanding, Weighted Average Remaining Contractual Term 4 years 4 months 24 days
Options Vested and Expected to Vest, Weighted Average Remaining Contractual Term 4 years 4 months 24 days
Options Exercisable, Weighted Average Remaining Contractual Term 4 years 2 months 15 days
Options Outstanding, Aggregate Intrinsic Value $ 654
Options Vested and Expected to Vest, Aggregate Intrinsic Value 653
Options Exercisable, Aggregate Intrinsic Value $ 604
XML 53 R43.htm IDEA: XBRL DOCUMENT v3.23.3
EMPLOYEE BENEFIT PLANS - Nonvested Restricted Stock Units Activity (Details) - Restricted Stock Units (RSUs)
shares in Thousands
9 Months Ended
Sep. 30, 2023
$ / shares
shares
Non-vested RSUs, Opening Balance | shares 2,124
RSUs Granted | shares 753
RSUs Vested | shares (829)
RSUs Forfeited | shares (18)
Non-vested RSUs, Ending Balance | shares 2,030
Non-vested RSUs, Weighted Average Grant Date Fair Value | $ / shares $ 21.29
RSUs Granted, Weighted Average Grant Date Fair Value | $ / shares 43.92
RSUs Vested, Weighted Average Grant Date Fair Value | $ / shares 20.46
RSUs Forfeited, Weighted Average Grant Date Fair Value | $ / shares 25.87
Non-vested RSUs, Weighted Average Grant Date Fair Value | $ / shares $ 29.98
XML 54 R44.htm IDEA: XBRL DOCUMENT v3.23.3
INCOME TAXES (Details) - USD ($)
$ in Thousands
3 Months Ended 9 Months Ended
Sep. 30, 2023
Sep. 30, 2022
Sep. 30, 2023
Sep. 30, 2022
Dec. 31, 2022
INCOME TAXES          
Increase (Decrease) in Income Taxes     $ (800)    
Income Tax Expense (Benefit), Total $ 6,006 $ 815 $ 2,508 $ 3,308  
Effective Income Tax Rate Reconciliation, Percent, Total     53.10% (547.70%)  
Unrecognized Tax Benefits, Ending Balance 15,900   $ 15,900   $ 15,100
Unrecognized Tax Benefits that Would Impact Effective Tax Rate 2,000   2,000   2,000
Unrecognized tax benefits including income tax penalties and interest accrued in long term liabilities 2,500   2,500    
Unrecognized tax benefits related to income tax penalties and interest accrued in long-term liabilities 600   600    
Unrecognized Tax Benefits In Deferred Tax Assets 14,000   14,000    
Deferred Tax Assets, Valuation Allowance, Total $ 59,200   $ 59,200   $ 59,200
XML 55 R45.htm IDEA: XBRL DOCUMENT v3.23.3
NET INCOME (LOSS) PER SHARE - Calculation of Earnings Per Share (Details) - USD ($)
$ / shares in Units, shares in Thousands, $ in Thousands
3 Months Ended 9 Months Ended
Sep. 30, 2023
Sep. 30, 2022
Sep. 30, 2023
Sep. 30, 2022
NET INCOME (LOSS) PER SHARE        
Net loss $ (4,972) $ 1,385 $ 2,218 $ (3,912)
Basic weighted-average shares outstanding (in shares) 38,187 37,226 37,930 37,285
Effect of dilutive stock options, unvested restricted stock units, and shares of common stock expected to be issued under Employee Purchase Plan   828 1,047  
Diluted weighted-average shares outstanding (in shares) 38,187 38,054 38,977 37,285
Basic (in dollars per share) $ (0.13) $ 0.04 $ 0.06 $ (0.10)
Diluted (in dollars per share) $ (0.13) $ 0.04 $ 0.06 $ (0.10)
XML 56 R46.htm IDEA: XBRL DOCUMENT v3.23.3
NET INCOME (LOSS) PER SHARE - Anti-dilutive Securities (Details) - shares
shares in Thousands
3 Months Ended 9 Months Ended
Sep. 30, 2023
Sep. 30, 2022
Sep. 30, 2023
Sep. 30, 2022
Anti-dilutive securities (in shares) 1,452 62 223 922
Stock Options        
Anti-dilutive securities (in shares) 23     63
Restricted Stock Units (RSUs)        
Anti-dilutive securities (in shares) 1,391 62 223 784
Employee Stock Purchase Plans        
Anti-dilutive securities (in shares) 38     75
XML 57 R47.htm IDEA: XBRL DOCUMENT v3.23.3
CUSTOMER AND GEOGRAPHIC INFORMATION - Other (Details)
9 Months Ended
Sep. 30, 2023
CUSTOMER AND GEOGRAPHIC INFORMATION  
Number of Operating Segments 1
Number of Reportable Segments 1
XML 58 R48.htm IDEA: XBRL DOCUMENT v3.23.3
CUSTOMER AND GEOGRAPHIC INFORMATION - Revenue Percentage by Major Customers (Details) - Customer Concentration Risk
3 Months Ended 9 Months Ended 12 Months Ended 21 Months Ended
Sep. 30, 2023
Sep. 30, 2022
Sep. 30, 2023
Sep. 30, 2022
Dec. 31, 2022
Sep. 30, 2023
Revenue Benchmark | Benchmark Percentage of Gross Revenues and Receivables            
Revenues from External Customers and Long-Lived Assets [Line Items]            
Concentration risk           10.00%
Revenue Benchmark | Customer A            
Revenues from External Customers and Long-Lived Assets [Line Items]            
Concentration risk 38.00% 28.00% 36.00% 30.00%    
Revenue Benchmark | Customer B            
Revenues from External Customers and Long-Lived Assets [Line Items]            
Concentration risk   16.00% 10.00% 11.00%    
Accounts Receivable | Benchmark Percentage of Gross Revenues and Receivables            
Revenues from External Customers and Long-Lived Assets [Line Items]            
Concentration risk           10.00%
Accounts Receivable | Customer A            
Revenues from External Customers and Long-Lived Assets [Line Items]            
Concentration risk     44.00%   29.00%  
Accounts Receivable | Customer B            
Revenues from External Customers and Long-Lived Assets [Line Items]            
Concentration risk         12.00%  
Accounts Receivable | Customer C            
Revenues from External Customers and Long-Lived Assets [Line Items]            
Concentration risk         12.00%  
XML 59 R49.htm IDEA: XBRL DOCUMENT v3.23.3
CUSTOMER AND GEOGRAPHIC INFORMATION - Revenues by Geographic Area (Details) - USD ($)
$ in Thousands
3 Months Ended 9 Months Ended
Sep. 30, 2023
Sep. 30, 2022
Sep. 30, 2023
Sep. 30, 2022
Revenues from External Customers and Long-Lived Assets [Line Items]        
Revenues $ 42,350 $ 39,860 $ 124,710 $ 108,026
Geographic Concentration Risk | Revenue Benchmark        
Revenues from External Customers and Long-Lived Assets [Line Items]        
Revenues $ 42,350 $ 39,860 $ 124,710 $ 108,026
Percentage of Revenues 100.00% 100.00% 100.00% 100.00%
Geographic Concentration Risk | Revenue Benchmark | UNITED STATES        
Revenues from External Customers and Long-Lived Assets [Line Items]        
Revenues $ 24,477 $ 18,292 $ 70,090 $ 52,869
Percentage of Revenues 58.00% 46.00% 56.00% 49.00%
Geographic Concentration Risk | Revenue Benchmark | CHINA        
Revenues from External Customers and Long-Lived Assets [Line Items]        
Revenues $ 7,549 $ 9,555 $ 21,927 $ 18,214
Percentage of Revenues 18.00% 24.00% 18.00% 17.00%
Geographic Concentration Risk | Revenue Benchmark | Rest of the World        
Revenues from External Customers and Long-Lived Assets [Line Items]        
Revenues $ 10,324 $ 12,013 $ 32,693 $ 36,943
Percentage of Revenues 24.00% 30.00% 26.00% 34.00%
XML 60 R50.htm IDEA: XBRL DOCUMENT v3.23.3
CUSTOMER AND GEOGRAPHIC INFORMATION - Long-lived Assets by Geographic Area (Details) - USD ($)
$ in Thousands
Sep. 30, 2023
Dec. 31, 2022
Revenues from External Customers and Long-Lived Assets [Line Items]    
Long-lived assets, net $ 46,626 $ 46,176
UNITED STATES    
Revenues from External Customers and Long-Lived Assets [Line Items]    
Long-lived assets, net 45,419 44,730
Rest of the World    
Revenues from External Customers and Long-Lived Assets [Line Items]    
Long-lived assets, net $ 1,207 $ 1,446
XML 61 R51.htm IDEA: XBRL DOCUMENT v3.23.3
FAIR VALUE MEASUREMENTS - Fair Value, Assets Measured on a Recurring Basis (Details) - USD ($)
$ in Thousands
Sep. 30, 2023
Dec. 31, 2022
Total $ 115,857 $ 97,285
Quoted Prices in Active Markets for Identical Assets (level 1)    
Total 115,857 97,285
Money Market Mutual Funds    
Cash equivalents 92,113 75,738
Money Market Mutual Funds | Quoted Prices in Active Markets for Identical Assets (level 1)    
Cash equivalents 92,113 75,738
US Government Securities    
Cash equivalents   1,990
Short-term investments (available-for-sale debt securities) 23,744 19,557
US Government Securities | Quoted Prices in Active Markets for Identical Assets (level 1)    
Cash equivalents   1,990
Short-term investments (available-for-sale debt securities) $ 23,744 $ 19,557
XML 62 R52.htm IDEA: XBRL DOCUMENT v3.23.3
COMMITMENTS AND CONTINGENCIES (Details)
$ in Thousands
9 Months Ended
Sep. 30, 2023
USD ($)
Future Lease payments $ 7,220
Indemnifications  
Term of Product Warranty 90 days
Purchase Obligations  
Purchase Obligation, Total $ 24,600
Period over which the majority of purchase obligations become due 15 months
XML 63 R53.htm IDEA: XBRL DOCUMENT v3.23.3
STRATEGIC PARTNERSHIP AGREEMENT WITH ADVANTEST AND RELATED PARTY TRANSACTIONS (Details) - Commercial Agreement With Advantest - USD ($)
$ in Millions
3 Months Ended 9 Months Ended
Sep. 30, 2023
Sep. 30, 2022
Sep. 30, 2023
Sep. 30, 2022
Dec. 31, 2022
Related party receivables         $ 0.3
Analytics          
Advantest analytics revenue $ 2.6 $ 2.8 $ 6.2 $ 8.1  
Deferred revenue $ 12.1   $ 12.1   $ 7.1
XML 64 R54.htm IDEA: XBRL DOCUMENT v3.23.3
BUSINESS COMBINATION - Other (Details) - Lantern Machinery Analytics, Inc.
$ in Millions
Jul. 05, 2023
USD ($)
Business Acquisition [Line Items]  
Equity interest acquired in business combination 100.00%
Consideration to acquire business, net of cash acquired $ 1.8
XML 65 R55.htm IDEA: XBRL DOCUMENT v3.23.3
BUSINESS COMBINATION - Fair Values of Assets Acquired and Liabilities Assumed (Details) - USD ($)
$ in Thousands
Sep. 30, 2023
Jul. 05, 2023
Dec. 31, 2022
Assets      
Goodwill $ 15,008   $ 14,123
Lantern Machinery Analytics, Inc.      
Assets      
Cash assumed   $ 265  
Fair value of tangible assets (including cash of $265)   450  
Goodwill   895  
Total assets acquired   2,455  
Liabilities      
Deferred tax liabilities   294  
Accounts payable and accrued expenses   73  
Total liabilities assumed   367  
Total purchase price allocation   2,088  
Lantern Machinery Analytics, Inc. | Developed Technology Rights      
Assets      
Fair value of intangible assets   $ 1,010  
Intangible asset amortization period   8 years  
Lantern Machinery Analytics, Inc. | Customer Relationships      
Assets      
Fair value of intangible assets   $ 100  
Intangible asset amortization period   6 years  
XML 66 pdfs-20230930x10q_htm.xml IDEA: XBRL DOCUMENT 0001120914 us-gaap:AccountsReceivableMember 2023-09-30 0001120914 us-gaap:AccountsReceivableMember 2022-12-31 0001120914 us-gaap:TreasuryStockCommonMember 2023-04-01 2023-06-30 0001120914 us-gaap:TreasuryStockCommonMember 2023-01-01 2023-03-31 0001120914 us-gaap:TreasuryStockCommonMember 2022-07-01 2022-09-30 0001120914 pdfs:StockRepurchaseProgram2022Member 2022-04-11 2022-04-11 0001120914 pdfs:The2020StockRepurchaseProgramMember 2020-06-04 2020-06-04 0001120914 pdfs:StockRepurchaseProgram2022Member 2022-04-11 0001120914 pdfs:The2020StockRepurchaseProgramMember 2020-06-04 0001120914 us-gaap:TreasuryStockCommonMember 2023-07-01 2023-09-30 0001120914 us-gaap:TreasuryStockCommonMember 2022-04-01 2022-06-30 0001120914 us-gaap:TreasuryStockCommonMember 2022-01-01 2022-03-31 0001120914 pdfs:CommonStockOutstandingMember 2023-04-01 2023-06-30 0001120914 pdfs:CommonStockOutstandingMember 2022-04-01 2022-06-30 0001120914 pdfs:CommonStockOutstandingMember 2023-07-01 2023-09-30 0001120914 pdfs:CommonStockOutstandingMember 2023-01-01 2023-03-31 0001120914 pdfs:CommonStockOutstandingMember 2022-07-01 2022-09-30 0001120914 pdfs:CommonStockOutstandingMember 2022-01-01 2022-03-31 0001120914 us-gaap:RetainedEarningsMember 2023-09-30 0001120914 us-gaap:AdditionalPaidInCapitalMember 2023-09-30 0001120914 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2023-09-30 0001120914 us-gaap:RetainedEarningsMember 2023-06-30 0001120914 us-gaap:AdditionalPaidInCapitalMember 2023-06-30 0001120914 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2023-06-30 0001120914 2023-06-30 0001120914 us-gaap:RetainedEarningsMember 2023-03-31 0001120914 us-gaap:AdditionalPaidInCapitalMember 2023-03-31 0001120914 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2023-03-31 0001120914 2023-03-31 0001120914 us-gaap:RetainedEarningsMember 2022-12-31 0001120914 us-gaap:AdditionalPaidInCapitalMember 2022-12-31 0001120914 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2022-12-31 0001120914 us-gaap:RetainedEarningsMember 2022-09-30 0001120914 us-gaap:AdditionalPaidInCapitalMember 2022-09-30 0001120914 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2022-09-30 0001120914 us-gaap:RetainedEarningsMember 2022-06-30 0001120914 us-gaap:AdditionalPaidInCapitalMember 2022-06-30 0001120914 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2022-06-30 0001120914 2022-06-30 0001120914 us-gaap:RetainedEarningsMember 2022-03-31 0001120914 us-gaap:AdditionalPaidInCapitalMember 2022-03-31 0001120914 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2022-03-31 0001120914 2022-03-31 0001120914 us-gaap:RetainedEarningsMember 2021-12-31 0001120914 us-gaap:AdditionalPaidInCapitalMember 2021-12-31 0001120914 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2021-12-31 0001120914 us-gaap:TreasuryStockCommonMember 2023-09-30 0001120914 pdfs:CommonStockOutstandingMember 2023-09-30 0001120914 us-gaap:TreasuryStockCommonMember 2023-06-30 0001120914 pdfs:CommonStockOutstandingMember 2023-06-30 0001120914 us-gaap:TreasuryStockCommonMember 2023-03-31 0001120914 pdfs:CommonStockOutstandingMember 2023-03-31 0001120914 us-gaap:TreasuryStockCommonMember 2022-12-31 0001120914 pdfs:CommonStockOutstandingMember 2022-12-31 0001120914 us-gaap:TreasuryStockCommonMember 2022-09-30 0001120914 pdfs:CommonStockOutstandingMember 2022-09-30 0001120914 us-gaap:TreasuryStockCommonMember 2022-06-30 0001120914 pdfs:CommonStockOutstandingMember 2022-06-30 0001120914 us-gaap:TreasuryStockCommonMember 2022-03-31 0001120914 pdfs:CommonStockOutstandingMember 2022-03-31 0001120914 us-gaap:TreasuryStockCommonMember 2021-12-31 0001120914 pdfs:CommonStockOutstandingMember 2021-12-31 0001120914 pdfs:OutsideOfThe20112001OrIDSPlansMember 2023-09-30 0001120914 pdfs:EmployeeStockPlansMember 2022-12-31 0001120914 pdfs:TwentyElevenStockIncentivePlanMember 2023-01-01 2023-09-30 0001120914 pdfs:TwentyElevenStockIncentivePlanMember 2022-01-01 2022-09-30 0001120914 pdfs:SharesPreviouslyIssuedUnderThe2001PlanMember 2011-11-16 2023-06-30 0001120914 pdfs:EmployeeStockPlansMember 2023-01-01 2023-09-30 0001120914 pdfs:EmployeeStockPlansMember 2023-09-30 0001120914 pdfs:The2021PurchasePlanMember 2021-08-01 0001120914 pdfs:The2010PurchasePlanMember 2020-05-17 0001120914 us-gaap:RestrictedStockUnitsRSUMember 2022-12-31 0001120914 pdfs:AdvantestAmericaIncMember pdfs:SoftwareLicenseAndRelatedServicesAgreementMember 2022-04-01 2023-09-30 0001120914 pdfs:IntegratedYieldRampMember 2023-07-01 2023-09-30 0001120914 pdfs:AnalyticsMember 2023-07-01 2023-09-30 0001120914 pdfs:IntegratedYieldRampMember 2023-01-01 2023-09-30 0001120914 pdfs:AnalyticsMember 2023-01-01 2023-09-30 0001120914 pdfs:IntegratedYieldRampMember 2022-07-01 2022-09-30 0001120914 pdfs:AnalyticsMember 2022-07-01 2022-09-30 0001120914 pdfs:IntegratedYieldRampMember 2022-01-01 2022-09-30 0001120914 pdfs:AnalyticsMember 2022-01-01 2022-09-30 0001120914 pdfs:PurchaseObligationsMember 2023-09-30 0001120914 us-gaap:SoftwareAndSoftwareDevelopmentCostsMember 2023-09-30 0001120914 us-gaap:LeaseholdImprovementsMember 2023-09-30 0001120914 us-gaap:FurnitureAndFixturesMember 2023-09-30 0001120914 us-gaap:ComputerEquipmentMember 2023-09-30 0001120914 pdfs:TestEquipmentMember 2023-09-30 0001120914 pdfs:LaboratoryAndTestEquipmentMember 2023-09-30 0001120914 pdfs:InProgressDfiSystemAssetsMember 2023-09-30 0001120914 pdfs:InProgressCvSystemAndOtherAssetsMember 2023-09-30 0001120914 us-gaap:SoftwareAndSoftwareDevelopmentCostsMember 2022-12-31 0001120914 us-gaap:LeaseholdImprovementsMember 2022-12-31 0001120914 us-gaap:FurnitureAndFixturesMember 2022-12-31 0001120914 us-gaap:ComputerEquipmentMember 2022-12-31 0001120914 pdfs:TestEquipmentMember 2022-12-31 0001120914 pdfs:LaboratoryAndTestEquipmentMember 2022-12-31 0001120914 pdfs:InProgressDfiSystemAssetsMember 2022-12-31 0001120914 pdfs:InProgressCvSystemAndOtherAssetsMember 2022-12-31 0001120914 us-gaap:SeriesOfIndividuallyImmaterialBusinessAcquisitionsMember 2023-07-05 2023-07-05 0001120914 pdfs:CommercialAgreementWithAdvantestMember 2022-12-31 0001120914 pdfs:RestOfTheWorldMember 2023-09-30 0001120914 country:US 2023-09-30 0001120914 pdfs:RestOfTheWorldMember 2022-12-31 0001120914 country:US 2022-12-31 0001120914 us-gaap:TrademarksAndTradeNamesMember 2023-09-30 0001120914 us-gaap:PatentsMember 2023-09-30 0001120914 us-gaap:NoncompeteAgreementsMember 2023-09-30 0001120914 us-gaap:DevelopedTechnologyRightsMember 2023-09-30 0001120914 us-gaap:CustomerRelationshipsMember 2023-09-30 0001120914 us-gaap:TrademarksAndTradeNamesMember 2022-12-31 0001120914 us-gaap:PatentsMember 2022-12-31 0001120914 us-gaap:NoncompeteAgreementsMember 2022-12-31 0001120914 us-gaap:DevelopedTechnologyRightsMember 2022-12-31 0001120914 us-gaap:CustomerRelationshipsMember 2022-12-31 0001120914 us-gaap:RestrictedStockUnitsRSUMember 2023-01-01 2023-09-30 0001120914 us-gaap:RestrictedStockUnitsRSUMember 2023-09-30 0001120914 pdfs:DeferredRevenueAndBillingsInExcessOfRecognizedRevenueMember 2023-07-01 2023-09-30 0001120914 pdfs:DeferredRevenueAndBillingsInExcessOfRecognizedRevenueMember 2023-01-01 2023-09-30 0001120914 pdfs:DeferredRevenueAndBillingsInExcessOfRecognizedRevenueMember 2022-07-01 2022-09-30 0001120914 pdfs:DeferredRevenueAndBillingsInExcessOfRecognizedRevenueMember 2022-01-01 2022-09-30 0001120914 us-gaap:OtherNoncurrentLiabilitiesMember 2023-09-30 0001120914 us-gaap:OtherNoncurrentLiabilitiesMember 2022-12-31 0001120914 us-gaap:NonUsMember us-gaap:SalesRevenueNetMember us-gaap:GeographicConcentrationRiskMember 2023-07-01 2023-09-30 0001120914 pdfs:RestOfTheWorldMember us-gaap:SalesRevenueNetMember us-gaap:GeographicConcentrationRiskMember 2023-07-01 2023-09-30 0001120914 pdfs:CustomerAMember us-gaap:SalesRevenueNetMember us-gaap:CustomerConcentrationRiskMember 2023-07-01 2023-09-30 0001120914 country:US us-gaap:SalesRevenueNetMember us-gaap:GeographicConcentrationRiskMember 2023-07-01 2023-09-30 0001120914 country:CN us-gaap:SalesRevenueNetMember us-gaap:GeographicConcentrationRiskMember 2023-07-01 2023-09-30 0001120914 us-gaap:SalesRevenueNetMember us-gaap:GeographicConcentrationRiskMember 2023-07-01 2023-09-30 0001120914 us-gaap:NonUsMember us-gaap:SalesRevenueNetMember us-gaap:GeographicConcentrationRiskMember 2023-01-01 2023-09-30 0001120914 pdfs:RestOfTheWorldMember us-gaap:SalesRevenueNetMember us-gaap:GeographicConcentrationRiskMember 2023-01-01 2023-09-30 0001120914 pdfs:CustomerBMember us-gaap:SalesRevenueNetMember us-gaap:CustomerConcentrationRiskMember 2023-01-01 2023-09-30 0001120914 pdfs:CustomerAMember us-gaap:SalesRevenueNetMember us-gaap:CustomerConcentrationRiskMember 2023-01-01 2023-09-30 0001120914 pdfs:CustomerAMember us-gaap:AccountsReceivableMember us-gaap:CustomerConcentrationRiskMember 2023-01-01 2023-09-30 0001120914 country:US us-gaap:SalesRevenueNetMember us-gaap:GeographicConcentrationRiskMember 2023-01-01 2023-09-30 0001120914 country:CN us-gaap:SalesRevenueNetMember us-gaap:GeographicConcentrationRiskMember 2023-01-01 2023-09-30 0001120914 us-gaap:SalesRevenueNetMember us-gaap:GeographicConcentrationRiskMember 2023-01-01 2023-09-30 0001120914 us-gaap:NonUsMember us-gaap:SalesRevenueNetMember us-gaap:GeographicConcentrationRiskMember 2022-07-01 2022-09-30 0001120914 pdfs:RestOfTheWorldMember us-gaap:SalesRevenueNetMember us-gaap:GeographicConcentrationRiskMember 2022-07-01 2022-09-30 0001120914 pdfs:CustomerBMember us-gaap:SalesRevenueNetMember us-gaap:CustomerConcentrationRiskMember 2022-07-01 2022-09-30 0001120914 pdfs:CustomerAMember us-gaap:SalesRevenueNetMember us-gaap:CustomerConcentrationRiskMember 2022-07-01 2022-09-30 0001120914 country:US us-gaap:SalesRevenueNetMember us-gaap:GeographicConcentrationRiskMember 2022-07-01 2022-09-30 0001120914 country:CN us-gaap:SalesRevenueNetMember us-gaap:GeographicConcentrationRiskMember 2022-07-01 2022-09-30 0001120914 us-gaap:SalesRevenueNetMember us-gaap:GeographicConcentrationRiskMember 2022-07-01 2022-09-30 0001120914 pdfs:CustomersAccountingFor10PercentOfGrossRevenuesAndReceivablesMember us-gaap:SalesRevenueNetMember us-gaap:CustomerConcentrationRiskMember 2022-01-01 2023-09-30 0001120914 pdfs:CustomersAccountingFor10PercentOfGrossRevenuesAndReceivablesMember us-gaap:AccountsReceivableMember us-gaap:CustomerConcentrationRiskMember 2022-01-01 2023-09-30 0001120914 pdfs:CustomerCMember us-gaap:AccountsReceivableMember us-gaap:CustomerConcentrationRiskMember 2022-01-01 2022-12-31 0001120914 pdfs:CustomerBMember us-gaap:AccountsReceivableMember us-gaap:CustomerConcentrationRiskMember 2022-01-01 2022-12-31 0001120914 pdfs:CustomerAMember us-gaap:AccountsReceivableMember us-gaap:CustomerConcentrationRiskMember 2022-01-01 2022-12-31 0001120914 us-gaap:NonUsMember us-gaap:SalesRevenueNetMember us-gaap:GeographicConcentrationRiskMember 2022-01-01 2022-09-30 0001120914 pdfs:RestOfTheWorldMember us-gaap:SalesRevenueNetMember us-gaap:GeographicConcentrationRiskMember 2022-01-01 2022-09-30 0001120914 pdfs:CustomerBMember us-gaap:SalesRevenueNetMember us-gaap:CustomerConcentrationRiskMember 2022-01-01 2022-09-30 0001120914 pdfs:CustomerAMember us-gaap:SalesRevenueNetMember us-gaap:CustomerConcentrationRiskMember 2022-01-01 2022-09-30 0001120914 country:US us-gaap:SalesRevenueNetMember us-gaap:GeographicConcentrationRiskMember 2022-01-01 2022-09-30 0001120914 country:CN us-gaap:SalesRevenueNetMember us-gaap:GeographicConcentrationRiskMember 2022-01-01 2022-09-30 0001120914 us-gaap:SalesRevenueNetMember us-gaap:GeographicConcentrationRiskMember 2022-01-01 2022-09-30 0001120914 us-gaap:RetainedEarningsMember 2023-07-01 2023-09-30 0001120914 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2023-07-01 2023-09-30 0001120914 us-gaap:RetainedEarningsMember 2023-04-01 2023-06-30 0001120914 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2023-04-01 2023-06-30 0001120914 us-gaap:RetainedEarningsMember 2023-01-01 2023-03-31 0001120914 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2023-01-01 2023-03-31 0001120914 us-gaap:RetainedEarningsMember 2022-07-01 2022-09-30 0001120914 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2022-07-01 2022-09-30 0001120914 us-gaap:RetainedEarningsMember 2022-04-01 2022-06-30 0001120914 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2022-04-01 2022-06-30 0001120914 us-gaap:RetainedEarningsMember 2022-01-01 2022-03-31 0001120914 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2022-01-01 2022-03-31 0001120914 pdfs:The2021PurchasePlanMember 2023-09-30 0001120914 2022-09-30 0001120914 2021-12-31 0001120914 us-gaap:MoneyMarketFundsMember us-gaap:FairValueInputsLevel1Member 2023-09-30 0001120914 us-gaap:MoneyMarketFundsMember 2023-09-30 0001120914 us-gaap:MoneyMarketFundsMember us-gaap:FairValueInputsLevel1Member 2022-12-31 0001120914 us-gaap:MoneyMarketFundsMember 2022-12-31 0001120914 us-gaap:PrepaidExpensesAndOtherCurrentAssetsMember 2023-09-30 0001120914 us-gaap:OtherNoncurrentAssetsMember 2023-09-30 0001120914 us-gaap:PrepaidExpensesAndOtherCurrentAssetsMember 2022-12-31 0001120914 us-gaap:OtherNoncurrentAssetsMember 2022-12-31 0001120914 us-gaap:SeriesOfIndividuallyImmaterialBusinessAcquisitionsMember us-gaap:DevelopedTechnologyRightsMember 2023-07-05 0001120914 us-gaap:SeriesOfIndividuallyImmaterialBusinessAcquisitionsMember us-gaap:CustomerRelationshipsMember 2023-07-05 0001120914 us-gaap:SeriesOfIndividuallyImmaterialBusinessAcquisitionsMember 2023-07-05 0001120914 us-gaap:USGovernmentCorporationsAndAgenciesSecuritiesMember us-gaap:FairValueInputsLevel1Member 2023-09-30 0001120914 us-gaap:USGovernmentCorporationsAndAgenciesSecuritiesMember 2023-09-30 0001120914 us-gaap:USGovernmentCorporationsAndAgenciesSecuritiesMember us-gaap:FairValueInputsLevel1Member 2022-12-31 0001120914 us-gaap:USGovernmentCorporationsAndAgenciesSecuritiesMember 2022-12-31 0001120914 us-gaap:RestrictedStockUnitsRSUMember 2023-07-01 2023-09-30 0001120914 us-gaap:EmployeeStockOptionMember 2023-07-01 2023-09-30 0001120914 pdfs:EmployeeStockPurchasePlanMember 2023-07-01 2023-09-30 0001120914 us-gaap:RestrictedStockUnitsRSUMember 2023-01-01 2023-09-30 0001120914 us-gaap:RestrictedStockUnitsRSUMember 2022-07-01 2022-09-30 0001120914 us-gaap:RestrictedStockUnitsRSUMember 2022-01-01 2022-09-30 0001120914 us-gaap:EmployeeStockOptionMember 2022-01-01 2022-09-30 0001120914 pdfs:EmployeeStockPurchasePlanMember 2022-01-01 2022-09-30 0001120914 pdfs:CostsAndExpensesMember 2023-07-01 2023-09-30 0001120914 pdfs:CostsAndExpensesMember 2023-01-01 2023-09-30 0001120914 pdfs:CostsAndExpensesMember 2022-07-01 2022-09-30 0001120914 pdfs:CostsAndExpensesMember 2022-01-01 2022-09-30 0001120914 us-gaap:SellingGeneralAndAdministrativeExpensesMember 2023-07-01 2023-09-30 0001120914 us-gaap:ResearchAndDevelopmentExpenseMember 2023-07-01 2023-09-30 0001120914 us-gaap:ResearchAndDevelopmentExpenseMember 2023-01-01 2023-09-30 0001120914 us-gaap:SellingGeneralAndAdministrativeExpensesMember 2022-07-01 2022-09-30 0001120914 us-gaap:ResearchAndDevelopmentExpenseMember 2022-07-01 2022-09-30 0001120914 us-gaap:SellingGeneralAndAdministrativeExpensesMember 2022-01-01 2022-09-30 0001120914 us-gaap:ResearchAndDevelopmentExpenseMember 2022-01-01 2022-09-30 0001120914 us-gaap:AdditionalPaidInCapitalMember 2023-07-01 2023-09-30 0001120914 us-gaap:AdditionalPaidInCapitalMember 2023-04-01 2023-06-30 0001120914 2023-04-01 2023-06-30 0001120914 us-gaap:AdditionalPaidInCapitalMember 2023-01-01 2023-03-31 0001120914 2023-01-01 2023-03-31 0001120914 us-gaap:AdditionalPaidInCapitalMember 2022-07-01 2022-09-30 0001120914 us-gaap:AdditionalPaidInCapitalMember 2022-04-01 2022-06-30 0001120914 2022-04-01 2022-06-30 0001120914 us-gaap:AdditionalPaidInCapitalMember 2022-01-01 2022-03-31 0001120914 2022-01-01 2022-03-31 0001120914 us-gaap:OtherNoncurrentAssetsMember 2023-09-30 0001120914 us-gaap:OtherNoncurrentAssetsMember 2022-12-31 0001120914 pdfs:PurchaseObligationsMember 2023-01-01 2023-09-30 0001120914 pdfs:IndemnificationsMember 2023-01-01 2023-09-30 0001120914 pdfs:TwentyElevenStockIncentivePlanMember 2023-09-30 0001120914 srt:MaximumMember pdfs:SharesPreviouslyIssuedUnderThe2001PlanMember 2011-11-16 0001120914 pdfs:TwentyElevenStockIncentivePlanMember 2011-11-16 0001120914 us-gaap:EmployeeStockOptionMember pdfs:TwentyElevenStockIncentivePlanMember 2011-11-16 2011-11-16 0001120914 pdfs:StockRepurchaseProgram2022Member 2023-01-01 2023-09-30 0001120914 pdfs:StockRepurchaseProgram2022Member 2022-04-11 2023-09-30 0001120914 pdfs:The2020StockRepurchaseProgramMember 2022-01-01 2022-09-30 0001120914 pdfs:StockRepurchaseProgram2022Member 2022-01-01 2022-09-30 0001120914 pdfs:The2020StockRepurchaseProgramMember 2020-06-04 2023-09-30 0001120914 us-gaap:TransferredOverTimeMember 2023-07-01 2023-09-30 0001120914 us-gaap:TransferredAtPointInTimeMember 2023-07-01 2023-09-30 0001120914 us-gaap:TransferredOverTimeMember 2023-01-01 2023-09-30 0001120914 us-gaap:TransferredAtPointInTimeMember 2023-01-01 2023-09-30 0001120914 us-gaap:TransferredOverTimeMember 2022-07-01 2022-09-30 0001120914 us-gaap:TransferredAtPointInTimeMember 2022-07-01 2022-09-30 0001120914 us-gaap:TransferredOverTimeMember 2022-01-01 2022-09-30 0001120914 us-gaap:TransferredAtPointInTimeMember 2022-01-01 2022-09-30 0001120914 pdfs:The2021PurchasePlanMember 2021-08-01 2021-08-01 0001120914 pdfs:The2010PurchasePlanMember 2001-07-01 2020-05-17 0001120914 us-gaap:SellingGeneralAndAdministrativeExpensesMember 2023-01-01 2023-09-30 0001120914 us-gaap:SellingGeneralAndAdministrativeExpensesMember 2022-01-01 2022-03-31 0001120914 pdfs:The2021PurchasePlanMember 2023-07-01 2023-09-30 0001120914 pdfs:The2021PurchasePlanMember 2023-01-01 2023-09-30 0001120914 pdfs:The2021PurchasePlanMember 2022-07-01 2022-09-30 0001120914 pdfs:The2021PurchasePlanMember 2022-01-01 2022-09-30 0001120914 pdfs:The2010PurchasePlanMember 2022-01-01 2022-09-30 0001120914 pdfs:The2021PurchasePlanMember 2021-06-15 2021-06-15 0001120914 pdfs:AnalyticsMember pdfs:CommercialAgreementWithAdvantestMember 2023-09-30 0001120914 pdfs:AnalyticsMember pdfs:CommercialAgreementWithAdvantestMember 2022-12-31 0001120914 us-gaap:FairValueInputsLevel1Member 2023-09-30 0001120914 2023-09-30 0001120914 us-gaap:FairValueInputsLevel1Member 2022-12-31 0001120914 2022-12-31 0001120914 srt:MinimumMember us-gaap:TrademarksAndTradeNamesMember 2023-01-01 2023-09-30 0001120914 srt:MinimumMember us-gaap:PatentsMember 2023-01-01 2023-09-30 0001120914 srt:MinimumMember us-gaap:DevelopedTechnologyRightsMember 2023-01-01 2023-09-30 0001120914 srt:MinimumMember us-gaap:CustomerRelationshipsMember 2023-01-01 2023-09-30 0001120914 srt:MaximumMember us-gaap:TrademarksAndTradeNamesMember 2023-01-01 2023-09-30 0001120914 srt:MaximumMember us-gaap:PatentsMember 2023-01-01 2023-09-30 0001120914 srt:MaximumMember us-gaap:DevelopedTechnologyRightsMember 2023-01-01 2023-09-30 0001120914 srt:MaximumMember us-gaap:CustomerRelationshipsMember 2023-01-01 2023-09-30 0001120914 us-gaap:NoncompeteAgreementsMember 2023-01-01 2023-09-30 0001120914 us-gaap:CostOfSalesMember 2023-07-01 2023-09-30 0001120914 us-gaap:CostOfSalesMember 2023-01-01 2023-09-30 0001120914 us-gaap:CostOfSalesMember 2022-07-01 2022-09-30 0001120914 us-gaap:CostOfSalesMember 2022-01-01 2022-09-30 0001120914 2023-07-01 2023-09-30 0001120914 2022-07-01 2022-09-30 0001120914 pdfs:AnalyticsMember pdfs:CommercialAgreementWithAdvantestMember 2023-07-01 2023-09-30 0001120914 pdfs:AnalyticsMember pdfs:CommercialAgreementWithAdvantestMember 2023-01-01 2023-09-30 0001120914 pdfs:AnalyticsMember pdfs:CommercialAgreementWithAdvantestMember 2022-07-01 2022-09-30 0001120914 pdfs:AnalyticsMember pdfs:CommercialAgreementWithAdvantestMember 2022-01-01 2022-09-30 0001120914 2022-01-01 2022-09-30 0001120914 2023-11-03 0001120914 2023-01-01 2023-09-30 shares iso4217:USD iso4217:USD shares pdfs:lease pdfs:item pure 0001120914 --12-31 2023 Q3 0 0 P6M 0.10 0.85 4 1000 1 false 10-Q true 2023-09-30 false 000-31311 PDF SOLUTIONS, INC. DE 25-1701361 2858 De La Cruz Blvd. Santa Clara CA 95050 408 280-7900 Common Stock, $0.00015 par value PDFS NASDAQ Yes Yes Accelerated Filer false false false 38261403 111620000 119624000 23744000 19557000 890000 40959000 42164000 18001000 12063000 194324000 193408000 37833000 40174000 5069000 6002000 15008000 14123000 16486000 18055000 32000 64000 13701000 6845000 282453000 278671000 2633000 6388000 11502000 16948000 4772000 5581000 1504000 1412000 29267000 26019000 240000 1852000 49918000 58200000 2820000 2622000 4922000 5932000 3229000 1905000 60889000 68659000 0.00015 0.00015 5000000 5000000 0 0 0.00015 0.00015 70000000 70000000 49694000 48613000 38245000 37431000 6000 6000 467304000 447415000 11449000 11182000 143587000 133709000 -98932000 -101150000 -3227000 -2550000 221564000 210012000 282453000 278671000 39497000 32879000 112957000 94422000 2853000 6981000 11753000 13604000 42350000 39860000 124710000 108026000 14282000 12545000 38555000 36116000 13113000 14303000 38428000 41766000 15611000 12005000 46022000 32614000 328000 318000 979000 946000 2018000 1511000 4000000 2812000 1034000 2200000 4726000 -604000 6006000 815000 2508000 3308000 -4972000 1385000 2218000 -3912000 -552000 -1394000 -679000 -2828000 -5000 17000 2000 -17000 -557000 -1377000 -677000 -2845000 -5529000 8000 1541000 -6757000 -0.13 0.04 0.06 -0.10 -0.13 0.04 0.06 -0.10 38187000 37226000 37930000 37285000 38187000 38054000 38977000 37285000 37431000 6000 447415000 11182000 -133709000 -101150000 -2550000 210012000 98000 1663000 1663000 21000 345000 345000 286000 133000 4101000 4101000 4884000 4884000 355000 267000 622000 37836000 6000 454307000 11315000 -137810000 -100795000 -2283000 213425000 6000 87000 87000 37000 11000 468000 468000 4678000 4678000 6835000 -387000 6448000 37879000 6000 459072000 11326000 -138278000 -93960000 -2670000 224170000 125000 2169000 2169000 2000 37000 37000 260000 102000 4566000 4566000 21000 21000 743000 743000 6026000 6026000 -4972000 -557000 -5529000 38245000 6000 467304000 11449000 -143587000 -98932000 -3227000 221564000 37411000 6000 423069000 10003000 -104705000 -97721000 -1064000 219585000 95000 1502000 1502000 75000 675000 675000 232000 113000 3389000 3389000 -219000 219000 5778000 5778000 5553000 5553000 -4150000 -431000 -4581000 37594000 6000 430799000 10335000 -113872000 -101871000 -1495000 213567000 12000 113000 113000 84000 33000 800000 800000 715000 715000 16693000 16693000 3872000 3872000 -1147000 -1037000 -2184000 36975000 6000 434784000 11083000 -131365000 -103018000 -2532000 197875000 92000 1509000 1509000 22000 276000 276000 206000 70000 1601000 1601000 5136000 5136000 1385000 -1377000 8000 37295000 6000 441705000 11153000 -132966000 -101633000 -3909000 203203000 2218000 -3912000 3778000 4173000 15561000 14561000 2659000 2605000 1494000 1127000 734000 41000 43000 46000 106000 -1185000 14999000 7038000 2750000 904000 1510000 928000 -1479000 -2697000 -2852000 -5342000 3624000 393000 2560000 3681000 2322000 -1612000 183000 -888000 -1613000 12571000 8023000 28800000 136000000 8574000 6651000 343000 54000 150000 150000 1823000 -14235000 83354000 469000 1064000 3832000 3011000 9135000 5790000 743000 22471000 -5577000 -24186000 -763000 -1147000 -8004000 66044000 119624000 27684000 111620000 93728000 3568000 2001000 1160000 1219000 697000 2200000 66000 336000 2268000 6002000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;">1. BASIS OF PRESENTATION AND SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Basis of Presentation</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The interim unaudited condensed consolidated financial statements included herein have been prepared by PDF Solutions, Inc. (the “Company”) pursuant to the rules and regulations of the Securities and Exchange Commission (“SEC”), including the instructions to the Quarterly Report on Form 10-Q and Article 10 of Regulation S-X. Certain information and footnote disclosures normally included in annual financial statements prepared in accordance with accounting principles generally accepted in the United States of America have been condensed or omitted. The interim unaudited condensed consolidated financial statements reflect, in the opinion of management, all adjustments necessary (consisting only of normal recurring adjustments) to present a fair statement of results for the interim periods presented. The operating results for any interim period are not necessarily indicative of the results that may be expected for other interim periods or the full fiscal year. The accompanying interim unaudited condensed consolidated financial statements should be read in conjunction with the audited consolidated financial statements and notes thereto in the Company’s Annual Report on Form 10-K for the year ended December 31, 2022, filed with the SEC on March 1, 2023.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The interim unaudited condensed consolidated financial statements include the accounts of the Company and its wholly-owned subsidiaries after the elimination of all intercompany balances and transactions.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The accompanying interim unaudited condensed consolidated balance sheet as of December 31, 2022 has been derived from the audited consolidated financial statements but does not include all disclosures required by accounting principles generally accepted in the United States of America.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Use of Estimates</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The preparation of financial statements in conformity with accounting principles generally accepted in the United States of America requires management to make estimates and assumptions that affect the reported amounts of assets and liabilities, the disclosure of contingent assets and liabilities at the date of the financial statements and the reported amounts of revenues and expenses during the reporting period. Significant estimates in these condensed consolidated financial statements include revenue recognition, the estimated useful lives of property and equipment and intangible assets, assumptions made in analysis of allowance for credit losses, impairment of goodwill and long-lived assets, valuation for deferred tax assets (“DTAs”), and accounting for lease obligations, stock-based compensation expense, and income tax uncertainties and contingencies. Actual results could differ from those estimates and may result in material effects on the Company’s operating results and financial position.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Recent Accounting Standards</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 18pt;">Accounting Standards Adopted</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;">In June 2016, the Financial Accounting Standards Board (“FASB’) issued Accounting Standards Update (“ASU”) No. 2016-13, Financial Instruments – Credit Losses (Topic 326): Measurement of Credit Losses on Financial Instruments (“ASU No. 2016-13”), which requires measurement and recognition of expected credit losses for financial assets held at the reporting date based on internal information, external information, or a combination of both relating to past events, current conditions, and reasonable and supportable forecasts. ASU No. 2016-13 replaces the existing incurred loss impairment model with a forward-looking expected credit loss model, which will result in earlier recognition of credit losses. Subsequent to the issuance of ASU No. 2016-13, the FASB issued ASU No. 2018-19, Codification Improvements to Topic 326, Financial Instruments – Credit Losses, ASU No. 2019-04, Codification Improvements to Topic 326, Financial Instruments – Credit Losses, Topic 815, Derivatives and Hedging, and Topic 825, Financial Instrument, ASU No. 2019-05, Financial Instruments – Credit Losses (Topic 326) Targeted Transition Relief, ASU No. 2016-13, ASU No. 2019-10 Financial Instruments-Credit Losses (Topic 326), Derivatives and Hedging (Topic 815), and Leases (Topic 842), and ASU No. 2019-11 Codification Improvements to Topic 326, Financial Instruments-Credit Losses. The subsequent ASUs do not change the core principle of the guidance in </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">ASU No. 2016-13. Instead, these amendments are intended to clarify and improve operability of certain topics included within ASU No. 2016-13.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company adopted this standard on January 1, 2023, using a modified retrospective approach, which requires a cumulative-effect adjustment to retained earnings as of the beginning of the period of adoption with prior periods not restated. The adoption of ASU No. 2016-13 did not have a material impact on the Company’s condensed consolidated financial statements.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 18pt;">Accounting Standards Not Yet Adopted</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Management has reviewed other recently issued accounting pronouncements issued or proposed by the FASB, and does not believe any of these accounting pronouncements has had or will have a material impact on the condensed consolidated financial statements.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;"><span style="font-size:1pt;margin-bottom:12pt;visibility:hidden;">​</span></p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Basis of Presentation</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The interim unaudited condensed consolidated financial statements included herein have been prepared by PDF Solutions, Inc. (the “Company”) pursuant to the rules and regulations of the Securities and Exchange Commission (“SEC”), including the instructions to the Quarterly Report on Form 10-Q and Article 10 of Regulation S-X. Certain information and footnote disclosures normally included in annual financial statements prepared in accordance with accounting principles generally accepted in the United States of America have been condensed or omitted. The interim unaudited condensed consolidated financial statements reflect, in the opinion of management, all adjustments necessary (consisting only of normal recurring adjustments) to present a fair statement of results for the interim periods presented. The operating results for any interim period are not necessarily indicative of the results that may be expected for other interim periods or the full fiscal year. The accompanying interim unaudited condensed consolidated financial statements should be read in conjunction with the audited consolidated financial statements and notes thereto in the Company’s Annual Report on Form 10-K for the year ended December 31, 2022, filed with the SEC on March 1, 2023.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The interim unaudited condensed consolidated financial statements include the accounts of the Company and its wholly-owned subsidiaries after the elimination of all intercompany balances and transactions.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The accompanying interim unaudited condensed consolidated balance sheet as of December 31, 2022 has been derived from the audited consolidated financial statements but does not include all disclosures required by accounting principles generally accepted in the United States of America.</p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Use of Estimates</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The preparation of financial statements in conformity with accounting principles generally accepted in the United States of America requires management to make estimates and assumptions that affect the reported amounts of assets and liabilities, the disclosure of contingent assets and liabilities at the date of the financial statements and the reported amounts of revenues and expenses during the reporting period. Significant estimates in these condensed consolidated financial statements include revenue recognition, the estimated useful lives of property and equipment and intangible assets, assumptions made in analysis of allowance for credit losses, impairment of goodwill and long-lived assets, valuation for deferred tax assets (“DTAs”), and accounting for lease obligations, stock-based compensation expense, and income tax uncertainties and contingencies. Actual results could differ from those estimates and may result in material effects on the Company’s operating results and financial position.</p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Recent Accounting Standards</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 18pt;">Accounting Standards Adopted</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;">In June 2016, the Financial Accounting Standards Board (“FASB’) issued Accounting Standards Update (“ASU”) No. 2016-13, Financial Instruments – Credit Losses (Topic 326): Measurement of Credit Losses on Financial Instruments (“ASU No. 2016-13”), which requires measurement and recognition of expected credit losses for financial assets held at the reporting date based on internal information, external information, or a combination of both relating to past events, current conditions, and reasonable and supportable forecasts. ASU No. 2016-13 replaces the existing incurred loss impairment model with a forward-looking expected credit loss model, which will result in earlier recognition of credit losses. Subsequent to the issuance of ASU No. 2016-13, the FASB issued ASU No. 2018-19, Codification Improvements to Topic 326, Financial Instruments – Credit Losses, ASU No. 2019-04, Codification Improvements to Topic 326, Financial Instruments – Credit Losses, Topic 815, Derivatives and Hedging, and Topic 825, Financial Instrument, ASU No. 2019-05, Financial Instruments – Credit Losses (Topic 326) Targeted Transition Relief, ASU No. 2016-13, ASU No. 2019-10 Financial Instruments-Credit Losses (Topic 326), Derivatives and Hedging (Topic 815), and Leases (Topic 842), and ASU No. 2019-11 Codification Improvements to Topic 326, Financial Instruments-Credit Losses. The subsequent ASUs do not change the core principle of the guidance in </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">ASU No. 2016-13. Instead, these amendments are intended to clarify and improve operability of certain topics included within ASU No. 2016-13.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company adopted this standard on January 1, 2023, using a modified retrospective approach, which requires a cumulative-effect adjustment to retained earnings as of the beginning of the period of adoption with prior periods not restated. The adoption of ASU No. 2016-13 did not have a material impact on the Company’s condensed consolidated financial statements.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 18pt;">Accounting Standards Not Yet Adopted</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Management has reviewed other recently issued accounting pronouncements issued or proposed by the FASB, and does not believe any of these accounting pronouncements has had or will have a material impact on the condensed consolidated financial statements.</p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;">2. REVENUE FROM CONTRACTS WITH CUSTOMERS</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company derives revenue from two sources: Analytics revenue and Integrated Yield Ramp revenue.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company recognizes revenue in accordance with FASB Accounting Standards Codification (“ASC”) Topic 606, <i style="font-style:italic;">Revenue from Contracts with Customers</i>, and its related amendments (collectively known as “ASC 606”). ASC 606 outlines a single comprehensive model to use in accounting for revenue arising from contracts with customers. Revenue is recognized when control of products or services is transferred to customers, in an amount that reflects the consideration the Company expects to be entitled to in exchange for those promised products or services.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company determines revenue recognition through the following five steps:</p><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">●</td><td style="padding:0pt;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">Identification of the contract, or contracts, with a customer</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">●</td><td style="padding:0pt;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">Identification of the performance obligations in the contract</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">●</td><td style="padding:0pt;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">Determination of the transaction price</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">●</td><td style="padding:0pt;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">Allocation of the transaction price to the performance obligations in the contract</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">●</td><td style="padding:0pt;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">Recognition of revenue when, or as, performance obligations are satisfied</span></td></tr></table><div style="margin-top:12pt;"></div><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company accounts for a contract when it has approval and commitment from both parties, the rights of the parties are identified, payment terms are identified, the contract has commercial substance, and collectibility of consideration is probable.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;"><span style="font-style:italic;">Contracts with multiple performance obligations</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company enters into contracts that can include various combinations of licenses, products and services, some of which are distinct and are accounted for as separate performance obligations. For contracts with multiple performance obligations, the Company allocates the transaction price of the contract to each performance obligation on a relative basis using the standalone selling price (“SSP”).</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Analytics Revenue</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Analytics revenue is derived from the following primary offerings: licenses and services for standalone software (which is primarily Exensio<sup style="font-size:7.5pt;line-height:100%;top:0pt;vertical-align:top;">®</sup> and Cimetrix<sup style="font-size:7.5pt;line-height:100%;top:0pt;vertical-align:top;">®</sup> products), software-as-a-service (“SaaS”) (which is primarily Exensio<sup style="font-size:7.5pt;line-height:100%;top:0pt;vertical-align:top;">®</sup> products), and Design-for-Inspection™ (“DFI™”) systems and Characterization Vehicle<sup style="font-size:7.5pt;line-height:100%;top:0pt;vertical-align:top;">®</sup> (“CV<sup style="font-size:7.5pt;line-height:100%;top:0pt;vertical-align:top;">®</sup>”) systems that do not include performance incentives based on customers’ yield achievement.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;">Revenue from standalone software is recognized depending on whether the license is perpetual or time-based. Perpetual (one-time charge) license software is recognized at the time of the inception of the arrangement when control transfers to the customers if the software license is considered as a separate performance obligation from the services offered by the Company. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">Revenue from post-contract support is recognized over the contract term on a straight-line basis, because the Company is providing (i) support and (ii) unspecified software updates on a when-and-if available basis over the contract term. Revenue from time-based-licensed software is allocated to each performance obligation and is recognized either at a point in time or over time as follows. The license component is recognized at the time when control transfers to customers, with the post-contract support component recognized ratably over the committed term of the contract. For contracts with any combination of licenses, support, and other services, distinct performance obligations are accounted for separately. For contracts with multiple performance obligations, the Company allocates the transaction price of the contract to each performance obligation on a relative basis using the SSP attributed to each performance obligation.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Revenue from SaaS arrangements, which allow for the use of a cloud-based software product or service over a contractually determined period of time without the customer having to take possession of software, is accounted for as a subscription and is recognized as revenue ratably, on a straight-line basis, over the subscription period beginning on the date the service is first made available to customers. For contracts with any combination of SaaS and related services, distinct performance obligations are accounted for separately. For contracts with multiple performance obligations, the Company allocates the transaction price of the contract to each performance obligation on a relative basis using the SSP attributed to each performance obligation.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Revenue from DFI systems and CV systems (including Characterization services) that do not include performance incentives based on customers’ yield achievement is recognized primarily as services are performed. Where there are distinct performance obligations, the Company allocates revenue to all deliverables based on their SSPs. For those contracts with multiple performance obligations, the Company allocates the transaction price of the contract to each performance obligation on a relative basis using the SSP attributed to each performance obligation. Where there are not discrete performance obligations, historically, revenue is primarily recognized as services are performed using a percentage of completion method based on costs or labor-hours inputs, whichever is the most appropriate measure of the progress towards completion of the contract. The estimation of percentage of completion method is complex and subject to many variables that require significant judgment. Please refer to the “Significant Judgments” section of this Note for further discussion.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Integrated Yield Ramp Revenue</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Integrated Yield Ramp revenue is derived from the Company’s fixed-fee engagements that include performance incentives based on customers’ yield achievement (which consists primarily of Gainshare royalties) typically based on customer’s wafer shipments, pertaining to these fixed-price contracts, which royalties are variable.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Revenue under these project-based contracts, which are delivered over a specific period of time, typically for a fixed fee component paid on a set schedule, is recognized as services are performed using a percentage of completion method based on costs or labor-hours inputs, whichever is the most appropriate measure of the progress towards completion of the contract. Where there are distinct performance obligations, the Company allocates revenue to all deliverables based on their SSPs and allocates the transaction price of the contract to each performance obligation on a relative basis using SSP. Similar to the services provided in connection with DFI systems and CV systems that are contributing to Analytics revenue, due to the nature of the work performed in these arrangements, the estimation of percentage of completion method is complex and subject to many variables that require significant judgment. Please refer to the “Significant Judgments” section of this Note for further discussion.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Gainshare contained in Integrated Yield Ramp contracts is a variable fee related to continued usage of the Company’s intellectual property after the fixed-fee service period ends, based on a customer’s yield achievement. Revenue derived from Gainshare is contingent upon the Company’s customers reaching certain defined production yield levels. Gainshare periods are generally subsequent to the delivery of all contractual services and performance obligations. The Company records Gainshare as a usage-based royalty derived from customers’ usage of intellectual property and records it in the same period in which the usage occurs.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Disaggregation of Revenue</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company disaggregates revenue from contracts with customers into the timing of the transfer of goods and services and the geographical regions. The Company determined that disaggregating revenue into these categories achieves the disclosure objective to depict how the nature, amount, timing, and uncertainty of revenue and cash flows are affected by economic factors.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:12pt 0pt 12pt 0pt;">The Company’s performance obligations are satisfied either over time or at a point-in-time. The following table represents a disaggregation of revenue percentage by timing of revenue:</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:32.79%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:14.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:15.85%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.72%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.71%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.26%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:32.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="3" style="vertical-align:bottom;width:33.13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Three Months Ended September 30, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"> </p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:30.39%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Nine Months Ended September 30, </b></p></td></tr><tr><td style="vertical-align:bottom;width:32.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.85%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.72%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.71%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.26%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:32.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Over time</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 68</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 68</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 74</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 70</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:32.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Point-in-time</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 32</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.85%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 32</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.72%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 26</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.71%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 30</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.26%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:32.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Total</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.6%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 100</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.85%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 100</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.72%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 100</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.71%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 100</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">International revenues accounted for approximately 42% and 54% of the Company’s total revenues during the three months ended September 30, 2023 and 2022, respectively. International revenues accounted for approximately 44% and 51% of the Company’s total revenues during the nine months ended September 30, 2023 and 2022, respectively. See Note 9, <i style="font-style:italic;">Customer and Geographic Information</i>.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Significant Judgments</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Judgments and estimates are required under ASC 606. Due to the complexity of certain contracts, the actual revenue recognition treatment required under ASC 606 for the Company’s arrangements may be dependent on contract-specific terms and may vary in some instances.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">For revenue under project-based contracts for fixed-price implementation services, revenue is recognized as services are performed using a percentage-of-completion method based on costs or labor-hours input method, whichever is the most appropriate measure of the progress towards completion of the contract. Due to the nature of the work performed in these arrangements, the estimation of percentage of completion method is complex, subject to many variables and requires significant judgment. Key factors reviewed by the Company to estimate costs to complete each contract are future labor and product costs and expected productivity efficiencies. If circumstances arise that change the original estimates of revenues, costs, or extent of progress toward completion, revisions to the estimates are made. These revisions may result in increases or decreases in estimated revenues or costs, and such revisions are reflected in revenue on a cumulative catch-up basis in the period in which the circumstances that gave rise to the revision become known.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company’s contracts with customers often include promises to transfer products, software licenses and provide services, including professional services, technical support services, and rights to unspecified updates to a customer. Determining whether licenses and services are distinct performance obligations that should be accounted for separately, or not distinct and thus accounted for together, requires significant judgment. The Company rarely licenses software on a standalone basis, so the Company is required to estimate the range of SSPs for each performance obligation. In instances where SSP is not directly observable because the Company does not license the software or sell the service separately, the Company determines the SSP using information that may include market conditions and other observable inputs. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company is required to record Gainshare revenue in the same period in which the usage occurs. Because the Company generally does not receive the acknowledgment reports from its customers during a given quarter within the time frame necessary to adequately review the reports and include the actual amounts in quarterly results for such quarter, the Company accrues the related revenue based on estimates of customers underlying sales achievement. The Company’s estimation process can be based on historical data, trends, seasonality, changes in the contract rate, knowledge of the changes in the industry and changes in the customer’s manufacturing environment learned through discussions with customers and sales personnel. As a result of accruing revenue for the quarter based on such estimates, adjustments will be required in the following quarter to true-up revenue to the actual amounts reported.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Contract Balances</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company performs its obligations under a contract with a customer by licensing software or providing services in exchange for consideration from the customer. The timing of the Company’s performance often differs from the timing of the customer’s payment, which results in the recognition of a receivable, a contract asset or a contract liability.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company classifies the right to consideration in exchange for software or services transferred to a customer as either a receivable or a contract asset. A receivable is a right to consideration that is unconditional, as compared to a contract asset, which is a right to consideration that is conditional upon factors other than the passage of time. The majority of the Company’s contract assets represent unbilled amounts related to fixed-price service contracts when the revenue recognized exceeds the amount billed to the customer. The contract assets are generally classified as current and are recorded on a net basis with deferred revenue (i.e., contract liabilities) at the contract level. As of September 30, 2023 and December 31, 2022, the total contract assets included in prepaid expenses and other current assets in the accompanying condensed consolidated balance sheets were $8.1 million and $3.3 million, respectively. The Company did not record any asset impairment charges related to contract assets for the periods presented.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Deferred revenues and billings in excess of recognized revenues consist substantially of amounts invoiced in advance of revenue recognition and are recognized as the revenue recognition criteria are met. Deferred revenues that will be recognized during the succeeding twelve-month period are recorded as current deferred revenues and the remaining portion is recorded in other non-current liabilities in the accompanying condensed consolidated balance sheets. As of September 30, 2023, and December 31, 2022, the non-current portion of deferred revenues included in non-current liabilities was $2.3 million and $1.9 million, respectively. Revenue recognized that was included in the deferred revenues and billings in excess of recognized revenues balances at the beginning of each reporting period was $13.1 million and $10.6 million during the three months ended September 30, 2023 and 2022, respectively, and $23.8 million and $16.3 million during the nine months ended September 30, 2023 and 2022, respectively.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">As of September 30, 2023, the aggregate amount of the transaction price allocated to the remaining performance obligations related to customer contracts that were unsatisfied or partially unsatisfied was approximately $218.3 million. Given the applicable contract terms with customers, more than half of this amount is expected to be recognized as revenue over the next two years with the remainder to be recognized thereafter. This amount does not include insignificant contracts to which the customer is not committed, nor significant contracts for which the Company recognizes revenue equal to the amount the Company has the right to invoice for services performed, or future sales-based or usage-based royalty payments in exchange for a license of intellectual property. This amount is subject to change due to future revaluations of variable consideration, terminations, other contract modifications, or currency adjustments. The estimated timing of the recognition of remaining unsatisfied performance obligations is subject to change and is affected by changes to the scope, change in timing of delivery of products and services, or contract modifications.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The adjustment to revenue recognized from performance obligations satisfied (or partially satisfied) in previous periods was a decrease of $0.6 million and an increase of $1.9 million during the three months ended September 30, 2023 and 2022, respectively, and an increase of $4.3 million and an increase of $0.4 million during the nine months ended September 30, 2023 and 2022, respectively. These amounts primarily represent changes in estimated percentage-of-completion based contracts and changes in actual versus estimated Gainshare.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Costs to obtain or fulfill a contract</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company capitalizes the incremental costs to obtain or fulfill a contract with a customer, including direct sales commissions and related fees, when it expects to recover those costs. Amortization expense related to these capitalized costs is recognized over the period associated with the revenue from which the cost was incurred. Total capitalized direct sales commission costs included in prepaid expenses and other current assets in the accompanying condensed consolidated balance sheets as of September 30, 2023, and December 31, 2022, were $2.0 million and $1.7 million, respectively. Total capitalized direct sales commission costs included in other non-current assets in the accompanying condensed consolidated balance sheets as of September 30, 2023, and December 31, 2022, were $2.5 million and $2.1 million, respectively. Amortization of these assets was $0.5 million and $0.4 million during the three months ended September 30, 2023 and 2022, respectively, and $1.5 million and $1.1 million during the nine months ended September 30, 2023 and 2022. There was no impairment loss in relation to the costs capitalized for the periods presented.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Practical expedient</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company does not adjust the transaction price for the effects of a significant financing component when the period between the transfers of the promised good or service to the customer and payment for that good or service by the customer is expected to be one year or less. The Company assessed each of its revenue generating arrangements in order to determine whether a significant financing component exists, and determined its contracts did not include a significant financing component during the three and nine months ended September 30, 2023 and 2022.</p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company derives revenue from two sources: Analytics revenue and Integrated Yield Ramp revenue.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company recognizes revenue in accordance with FASB Accounting Standards Codification (“ASC”) Topic 606, <i style="font-style:italic;">Revenue from Contracts with Customers</i>, and its related amendments (collectively known as “ASC 606”). ASC 606 outlines a single comprehensive model to use in accounting for revenue arising from contracts with customers. Revenue is recognized when control of products or services is transferred to customers, in an amount that reflects the consideration the Company expects to be entitled to in exchange for those promised products or services.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company determines revenue recognition through the following five steps:</p><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">●</td><td style="padding:0pt;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">Identification of the contract, or contracts, with a customer</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">●</td><td style="padding:0pt;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">Identification of the performance obligations in the contract</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">●</td><td style="padding:0pt;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">Determination of the transaction price</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">●</td><td style="padding:0pt;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">Allocation of the transaction price to the performance obligations in the contract</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">●</td><td style="padding:0pt;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">Recognition of revenue when, or as, performance obligations are satisfied</span></td></tr></table><div style="margin-top:12pt;"></div><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company accounts for a contract when it has approval and commitment from both parties, the rights of the parties are identified, payment terms are identified, the contract has commercial substance, and collectibility of consideration is probable.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;"><span style="font-style:italic;">Contracts with multiple performance obligations</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company enters into contracts that can include various combinations of licenses, products and services, some of which are distinct and are accounted for as separate performance obligations. For contracts with multiple performance obligations, the Company allocates the transaction price of the contract to each performance obligation on a relative basis using the standalone selling price (“SSP”).</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Analytics Revenue</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Analytics revenue is derived from the following primary offerings: licenses and services for standalone software (which is primarily Exensio<sup style="font-size:7.5pt;line-height:100%;top:0pt;vertical-align:top;">®</sup> and Cimetrix<sup style="font-size:7.5pt;line-height:100%;top:0pt;vertical-align:top;">®</sup> products), software-as-a-service (“SaaS”) (which is primarily Exensio<sup style="font-size:7.5pt;line-height:100%;top:0pt;vertical-align:top;">®</sup> products), and Design-for-Inspection™ (“DFI™”) systems and Characterization Vehicle<sup style="font-size:7.5pt;line-height:100%;top:0pt;vertical-align:top;">®</sup> (“CV<sup style="font-size:7.5pt;line-height:100%;top:0pt;vertical-align:top;">®</sup>”) systems that do not include performance incentives based on customers’ yield achievement.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;">Revenue from standalone software is recognized depending on whether the license is perpetual or time-based. Perpetual (one-time charge) license software is recognized at the time of the inception of the arrangement when control transfers to the customers if the software license is considered as a separate performance obligation from the services offered by the Company. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">Revenue from post-contract support is recognized over the contract term on a straight-line basis, because the Company is providing (i) support and (ii) unspecified software updates on a when-and-if available basis over the contract term. Revenue from time-based-licensed software is allocated to each performance obligation and is recognized either at a point in time or over time as follows. The license component is recognized at the time when control transfers to customers, with the post-contract support component recognized ratably over the committed term of the contract. For contracts with any combination of licenses, support, and other services, distinct performance obligations are accounted for separately. For contracts with multiple performance obligations, the Company allocates the transaction price of the contract to each performance obligation on a relative basis using the SSP attributed to each performance obligation.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Revenue from SaaS arrangements, which allow for the use of a cloud-based software product or service over a contractually determined period of time without the customer having to take possession of software, is accounted for as a subscription and is recognized as revenue ratably, on a straight-line basis, over the subscription period beginning on the date the service is first made available to customers. For contracts with any combination of SaaS and related services, distinct performance obligations are accounted for separately. For contracts with multiple performance obligations, the Company allocates the transaction price of the contract to each performance obligation on a relative basis using the SSP attributed to each performance obligation.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Revenue from DFI systems and CV systems (including Characterization services) that do not include performance incentives based on customers’ yield achievement is recognized primarily as services are performed. Where there are distinct performance obligations, the Company allocates revenue to all deliverables based on their SSPs. For those contracts with multiple performance obligations, the Company allocates the transaction price of the contract to each performance obligation on a relative basis using the SSP attributed to each performance obligation. Where there are not discrete performance obligations, historically, revenue is primarily recognized as services are performed using a percentage of completion method based on costs or labor-hours inputs, whichever is the most appropriate measure of the progress towards completion of the contract. The estimation of percentage of completion method is complex and subject to many variables that require significant judgment. Please refer to the “Significant Judgments” section of this Note for further discussion.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Integrated Yield Ramp Revenue</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Integrated Yield Ramp revenue is derived from the Company’s fixed-fee engagements that include performance incentives based on customers’ yield achievement (which consists primarily of Gainshare royalties) typically based on customer’s wafer shipments, pertaining to these fixed-price contracts, which royalties are variable.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Revenue under these project-based contracts, which are delivered over a specific period of time, typically for a fixed fee component paid on a set schedule, is recognized as services are performed using a percentage of completion method based on costs or labor-hours inputs, whichever is the most appropriate measure of the progress towards completion of the contract. Where there are distinct performance obligations, the Company allocates revenue to all deliverables based on their SSPs and allocates the transaction price of the contract to each performance obligation on a relative basis using SSP. Similar to the services provided in connection with DFI systems and CV systems that are contributing to Analytics revenue, due to the nature of the work performed in these arrangements, the estimation of percentage of completion method is complex and subject to many variables that require significant judgment. Please refer to the “Significant Judgments” section of this Note for further discussion.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Gainshare contained in Integrated Yield Ramp contracts is a variable fee related to continued usage of the Company’s intellectual property after the fixed-fee service period ends, based on a customer’s yield achievement. Revenue derived from Gainshare is contingent upon the Company’s customers reaching certain defined production yield levels. Gainshare periods are generally subsequent to the delivery of all contractual services and performance obligations. The Company records Gainshare as a usage-based royalty derived from customers’ usage of intellectual property and records it in the same period in which the usage occurs.</p> 2 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:32.79%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:14.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:15.85%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.72%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.71%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.26%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:32.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="3" style="vertical-align:bottom;width:33.13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Three Months Ended September 30, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"> </p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:30.39%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Nine Months Ended September 30, </b></p></td></tr><tr><td style="vertical-align:bottom;width:32.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.85%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.72%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.71%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.26%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:32.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Over time</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 68</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 68</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 74</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 70</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:32.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Point-in-time</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.6%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 32</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.85%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 32</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.72%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 26</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.71%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 30</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.26%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:32.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Total</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.6%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 100</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:15.85%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 100</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.72%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 100</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.71%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 100</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">%</p></td></tr></table> 0.68 0.68 0.74 0.70 0.32 0.32 0.26 0.30 1 1 1 1 0.42 0.54 0.44 0.51 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Significant Judgments</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Judgments and estimates are required under ASC 606. Due to the complexity of certain contracts, the actual revenue recognition treatment required under ASC 606 for the Company’s arrangements may be dependent on contract-specific terms and may vary in some instances.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">For revenue under project-based contracts for fixed-price implementation services, revenue is recognized as services are performed using a percentage-of-completion method based on costs or labor-hours input method, whichever is the most appropriate measure of the progress towards completion of the contract. Due to the nature of the work performed in these arrangements, the estimation of percentage of completion method is complex, subject to many variables and requires significant judgment. Key factors reviewed by the Company to estimate costs to complete each contract are future labor and product costs and expected productivity efficiencies. If circumstances arise that change the original estimates of revenues, costs, or extent of progress toward completion, revisions to the estimates are made. These revisions may result in increases or decreases in estimated revenues or costs, and such revisions are reflected in revenue on a cumulative catch-up basis in the period in which the circumstances that gave rise to the revision become known.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company’s contracts with customers often include promises to transfer products, software licenses and provide services, including professional services, technical support services, and rights to unspecified updates to a customer. Determining whether licenses and services are distinct performance obligations that should be accounted for separately, or not distinct and thus accounted for together, requires significant judgment. The Company rarely licenses software on a standalone basis, so the Company is required to estimate the range of SSPs for each performance obligation. In instances where SSP is not directly observable because the Company does not license the software or sell the service separately, the Company determines the SSP using information that may include market conditions and other observable inputs. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company is required to record Gainshare revenue in the same period in which the usage occurs. Because the Company generally does not receive the acknowledgment reports from its customers during a given quarter within the time frame necessary to adequately review the reports and include the actual amounts in quarterly results for such quarter, the Company accrues the related revenue based on estimates of customers underlying sales achievement. The Company’s estimation process can be based on historical data, trends, seasonality, changes in the contract rate, knowledge of the changes in the industry and changes in the customer’s manufacturing environment learned through discussions with customers and sales personnel. As a result of accruing revenue for the quarter based on such estimates, adjustments will be required in the following quarter to true-up revenue to the actual amounts reported.</p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Contract Balances</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company performs its obligations under a contract with a customer by licensing software or providing services in exchange for consideration from the customer. The timing of the Company’s performance often differs from the timing of the customer’s payment, which results in the recognition of a receivable, a contract asset or a contract liability.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company classifies the right to consideration in exchange for software or services transferred to a customer as either a receivable or a contract asset. A receivable is a right to consideration that is unconditional, as compared to a contract asset, which is a right to consideration that is conditional upon factors other than the passage of time. The majority of the Company’s contract assets represent unbilled amounts related to fixed-price service contracts when the revenue recognized exceeds the amount billed to the customer. The contract assets are generally classified as current and are recorded on a net basis with deferred revenue (i.e., contract liabilities) at the contract level. As of September 30, 2023 and December 31, 2022, the total contract assets included in prepaid expenses and other current assets in the accompanying condensed consolidated balance sheets were $8.1 million and $3.3 million, respectively. The Company did not record any asset impairment charges related to contract assets for the periods presented.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Deferred revenues and billings in excess of recognized revenues consist substantially of amounts invoiced in advance of revenue recognition and are recognized as the revenue recognition criteria are met. Deferred revenues that will be recognized during the succeeding twelve-month period are recorded as current deferred revenues and the remaining portion is recorded in other non-current liabilities in the accompanying condensed consolidated balance sheets. As of September 30, 2023, and December 31, 2022, the non-current portion of deferred revenues included in non-current liabilities was $2.3 million and $1.9 million, respectively. Revenue recognized that was included in the deferred revenues and billings in excess of recognized revenues balances at the beginning of each reporting period was $13.1 million and $10.6 million during the three months ended September 30, 2023 and 2022, respectively, and $23.8 million and $16.3 million during the nine months ended September 30, 2023 and 2022, respectively.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">As of September 30, 2023, the aggregate amount of the transaction price allocated to the remaining performance obligations related to customer contracts that were unsatisfied or partially unsatisfied was approximately $218.3 million. Given the applicable contract terms with customers, more than half of this amount is expected to be recognized as revenue over the next two years with the remainder to be recognized thereafter. This amount does not include insignificant contracts to which the customer is not committed, nor significant contracts for which the Company recognizes revenue equal to the amount the Company has the right to invoice for services performed, or future sales-based or usage-based royalty payments in exchange for a license of intellectual property. This amount is subject to change due to future revaluations of variable consideration, terminations, other contract modifications, or currency adjustments. The estimated timing of the recognition of remaining unsatisfied performance obligations is subject to change and is affected by changes to the scope, change in timing of delivery of products and services, or contract modifications.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The adjustment to revenue recognized from performance obligations satisfied (or partially satisfied) in previous periods was a decrease of $0.6 million and an increase of $1.9 million during the three months ended September 30, 2023 and 2022, respectively, and an increase of $4.3 million and an increase of $0.4 million during the nine months ended September 30, 2023 and 2022, respectively. These amounts primarily represent changes in estimated percentage-of-completion based contracts and changes in actual versus estimated Gainshare.</p> 8100000 3300000 P12M 2300000 1900000 13100000 10600000 23800000 16300000 218300000 P2Y 600000 1900000 4300000 400000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Costs to obtain or fulfill a contract</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company capitalizes the incremental costs to obtain or fulfill a contract with a customer, including direct sales commissions and related fees, when it expects to recover those costs. Amortization expense related to these capitalized costs is recognized over the period associated with the revenue from which the cost was incurred. Total capitalized direct sales commission costs included in prepaid expenses and other current assets in the accompanying condensed consolidated balance sheets as of September 30, 2023, and December 31, 2022, were $2.0 million and $1.7 million, respectively. Total capitalized direct sales commission costs included in other non-current assets in the accompanying condensed consolidated balance sheets as of September 30, 2023, and December 31, 2022, were $2.5 million and $2.1 million, respectively. Amortization of these assets was $0.5 million and $0.4 million during the three months ended September 30, 2023 and 2022, respectively, and $1.5 million and $1.1 million during the nine months ended September 30, 2023 and 2022. There was no impairment loss in relation to the costs capitalized for the periods presented.</p> 2000000.0 1700000 2500000 2100000 500000 400000 1500000 1100000 0 0 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Practical expedient</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company does not adjust the transaction price for the effects of a significant financing component when the period between the transfers of the promised good or service to the customer and payment for that good or service by the customer is expected to be one year or less. The Company assessed each of its revenue generating arrangements in order to determine whether a significant financing component exists, and determined its contracts did not include a significant financing component during the three and nine months ended September 30, 2023 and 2022.</p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;">3. BALANCE SHEET COMPONENTS</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Accounts receivable</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Accounts receivable include amounts that are unbilled at the end of the period that are expected to be billed and collected within a 12-month period. Unbilled accounts receivable, included in accounts receivable, totaled $14.3 million and $13.5 million as of September 30, 2023, and December 31, 2022, respectively. Unbilled accounts receivable that are not expected to be billed and collected during the succeeding 12-month period are recorded in other non-current assets and totaled $0.8 million and $0.8 million as of September 30, 2023, and December 31, 2022, respectively.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company performs ongoing credit evaluations of its customers’ financial condition. An allowance for credit losses is maintained for probable credit losses based upon the Company’s assessment of the expected collectability of the accounts receivable. The allowance for credit losses is reviewed on a quarterly basis to assess the adequacy of the allowance.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Property and equipment</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;">Property and equipment, net consist of the following (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:71.66%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.1%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.86%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.51%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:0.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.77%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.01%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:71.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-size:10.5pt;font-weight:bold;">September 30, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:10.5pt;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-size:10.5pt;font-weight:bold;">December 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:71.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;">    </span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.38%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-size:10.5pt;font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:10.5pt;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.79%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-size:10.5pt;font-weight:bold;">2022</b></p></td></tr><tr><td style="vertical-align:bottom;width:71.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;">Computer equipment</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"><span style="font-size:10.5pt;"> 12,076</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:10.5pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.77%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.01%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"><span style="font-size:10.5pt;"> 11,853</span></p></td></tr><tr><td style="vertical-align:bottom;width:71.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;">Software</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"><span style="font-size:10.5pt;"> 5,575</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:10.5pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.77%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.01%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"><span style="font-size:10.5pt;"> 5,395</span></p></td></tr><tr><td style="vertical-align:bottom;width:71.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;">Furniture, fixtures, and equipment</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"><span style="font-size:10.5pt;"> 2,491</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:10.5pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.77%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.01%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"><span style="font-size:10.5pt;"> 2,484</span></p></td></tr><tr><td style="vertical-align:bottom;width:71.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;">Leasehold improvements</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"><span style="font-size:10.5pt;"> 6,456</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:10.5pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.77%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.01%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"><span style="font-size:10.5pt;"> 6,467</span></p></td></tr><tr><td style="vertical-align:bottom;width:71.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;">Laboratory and other equipment</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"><span style="font-size:10.5pt;"> 4,770</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:10.5pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.77%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.01%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"><span style="font-size:10.5pt;"> 4,431</span></p></td></tr><tr><td style="vertical-align:bottom;width:71.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;">Test equipment</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"><span style="font-size:10.5pt;"> 27,866</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:10.5pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.77%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.01%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"><span style="font-size:10.5pt;"> 28,403</span></p></td></tr><tr><td style="vertical-align:bottom;width:71.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;">Property and equipment in progress:</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:10.5pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.77%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.01%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:71.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-size:10.5pt;">DFI™ system assets</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"><span style="font-size:10.5pt;"> 21,123</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:10.5pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.77%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.01%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"><span style="font-size:10.5pt;"> 22,231</span></p></td></tr><tr><td style="vertical-align:bottom;width:71.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-size:10.5pt;">CV® system and other assets</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.86%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.51%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"><span style="font-size:10.5pt;"> 6,963</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:10.5pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.77%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.01%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"><span style="font-size:10.5pt;"> 5,105</span></p></td></tr><tr><td style="vertical-align:bottom;width:71.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"><span style="font-size:10.5pt;"> 87,320</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:10.5pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.77%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.01%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"><span style="font-size:10.5pt;"> 86,369</span></p></td></tr><tr><td style="vertical-align:bottom;width:71.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;">Less: Accumulated depreciation and amortization</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.86%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.51%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;"> (49,487)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:10.5pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.77%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.01%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;"> (46,195)</span></p></td></tr><tr><td style="vertical-align:bottom;width:71.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;">Total</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.86%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.51%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"><span style="font-size:10.5pt;"> 37,833</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:10.5pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.77%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.01%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"><span style="font-size:10.5pt;"> 40,174</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Test equipment mainly includes DFI™ system and CV<sup style="font-size:7.5pt;line-height:100%;top:0pt;vertical-align:top;">®</sup> system assets at customer sites that are contributing to revenue. Property and equipment in progress represent the development or construction of property and equipment that have not yet been placed in service for the Company’s intended use and are not depreciated. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:12pt 0pt 12pt 0pt;">Depreciation and amortization expense was $1.2 million and $1.4 million during the three months ended September 30, 2023 and 2022, respectively, and $3.8 million and $4.2 million during the nine months ended September 30, 2023 and 2022, respectively.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Goodwill and Intangible Assets, Net</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">As of September 30, 2023, and December 31, 2022, the carrying amount of goodwill was $15.0 million and $14.1 million, respectively. Refer to Note 13, <i style="font-style:italic;">Business Combination</i>, for the discussion about additional goodwill recognized during the three and nine months ended September 30, 2023.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Intangible assets, net, consisted of the following (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:29.83%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.57%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.17%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:0.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.07%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.28%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:0.9%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.1%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:0.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.28%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:0.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:6.79%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:29.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.57%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="8" style="vertical-align:bottom;white-space:nowrap;width:28.34%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">September 30, 2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td colspan="8" style="vertical-align:bottom;white-space:nowrap;width:27.86%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">December 31, 2022</b></p></td></tr><tr><td style="vertical-align:bottom;width:29.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.57%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Amortization</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:7.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Gross</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Net</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:7.8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Gross</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:7.68%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Net</b></p></td></tr><tr><td style="vertical-align:bottom;width:29.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.57%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Period</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:7.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Carrying</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Accumulated</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Carrying</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:7.8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Carrying</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Accumulated</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:7.68%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Carrying</b></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:29.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.57%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.17%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">(Years)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:7.96%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Amount</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.17%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Amortization</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Amount</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:7.8%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Amount</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.17%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Amortization</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:7.68%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Amount</b></p></td></tr><tr><td style="vertical-align:bottom;width:29.83%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;">Acquired identifiable intangibles:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.57%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.07%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:29.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 6pt;">Customer relationships</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.57%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;">1</span><span style="font-size:8pt;">-</span><span style="font-size:8pt;">10</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0.05pt 0pt;"> 9,505</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (7,170)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0.05pt 0pt;"> 2,335</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0.05pt 0pt;"> 9,407</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (6,684)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0.05pt 0pt;"> 2,723</p></td></tr><tr><td style="vertical-align:bottom;width:29.83%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 6pt;">Developed technology</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.57%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;">4</span><span style="font-size:8pt;">-</span><span style="font-size:8pt;">9</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.07%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0.05pt 0pt;"> 34,627</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (21,463)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0.05pt 0pt;"> 13,164</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0.05pt 0pt;"> 33,635</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (19,647)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0.05pt 0pt;"> 13,988</p></td></tr><tr><td style="vertical-align:bottom;width:29.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 6pt;">Tradename and trademarks</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.57%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;">2</span><span style="font-size:8pt;">-</span><span style="font-size:8pt;">10</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0.05pt 0pt;"> 1,598</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (999)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0.05pt 0pt;"> 599</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0.05pt 0pt;"> 1,598</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (918)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0.05pt 0pt;"> 680</p></td></tr><tr><td style="vertical-align:bottom;width:29.83%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 6pt;">Patent</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.57%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;">6</span><span style="font-size:8pt;">-</span><span style="font-size:8pt;">10</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.07%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0.05pt 0pt;"> 2,100</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (1,760)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0.05pt 0pt;"> 340</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0.05pt 0pt;"> 2,100</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (1,696)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0.05pt 0pt;"> 404</p></td></tr><tr><td style="vertical-align:bottom;width:29.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 6pt;">Noncompetition agreements</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.57%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;">3</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.07%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0.05pt 0pt;"> 848</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.28%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (800)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.9%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.1%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0.05pt 0pt;"> 48</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0.05pt 0pt;"> 848</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.28%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (588)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.79%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0.05pt 0pt;"> 260</p></td></tr><tr><td style="vertical-align:bottom;width:29.83%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;">Total</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.57%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.89%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.07%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0.05pt 0pt;"> 48,678</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.28%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.89%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (32,192)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.9%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.1%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0.05pt 0pt;"> 16,486</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.89%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0.05pt 0pt;"> 47,588</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.28%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.89%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (29,533)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.89%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.79%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0.05pt 0pt;"> 18,055</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The weighted average amortization period for acquired identifiable intangible assets was 5.5 years as of September 30, 2023. The following table summarizes intangible assets amortization expense in the accompanying condensed consolidated statements of comprehensive income (loss) (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:34.09%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.97%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.22%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.1%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.96%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.24%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.79%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.99%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.81%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:34.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:31.5%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Three Months Ended September 30, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:30.39%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Nine Months Ended September 30, </b></p></td></tr><tr><td style="vertical-align:bottom;width:34.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:14.19%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:14.2%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.69%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.99%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.7%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2022</b></p></td></tr><tr><td style="vertical-align:bottom;width:34.09%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Amortization of acquired technology included under costs of revenues</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 574</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 553</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 1,680</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.99%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 1,659</p></td></tr><tr><td style="vertical-align:bottom;width:34.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Amortization of acquired intangible assets presented separately under costs and expenses</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.97%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 328</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.96%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.24%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 318</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.79%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 979</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.99%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.81%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 946</p></td></tr><tr><td style="vertical-align:bottom;width:34.09%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Total amortization of acquired intangible assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.97%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.22%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 902</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.96%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.24%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 871</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.79%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 2,659</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.99%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.81%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 2,605</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:12pt 0pt 12pt 0pt;">The Company expects annual amortization of acquired identifiable intangible assets to be as follows (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:84.95%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.7%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.61%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:84.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Year Ending December 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.34%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Amount</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2023 (remaining three months)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.7%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 890</p></td></tr><tr><td style="vertical-align:bottom;width:84.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2024</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 3,233</p></td></tr><tr><td style="vertical-align:bottom;width:84.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2025</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.7%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 3,069</p></td></tr><tr><td style="vertical-align:bottom;width:84.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2026</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 2,899</p></td></tr><tr><td style="vertical-align:bottom;width:84.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2027</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.7%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 2,747</p></td></tr><tr><td style="vertical-align:bottom;width:84.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2028 and thereafter</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.61%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 3,648</p></td></tr><tr><td style="vertical-align:bottom;width:84.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Total future amortization expense</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.7%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.61%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 16,486</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:12pt 0pt 12pt 0pt;">There were no impairment charges for goodwill and intangible assets during the three and nine months ended September 30, 2023 and 2022.</p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Accounts receivable</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Accounts receivable include amounts that are unbilled at the end of the period that are expected to be billed and collected within a 12-month period. Unbilled accounts receivable, included in accounts receivable, totaled $14.3 million and $13.5 million as of September 30, 2023, and December 31, 2022, respectively. Unbilled accounts receivable that are not expected to be billed and collected during the succeeding 12-month period are recorded in other non-current assets and totaled $0.8 million and $0.8 million as of September 30, 2023, and December 31, 2022, respectively.</p> P12M 14300000 13500000 800000 800000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:71.66%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.1%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.86%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.51%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:0.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.77%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.01%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:71.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-size:10.5pt;font-weight:bold;">September 30, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:10.5pt;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-size:10.5pt;font-weight:bold;">December 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:71.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;">    </span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.38%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-size:10.5pt;font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:10.5pt;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.79%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-size:10.5pt;font-weight:bold;">2022</b></p></td></tr><tr><td style="vertical-align:bottom;width:71.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;">Computer equipment</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"><span style="font-size:10.5pt;"> 12,076</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:10.5pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.77%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.01%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"><span style="font-size:10.5pt;"> 11,853</span></p></td></tr><tr><td style="vertical-align:bottom;width:71.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;">Software</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"><span style="font-size:10.5pt;"> 5,575</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:10.5pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.77%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.01%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"><span style="font-size:10.5pt;"> 5,395</span></p></td></tr><tr><td style="vertical-align:bottom;width:71.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;">Furniture, fixtures, and equipment</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"><span style="font-size:10.5pt;"> 2,491</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:10.5pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.77%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.01%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"><span style="font-size:10.5pt;"> 2,484</span></p></td></tr><tr><td style="vertical-align:bottom;width:71.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;">Leasehold improvements</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"><span style="font-size:10.5pt;"> 6,456</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:10.5pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.77%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.01%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"><span style="font-size:10.5pt;"> 6,467</span></p></td></tr><tr><td style="vertical-align:bottom;width:71.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;">Laboratory and other equipment</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"><span style="font-size:10.5pt;"> 4,770</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:10.5pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.77%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.01%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"><span style="font-size:10.5pt;"> 4,431</span></p></td></tr><tr><td style="vertical-align:bottom;width:71.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;">Test equipment</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"><span style="font-size:10.5pt;"> 27,866</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:10.5pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.77%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.01%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"><span style="font-size:10.5pt;"> 28,403</span></p></td></tr><tr><td style="vertical-align:bottom;width:71.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;">Property and equipment in progress:</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:10.5pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.77%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.01%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:71.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-size:10.5pt;">DFI™ system assets</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"><span style="font-size:10.5pt;"> 21,123</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:10.5pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.77%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.01%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"><span style="font-size:10.5pt;"> 22,231</span></p></td></tr><tr><td style="vertical-align:bottom;width:71.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;"><span style="font-size:10.5pt;">CV® system and other assets</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.86%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.51%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"><span style="font-size:10.5pt;"> 6,963</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:10.5pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.77%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.01%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"><span style="font-size:10.5pt;"> 5,105</span></p></td></tr><tr><td style="vertical-align:bottom;width:71.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"><span style="font-size:10.5pt;"> 87,320</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:10.5pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.77%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.01%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"><span style="font-size:10.5pt;"> 86,369</span></p></td></tr><tr><td style="vertical-align:bottom;width:71.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;">Less: Accumulated depreciation and amortization</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.86%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.51%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;"> (49,487)</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:10.5pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.77%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;"> </span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.01%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;"> (46,195)</span></p></td></tr><tr><td style="vertical-align:bottom;width:71.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;">Total</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.86%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.51%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"><span style="font-size:10.5pt;"> 37,833</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:10.5pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.77%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:10.5pt;">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.01%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"><span style="font-size:10.5pt;"> 40,174</span></p></td></tr></table> 12076000 11853000 5575000 5395000 2491000 2484000 6456000 6467000 4770000 4431000 27866000 28403000 21123000 22231000 6963000 5105000 87320000 86369000 49487000 46195000 37833000 40174000 1200000 1400000 3800000 4200000 15000000.0 14100000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:29.83%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.57%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.17%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:0.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.07%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.28%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:0.9%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.1%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:0.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.28%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:0.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:6.79%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:29.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.57%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="8" style="vertical-align:bottom;white-space:nowrap;width:28.34%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">September 30, 2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td colspan="8" style="vertical-align:bottom;white-space:nowrap;width:27.86%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">December 31, 2022</b></p></td></tr><tr><td style="vertical-align:bottom;width:29.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.57%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Amortization</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:7.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Gross</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Net</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:7.8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Gross</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:7.68%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Net</b></p></td></tr><tr><td style="vertical-align:bottom;width:29.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.57%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Period</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:7.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Carrying</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Accumulated</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Carrying</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:7.8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Carrying</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Accumulated</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:7.68%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Carrying</b></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:29.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.57%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.17%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">(Years)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:7.96%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Amount</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.17%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Amortization</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Amount</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:7.8%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Amount</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.17%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Amortization</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:7.68%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Amount</b></p></td></tr><tr><td style="vertical-align:bottom;width:29.83%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;">Acquired identifiable intangibles:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.57%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.07%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:29.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 6pt;">Customer relationships</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.57%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;">1</span><span style="font-size:8pt;">-</span><span style="font-size:8pt;">10</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0.05pt 0pt;"> 9,505</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (7,170)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0.05pt 0pt;"> 2,335</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0.05pt 0pt;"> 9,407</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (6,684)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0.05pt 0pt;"> 2,723</p></td></tr><tr><td style="vertical-align:bottom;width:29.83%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 6pt;">Developed technology</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.57%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;">4</span><span style="font-size:8pt;">-</span><span style="font-size:8pt;">9</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.07%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0.05pt 0pt;"> 34,627</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (21,463)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0.05pt 0pt;"> 13,164</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0.05pt 0pt;"> 33,635</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (19,647)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0.05pt 0pt;"> 13,988</p></td></tr><tr><td style="vertical-align:bottom;width:29.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 6pt;">Tradename and trademarks</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.57%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;">2</span><span style="font-size:8pt;">-</span><span style="font-size:8pt;">10</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.07%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0.05pt 0pt;"> 1,598</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (999)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0.05pt 0pt;"> 599</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0.05pt 0pt;"> 1,598</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (918)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0.05pt 0pt;"> 680</p></td></tr><tr><td style="vertical-align:bottom;width:29.83%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 6pt;">Patent</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.57%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;">6</span><span style="font-size:8pt;">-</span><span style="font-size:8pt;">10</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.07%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0.05pt 0pt;"> 2,100</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (1,760)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0.05pt 0pt;"> 340</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0.05pt 0pt;"> 2,100</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (1,696)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0.05pt 0pt;"> 404</p></td></tr><tr><td style="vertical-align:bottom;width:29.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 6pt;">Noncompetition agreements</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.57%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;">3</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.07%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0.05pt 0pt;"> 848</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.28%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (800)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.9%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.1%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0.05pt 0pt;"> 48</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0.05pt 0pt;"> 848</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.28%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (588)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.79%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0.05pt 0pt;"> 260</p></td></tr><tr><td style="vertical-align:bottom;width:29.83%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;">Total</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.57%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.89%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.07%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0.05pt 0pt;"> 48,678</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.28%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.89%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (32,192)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.9%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.1%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0.05pt 0pt;"> 16,486</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.89%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.91%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0.05pt 0pt;"> 47,588</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.28%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.89%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (29,533)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.89%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.79%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:right;margin:0pt 2.5pt 0.05pt 0pt;"> 18,055</p></td></tr></table> P1Y P10Y 9505000 7170000 2335000 9407000 6684000 2723000 P4Y P9Y 34627000 21463000 13164000 33635000 19647000 13988000 P2Y P10Y 1598000 999000 599000 1598000 918000 680000 P6Y P10Y 2100000 1760000 340000 2100000 1696000 404000 P3Y 848000 800000 48000 848000 588000 260000 48678000 32192000 16486000 47588000 29533000 18055000 P5Y6M <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:34.09%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.97%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.22%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.1%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.96%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.24%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.79%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.99%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.81%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:34.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:31.5%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Three Months Ended September 30, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:30.39%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Nine Months Ended September 30, </b></p></td></tr><tr><td style="vertical-align:bottom;width:34.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:14.19%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:14.2%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.69%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.99%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.7%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2022</b></p></td></tr><tr><td style="vertical-align:bottom;width:34.09%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Amortization of acquired technology included under costs of revenues</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 574</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 553</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 1,680</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.99%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 1,659</p></td></tr><tr><td style="vertical-align:bottom;width:34.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Amortization of acquired intangible assets presented separately under costs and expenses</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.97%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 328</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.96%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.24%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 318</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.79%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 979</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.99%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.81%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 946</p></td></tr><tr><td style="vertical-align:bottom;width:34.09%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Total amortization of acquired intangible assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.97%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.22%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 902</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.96%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.24%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 871</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.79%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 2,659</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.99%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.81%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 2,605</p></td></tr></table> 574000 553000 1680000 1659000 328000 318000 979000 946000 902000 871000 2659000 2605000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:84.95%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.7%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.61%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:84.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Year Ending December 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.34%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Amount</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2023 (remaining three months)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.7%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 890</p></td></tr><tr><td style="vertical-align:bottom;width:84.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2024</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 3,233</p></td></tr><tr><td style="vertical-align:bottom;width:84.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2025</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.7%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 3,069</p></td></tr><tr><td style="vertical-align:bottom;width:84.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2026</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 2,899</p></td></tr><tr><td style="vertical-align:bottom;width:84.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2027</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.7%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 2,747</p></td></tr><tr><td style="vertical-align:bottom;width:84.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2028 and thereafter</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.61%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 3,648</p></td></tr><tr><td style="vertical-align:bottom;width:84.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Total future amortization expense</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.7%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.61%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 16,486</p></td></tr></table> 890000 3233000 3069000 2899000 2747000 3648000 16486000 0 0 0 0 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;">4. LEASES</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;">The Company leases administrative and sales offices and certain equipment under non-cancellable operating leases, which contain various renewal options and, in some cases, require payment of common area costs, taxes and utilities. These operating leases expire at various dates through 2028. The Company had no leases that were classified as a financing lease as of September 30, 2023, and December 31, 2022.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:12pt 0pt 12pt 0pt;">In the first quarter of 2022, the Company early terminated an office lease contract. The termination of this lease reduced the Company’s operating lease right-of-use assets and lease liabilities by approximately $0.5 million and $0.6 million, respectively. The gain from the lease termination of approximately $0.1 million was recorded under selling, general, and administrative expense in the accompanying condensed consolidated statement of comprehensive income (loss) for the nine months ended September 30, 2022. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:12pt 0pt 12pt 0pt;">Lease expense was comprised of the following (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:34.09%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.97%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.22%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.1%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.96%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.24%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.79%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.99%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.81%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:34.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:31.5%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Three Months Ended September 30, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:30.39%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Nine Months Ended September 30, </b></p></td></tr><tr><td style="vertical-align:bottom;width:34.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:14.19%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:14.2%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.69%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.99%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.7%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2022</b></p></td></tr><tr><td style="vertical-align:bottom;width:34.09%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Operating lease expense (1)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 382</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 375</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 1,153</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.99%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 1,073</p></td></tr><tr><td style="vertical-align:bottom;width:34.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Short-term lease and variable lease expense (2)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.97%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 239</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.96%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.24%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 244</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.79%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 673</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.99%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.81%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 801</p></td></tr><tr><td style="vertical-align:bottom;width:34.09%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Total lease expense</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.97%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.22%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 621</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.96%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.24%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 619</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.79%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 1,826</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.99%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.81%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 1,874</p></td></tr></table><div style="font-family:'Times New Roman','Times','serif';font-size:10.0pt;margin-bottom:0pt;min-height:1.19em;position:relative;width:100%;"><div style="background-color:#000000;height:1pt;position:relative;top:0.6em;width:25.0%;border:none;margin:0 auto 0 0;"></div></div><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:12pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">(1)</td><td style="padding:0pt;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">Net of gain recognized upon lease termination of </span><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">$0.1</span><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;"> million in the nine months ended September 30, 2022.</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">(2)</td><td style="padding:0pt;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">Leases with an initial term of 12 months or less are not recorded on the accompanying condensed consolidated balance sheets, and the Company recognizes lease expense for these leases on a straight-line basis over the lease term. Variable lease expense for the periods presented primarily included common area maintenance charges.</span></td></tr></table><div style="margin-top:12pt;"></div><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:12pt 0pt 12pt 0pt;">Supplemental condensed consolidated balance sheets information related to operating leases was as follows:</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:68.71%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.77%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.96%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:68.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">September 30, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">December 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"> </p></td></tr><tr><td style="vertical-align:bottom;width:68.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.74%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.19%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"> </p></td></tr><tr><td style="vertical-align:bottom;width:68.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Weighted average remaining lease term under operating leases (in years)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.77%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 4.7</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 5.3</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:68.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Weighted average discount rate for operating lease liabilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.77%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 4.89</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 4.87</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:12pt 0pt 12pt 0pt;">Maturities of operating lease liabilities as of September 30, 2023, were as follows (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:84.95%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.7%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.61%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:84.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Year Ending December 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.34%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Amount (1)</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2023 (remaining three months)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.7%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 422</p></td></tr><tr><td style="vertical-align:bottom;width:84.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2024</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 1,619</p></td></tr><tr><td style="vertical-align:bottom;width:84.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2025</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.7%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 1,539</p></td></tr><tr><td style="vertical-align:bottom;width:84.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2026</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 1,354</p></td></tr><tr><td style="vertical-align:bottom;width:84.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2027</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.7%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 1,294</p></td></tr><tr><td style="vertical-align:bottom;width:84.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2028 and thereafter</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.61%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 992</p></td></tr><tr><td style="vertical-align:bottom;width:84.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Total future minimum lease payments</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.7%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 7,220</p></td></tr><tr><td style="vertical-align:bottom;width:84.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Less: Interest (2)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.61%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (794)</p></td></tr><tr><td style="vertical-align:bottom;width:84.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Present value of future minimum lease payments under operating lease liabilities (3)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.7%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.61%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 6,426</p></td></tr></table><div style="font-family:'Times New Roman','Times','serif';font-size:10.0pt;margin-bottom:0pt;min-height:1.19em;position:relative;width:100%;"><div style="background-color:#000000;height:1pt;position:relative;top:0.6em;width:25.0%;border:none;margin:0 auto 0 0;"></div></div><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">(1)</td><td style="padding:0pt;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">As of September 30, 2023, the total operating lease liability includes approximately </span><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">$0.9</span><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;"> million related to an option to extend a lease term that is reasonably certain to be exercised.</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">(2)</td><td style="padding:0pt;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">Calculated using incremental borrowing interest rate for each lease.</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">(3)</td><td style="padding:0pt;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">Includes the current portion of operating lease liabilities of </span><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">$1.5</span><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;"> million as of September 30, 2023.</span></td></tr></table><div style="margin-top:12pt;"></div> 0 0 500000 600000 100000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:34.09%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.97%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.22%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.1%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.96%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.24%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.79%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.99%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.81%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:34.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:31.5%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Three Months Ended September 30, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:30.39%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Nine Months Ended September 30, </b></p></td></tr><tr><td style="vertical-align:bottom;width:34.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:14.19%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:14.2%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.69%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.99%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.7%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2022</b></p></td></tr><tr><td style="vertical-align:bottom;width:34.09%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Operating lease expense (1)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 382</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 375</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 1,153</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.99%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 1,073</p></td></tr><tr><td style="vertical-align:bottom;width:34.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Short-term lease and variable lease expense (2)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.97%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.22%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 239</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.96%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.24%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 244</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.79%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 673</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.99%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.81%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 801</p></td></tr><tr><td style="vertical-align:bottom;width:34.09%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Total lease expense</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.97%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.22%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 621</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.96%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.24%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 619</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.79%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 1,826</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.99%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.81%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 1,874</p></td></tr></table><div style="font-family:'Times New Roman','Times','serif';font-size:10.0pt;margin-bottom:0pt;min-height:1.19em;position:relative;width:100%;"><div style="background-color:#000000;height:1pt;position:relative;top:0.6em;width:25.0%;border:none;margin:0 auto 0 0;"></div></div><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:12pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">(1)</td><td style="padding:0pt;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">Net of gain recognized upon lease termination of </span><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">$0.1</span><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;"> million in the nine months ended September 30, 2022.</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">(2)</td><td style="padding:0pt;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">Leases with an initial term of 12 months or less are not recorded on the accompanying condensed consolidated balance sheets, and the Company recognizes lease expense for these leases on a straight-line basis over the lease term. Variable lease expense for the periods presented primarily included common area maintenance charges.</span></td></tr></table><div style="margin-top:12pt;"></div> 382000 375000 1153000 1073000 239000 244000 673000 801000 621000 619000 1826000 1874000 100000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:68.71%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.77%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.96%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:68.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">September 30, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">December 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"> </p></td></tr><tr><td style="vertical-align:bottom;width:68.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.74%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.19%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"> </p></td></tr><tr><td style="vertical-align:bottom;width:68.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Weighted average remaining lease term under operating leases (in years)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.77%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 4.7</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 5.3</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:68.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Weighted average discount rate for operating lease liabilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.77%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 4.89</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 4.87</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td></tr></table> P4Y8M12D P5Y3M18D 0.0489 0.0487 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:84.95%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.7%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.61%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:84.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Year Ending December 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.34%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Amount (1)</b></p></td></tr><tr><td style="vertical-align:bottom;width:84.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2023 (remaining three months)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.7%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 422</p></td></tr><tr><td style="vertical-align:bottom;width:84.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2024</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 1,619</p></td></tr><tr><td style="vertical-align:bottom;width:84.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2025</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.7%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 1,539</p></td></tr><tr><td style="vertical-align:bottom;width:84.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2026</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.61%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 1,354</p></td></tr><tr><td style="vertical-align:bottom;width:84.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2027</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.7%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 1,294</p></td></tr><tr><td style="vertical-align:bottom;width:84.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2028 and thereafter</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.61%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 992</p></td></tr><tr><td style="vertical-align:bottom;width:84.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Total future minimum lease payments</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.7%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.61%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 7,220</p></td></tr><tr><td style="vertical-align:bottom;width:84.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Less: Interest (2)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.61%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (794)</p></td></tr><tr><td style="vertical-align:bottom;width:84.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Present value of future minimum lease payments under operating lease liabilities (3)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.7%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.72%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.61%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 6,426</p></td></tr></table><div style="font-family:'Times New Roman','Times','serif';font-size:10.0pt;margin-bottom:0pt;min-height:1.19em;position:relative;width:100%;"><div style="background-color:#000000;height:1pt;position:relative;top:0.6em;width:25.0%;border:none;margin:0 auto 0 0;"></div></div><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">(1)</td><td style="padding:0pt;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">As of September 30, 2023, the total operating lease liability includes approximately </span><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">$0.9</span><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;"> million related to an option to extend a lease term that is reasonably certain to be exercised.</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">(2)</td><td style="padding:0pt;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">Calculated using incremental borrowing interest rate for each lease.</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">(3)</td><td style="padding:0pt;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">Includes the current portion of operating lease liabilities of </span><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">$1.5</span><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;"> million as of September 30, 2023.</span></td></tr></table><div style="margin-top:12pt;"></div> 422000 1619000 1539000 1354000 1294000 992000 7220000 794000 6426000 900000 1500000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;">5.<span style="font-weight:normal;"> </span>STOCKHOLDERS’ EQUITY</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Stock Repurchase Program</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">On June 4, 2020, the Company’s Board of Directors adopted a stock repurchase program (the “2020 Program”) to repurchase up to $25.0 million of the Company’s common stock both on the open market and in privately negotiated transactions, including through Rule 10b5-1 plans, over the next two years. During the nine months ended September 30, 2022, 218,858 shares were repurchased by the Company under the 2020 Program at an average price of $26.40 per share for an aggregate total price of $5.8 million. In total, 470,070 shares were repurchased under the 2020 Program at an average price of $21.91 per share, for an aggregate total price of $10.3 million.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">On April 11, 2022, the Board of Directors terminated the 2020 Program, and adopted a new program (the “2022 Program”) to repurchase up to $35.0 million of the Company’s common stock both on the open market and in privately negotiated transactions, from time to time, over the next two years. During the nine months ended September 30, 2022, 714,600 shares were repurchased by the Company under the 2022 Program at an average price of $23.36 per share for an aggregate total price of $16.7 million. During the nine months ended September 30, 2023, 21,340 shares were repurchased by the Company under the 2022 Program at an average price of $34.81 per share for an aggregate total price of $0.7 million. In total, the Company has repurchased 735,940 shares under the 2022 Program at an average price of $23.69 per share for an aggregate total price of $17.4 million.</p> 25000000.0 P2Y 218858 26.40 5800000 470070 21.91 10300000 35000000.0 P2Y 714600 23.36 16700000 21340 34.81 700000 735940 23.69 17400000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;">6. EMPLOYEE BENEFIT PLANS</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">On September 30, 2023, the Company had the following stock-based compensation plans:</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Employee Stock Purchase Plan</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">In July 2001, the Company’s stockholders initially approved the 2001 Employee Stock Purchase Plan, which was subsequently amended and restated in 2010 (as amended, the “2010 Purchase Plan”) to extend the term of the plan through May 17, 2020. Under the 2010 Purchase Plan, eligible employees could contribute up to 10% of their compensation, as defined in the 2010 Purchase Plan, towards the purchase of shares of PDF common stock at a price of 85% of the lower of the fair market value at the beginning of the offering period or the end of the purchase period. The 2010 Purchase Plan provided for twenty-four-month offering periods with four <span style="-sec-ix-hidden:Hidden_q4KbW6P7Nk6iG_78XZcc1Q;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">six</span></span>-month purchase periods in each offering period. The 2010 Purchase Plan expired on May 17, 2020. Existing offering periods under the 2010 Plan continued through the applicable expiration date and the final offering period expired on January 31, 2022. On June 15, 2021, the Company’s stockholders approved the 2021 Employee Stock Purchase Plan, which has a ten-year term (the “2021 Purchase Plan” and, together with the 2010 Purchase Plan, the “Employee Purchase Plans”). The terms of the 2021 Purchase Plan are substantially <span style="-sec-ix-hidden:Hidden_0wcCwVSw4k6W8h6NlucYaQ;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">similar</span></span> to <span style="-sec-ix-hidden:Hidden_zOkdljoqck2Y5iU-HeQkBQ;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">those</span></span> of <span style="-sec-ix-hidden:Hidden_unKkQdUtRk65vh2gvr899Q;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">the</span></span> 2010 Purchase Plan. A twenty-four-month offering period under the 2021 Purchase Plan commenced on August 1, 2021.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:12pt 0pt 12pt 0pt;">The Company estimated the fair value of purchase rights granted under the 2021 Purchase Plan during the period using the Black-Scholes-Merton option-pricing model with the following weighted average assumptions, resulting in the following weighted average fair values:</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:61.22%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;width:1.7%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.45%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:13.67%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.45%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.45%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:13.69%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:61.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="6" style="vertical-align:bottom;width:34.39%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Nine Months Ended September 30, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:61.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> <span style="visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:15.12%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.45%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:15.14%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">    </p></td></tr><tr><td style="vertical-align:bottom;width:61.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Expected life (in years)</p></td><td style="vertical-align:bottom;width:1.7%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 1.25</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 1.25</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td></tr><tr><td style="vertical-align:bottom;width:61.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Volatility</p></td><td style="vertical-align:bottom;width:1.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.45%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 43.66</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.45%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.45%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 48.73</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%  </p></td></tr><tr><td style="vertical-align:bottom;width:61.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Risk-free interest rate</p></td><td style="vertical-align:bottom;width:1.7%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 5.15</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 2.75</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%  </p></td></tr><tr><td style="vertical-align:bottom;width:61.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Expected dividend</p></td><td style="vertical-align:bottom;width:1.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.45%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.45%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.45%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td></tr><tr><td style="vertical-align:bottom;width:61.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Weighted average fair value of purchase rights granted during the period</p></td><td style="vertical-align:bottom;width:1.7%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 15.71</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 10.00</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:12pt 0pt 12pt 0pt;">During the three months ended September 30, 2023, a total of 125,392 shares were issued under the 2021 Purchase Plan, at a weighted average purchase price of $17.30 per share. During the three months ended September 30, 2022, a total of 92,043 shares were issued under the 2021 Purchase Plan, at a weighted-average purchase price of $16.40 per share. During the nine months ended September 30, 2023, a total of 223,608 shares were issued under the 2021 Purchase Plan, at a weighted average purchase price of $17.14 per share. During the nine months ended September 30, 2022, a total of 182,083 shares were issued under the 2021 Purchase Plan, at a weighted average purchase price of $16.15 per share. During the nine months ended September 30, 2022, a total of 5,203 shares were issued under the 2010 Purchase Plan, at a weighted average purchase price of $13.40 per share. As of September 30, 2023, unrecognized compensation cost related to the 2021 Purchase Plan was $3.9 million. This estimated unrecognized cost is expected to be recognized over a weighted average period of 1.7 years. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:12pt 0pt 12pt 0pt;">As of September 30, 2023, 594,309 shares were available for future issuance under the 2021 Purchase Plan.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Stock Incentive Plans</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">On November 16, 2011, the Company’s stockholders initially approved the 2011 Stock Incentive Plan, which has been amended and restated and approved by the Company’s stockholders a number of times since then (as approved by the stockholders through the date of this report, the “2011 Plan”) and currently expires in 2033. Under the 2011 Plan, the Company may award stock options, stock appreciation rights (“SARs”), stock grants or stock units covering shares of the Company’s common stock to employees, directors, non-employee directors and contractors. The aggregate number of shares reserved for awards under the 2011 Plan is 13.8 million shares, plus up to 3.5 million shares previously issued under the 2001 Stock Plan adopted by the Company in 2001, which expired in 2011 (the “2001 Plan”) that are either (i) forfeited or (ii) repurchased by the Company or are shares subject to awards previously issued under the 2001 Plan that expire or that terminate without having been exercised or settled in full on or after November 16, 2011. In case of awards other than options or SARs, the aggregate number of shares reserved under the 2011 Plan will be decreased at a rate of 1.33 shares issued pursuant to such awards. The exercise price for stock options must generally be at prices no less than the fair market value at the date of grant. Stock options generally expire ten years from the date of grant and become vested and exercisable over a four-year period.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">As of September 30, 2023, 14.3 million shares of common stock were reserved to cover stock-based awards under the 2011 Plan, of which 3.7 million shares were available for future grant. The number of shares reserved and available under the 2011 Plan includes 0.5 million shares that were subject to awards previously made under the 2001 Plan and were forfeited, expired or repurchased by the Company after the adoption of the 2011 Plan through September 30, 2023. As of September 30, 2023, there were no outstanding awards that had been granted outside of the 2011 or 2001 Plans (collectively, the “Stock Plans”).</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company estimated the fair value of share-based awards granted under the 2011 Stock Plan during the period using the Black-Scholes-Merton option-pricing model. There were no stock options granted during the three and nine months ended September 30, 2023 and 2022. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:12pt 0pt 12pt 0pt;">Stock-Based Compensation</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Stock-based compensation is estimated at the grant date based on the award’s fair value and is recognized on a straight-line basis over the vesting periods, generally four years<i style="font-style:italic;">.</i> Stock-based compensation expense before taxes related to the Company’s stock plans and employee stock purchase plans was allocated as follows (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:34.09%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.96%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.24%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.11%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.95%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.23%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.81%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.88%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.8%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:34.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:31.5%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Three Months Ended September 30, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:30.39%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Nine Months Ended September 30, </b></p></td></tr><tr><td style="vertical-align:bottom;width:34.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:14.2%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:14.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.7%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.68%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2022</b></p></td></tr><tr><td style="vertical-align:bottom;width:34.09%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Costs of revenues</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 1,120</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 854</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 3,022</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.88%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 2,237</p></td></tr><tr><td style="vertical-align:bottom;width:34.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Research and development</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 2,196</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.23%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 2,180</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 5,609</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.88%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 7,158</p></td></tr><tr><td style="vertical-align:bottom;width:34.09%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Selling, general, and administrative</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.96%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.24%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 2,683</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.95%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.23%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 2,102</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.81%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 6,930</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.88%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.8%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 5,166</p></td></tr><tr><td style="vertical-align:bottom;width:34.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Stock-based compensation expense</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.96%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.24%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 5,999</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.95%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.23%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 5,136</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.81%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 15,561</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.88%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.8%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 14,561</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:12pt 0pt 12pt 0pt;">Stock-based compensation capitalized in the capitalized software development costs included in property and equipment, net, was immaterial for the three and nine months ended September 30, 2023.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:12pt 0pt 12pt 0pt;">Additional information with respect to options under the Stock Plans during the nine months ended September 30, 2023, is as follows:</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:36.46%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:16.75%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.45%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.43%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:14.66%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:36.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:30.82%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Outstanding Options</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:36.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.45%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Weighted</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:36.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Weighted</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Average</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:36.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Average</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Remaining</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:16.26%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Aggregate</b></p></td></tr><tr><td style="vertical-align:bottom;width:36.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Number of</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Exercise</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Contractual</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:16.26%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Intrinsic</b></p></td></tr><tr><td style="vertical-align:bottom;width:36.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Options</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Price</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Term</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:16.26%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Value</b></p></td></tr><tr><td style="vertical-align:bottom;width:36.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">(in thousands)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">per Share</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.43%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">(Years)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:16.26%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">(in thousands)</b></p></td></tr><tr><td style="vertical-align:bottom;width:36.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Outstanding, December 31, 2022</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 68</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 16.11</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:36.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">Granted</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.45%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:36.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">Exercised</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (29)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 16.39</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:36.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">Canceled</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.45%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:36.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">Expired</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.75%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"><span style="-sec-ix-hidden:Hidden_VytMu4-DfEWtIHeujW9aNA;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;"> —</span></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:36.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Outstanding, September 30, 2023</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.75%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 39</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.45%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 15.91</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.43%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 4.40</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.66%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 654</p></td></tr><tr><td style="vertical-align:bottom;width:36.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Vested and expected to vest, September 30, 2023</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.75%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 39</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.45%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 15.91</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.43%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 4.40</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.66%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 653</p></td></tr><tr><td style="vertical-align:bottom;width:36.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Exercisable, September 30, 2023</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.75%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 36</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.45%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 15.80</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.43%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 4.21</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.66%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 604</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:12pt 0pt 12pt 0pt;">The aggregate intrinsic value in the table above represents the total intrinsic value based on the Company’s closing stock price of $32.40 per share as of September 30, 2023. The total intrinsic value of options exercised was $0.6 million during the nine months ended September 30, 2023.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Total remaining unrecognized compensation cost related to unvested stock options as of September 30, 2023, which is expected to be fully recognized in 2023, and total fair value of shares vested during the nine months ended September 30, 2023, were immaterial.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:12pt 0pt 12pt 0pt;">Nonvested restricted stock unit activity during the nine months ended September 30, 2023, was as follows:</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:70.09%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.05%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:70.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Weighted</b></p></td></tr><tr><td style="vertical-align:bottom;width:70.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Average Grant</b></p></td></tr><tr><td style="vertical-align:bottom;width:70.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Shares </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Date Fair Value</b></p></td></tr><tr><td style="vertical-align:bottom;width:70.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.2%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">(in thousands)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.69%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Per Share</b></p></td></tr><tr><td style="vertical-align:bottom;width:70.09%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Nonvested, December 31, 2022</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 2,124</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 21.29</p></td></tr><tr><td style="vertical-align:bottom;width:70.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">Granted</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 753</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 43.92</p></td></tr><tr><td style="vertical-align:bottom;width:70.09%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">Vested</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (829)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 20.46</p></td></tr><tr><td style="vertical-align:bottom;width:70.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">Forfeited</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.2%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (18)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 25.87</p></td></tr><tr><td style="vertical-align:bottom;width:70.09%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Nonvested, September 30, 2023</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.2%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 2,030</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 29.98</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:12pt 0pt 12pt 0pt;">As of September 30, 2023, there was $48.6 million of total unrecognized compensation cost related to restricted stock units. That cost is expected to be recognized over a weighted average period of 2.7 years. Restricted stock units do not have rights to dividends prior to vesting.</p> 0.10 0.85 P24M 4 P6M P10Y P24M <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:12pt 0pt 12pt 0pt;">The Company estimated the fair value of purchase rights granted under the 2021 Purchase Plan during the period using the Black-Scholes-Merton option-pricing model with the following weighted average assumptions, resulting in the following weighted average fair values:</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:61.22%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;width:1.7%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.45%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:13.67%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.45%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.45%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:13.69%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:61.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="6" style="vertical-align:bottom;width:34.39%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Nine Months Ended September 30, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:61.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> <span style="visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:15.12%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.45%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:15.14%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">    </p></td></tr><tr><td style="vertical-align:bottom;width:61.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Expected life (in years)</p></td><td style="vertical-align:bottom;width:1.7%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 1.25</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 1.25</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td></tr><tr><td style="vertical-align:bottom;width:61.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Volatility</p></td><td style="vertical-align:bottom;width:1.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.45%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 43.66</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.45%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.45%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 48.73</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%  </p></td></tr><tr><td style="vertical-align:bottom;width:61.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Risk-free interest rate</p></td><td style="vertical-align:bottom;width:1.7%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 5.15</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 2.75</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%  </p></td></tr><tr><td style="vertical-align:bottom;width:61.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Expected dividend</p></td><td style="vertical-align:bottom;width:1.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.45%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.45%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.45%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td></tr><tr><td style="vertical-align:bottom;width:61.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Weighted average fair value of purchase rights granted during the period</p></td><td style="vertical-align:bottom;width:1.7%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 15.71</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 10.00</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr></table> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:61.22%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;width:1.7%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.45%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:13.67%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.45%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.45%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:13.69%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:61.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="6" style="vertical-align:bottom;width:34.39%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Nine Months Ended September 30, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:61.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> <span style="visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:15.12%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.45%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:15.14%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">    </p></td></tr><tr><td style="vertical-align:bottom;width:61.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Expected life (in years)</p></td><td style="vertical-align:bottom;width:1.7%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 1.25</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 1.25</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td></tr><tr><td style="vertical-align:bottom;width:61.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Volatility</p></td><td style="vertical-align:bottom;width:1.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.45%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 43.66</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.45%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.45%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 48.73</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%  </p></td></tr><tr><td style="vertical-align:bottom;width:61.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Risk-free interest rate</p></td><td style="vertical-align:bottom;width:1.7%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 5.15</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 2.75</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%  </p></td></tr><tr><td style="vertical-align:bottom;width:61.22%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Expected dividend</p></td><td style="vertical-align:bottom;width:1.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.45%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.45%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.45%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td></tr><tr><td style="vertical-align:bottom;width:61.22%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Weighted average fair value of purchase rights granted during the period</p></td><td style="vertical-align:bottom;width:1.7%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 15.71</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 10.00</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr></table> P1Y3M P1Y3M 0.4366 0.4873 0.0515 0.0275 0 15.71 10.00 125392 17.30 92043 16.40 223608 17.14 182083 16.15 5203 13.40 3900000 P1Y8M12D 594309 13800000 3500000 1.33 P10Y P4Y 14300000 3700000 500000 0 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company estimated the fair value of share-based awards granted under the 2011 Stock Plan during the period using the Black-Scholes-Merton option-pricing model. There were no stock options granted during the three and nine months ended September 30, 2023 and 2022. </p> 0 0 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Stock-based compensation is estimated at the grant date based on the award’s fair value and is recognized on a straight-line basis over the vesting periods, generally four years<i style="font-style:italic;">.</i> Stock-based compensation expense before taxes related to the Company’s stock plans and employee stock purchase plans was allocated as follows (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:34.09%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.96%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.24%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.11%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.95%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.23%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.81%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.88%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.8%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:34.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:31.5%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Three Months Ended September 30, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:30.39%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Nine Months Ended September 30, </b></p></td></tr><tr><td style="vertical-align:bottom;width:34.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:14.2%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:14.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.7%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.68%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2022</b></p></td></tr><tr><td style="vertical-align:bottom;width:34.09%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Costs of revenues</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 1,120</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 854</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 3,022</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.88%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 2,237</p></td></tr><tr><td style="vertical-align:bottom;width:34.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Research and development</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 2,196</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.23%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 2,180</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 5,609</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.88%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 7,158</p></td></tr><tr><td style="vertical-align:bottom;width:34.09%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Selling, general, and administrative</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.96%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.24%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 2,683</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.95%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.23%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 2,102</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.81%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 6,930</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.88%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.8%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 5,166</p></td></tr><tr><td style="vertical-align:bottom;width:34.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Stock-based compensation expense</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.96%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.24%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 5,999</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.95%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.23%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 5,136</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.81%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 15,561</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.88%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.8%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 14,561</p></td></tr></table> P4Y <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:34.09%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.96%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.24%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.11%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.95%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.23%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.81%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.88%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.8%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:34.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:31.5%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Three Months Ended September 30, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:30.39%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Nine Months Ended September 30, </b></p></td></tr><tr><td style="vertical-align:bottom;width:34.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:14.2%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:14.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.7%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.68%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2022</b></p></td></tr><tr><td style="vertical-align:bottom;width:34.09%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Costs of revenues</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 1,120</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 854</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 3,022</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.88%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.8%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 2,237</p></td></tr><tr><td style="vertical-align:bottom;width:34.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Research and development</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 2,196</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.23%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 2,180</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 5,609</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.88%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 7,158</p></td></tr><tr><td style="vertical-align:bottom;width:34.09%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Selling, general, and administrative</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.96%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.24%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 2,683</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.95%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.23%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 2,102</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.81%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 6,930</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.88%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.8%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 5,166</p></td></tr><tr><td style="vertical-align:bottom;width:34.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Stock-based compensation expense</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.96%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.24%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 5,999</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.95%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.23%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 5,136</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.81%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 15,561</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.88%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.8%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 14,561</p></td></tr></table> 1120000 854000 3022000 2237000 2196000 2180000 5609000 7158000 2683000 2102000 6930000 5166000 5999000 5136000 15561000 14561000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:36.46%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:16.75%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.45%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.43%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:14.66%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:36.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:30.82%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Outstanding Options</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:36.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.45%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Weighted</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:36.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Weighted</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Average</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:36.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Average</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Remaining</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:16.26%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Aggregate</b></p></td></tr><tr><td style="vertical-align:bottom;width:36.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Number of</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Exercise</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Contractual</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:16.26%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Intrinsic</b></p></td></tr><tr><td style="vertical-align:bottom;width:36.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Options</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Price</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Term</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:16.26%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Value</b></p></td></tr><tr><td style="vertical-align:bottom;width:36.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">(in thousands)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.06%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">per Share</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.43%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">(Years)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:16.26%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">(in thousands)</b></p></td></tr><tr><td style="vertical-align:bottom;width:36.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Outstanding, December 31, 2022</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 68</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 16.11</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:36.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">Granted</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.45%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:36.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">Exercised</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (29)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 16.39</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:36.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">Canceled</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.45%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:36.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">Expired</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.75%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"><span style="-sec-ix-hidden:Hidden_VytMu4-DfEWtIHeujW9aNA;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;"> —</span></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.45%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:36.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Outstanding, September 30, 2023</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.75%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 39</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.45%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 15.91</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.43%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 4.40</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.66%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 654</p></td></tr><tr><td style="vertical-align:bottom;width:36.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Vested and expected to vest, September 30, 2023</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.75%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 39</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.45%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 15.91</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.43%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 4.40</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.66%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 653</p></td></tr><tr><td style="vertical-align:bottom;width:36.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Exercisable, September 30, 2023</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:16.75%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 36</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.45%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 15.80</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.43%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 4.21</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.6%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:14.66%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 604</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:12pt 0pt 12pt 0pt;">The aggregate intrinsic value in the table above represents the total intrinsic value based on the Company’s closing stock price of $32.40 per share as of September 30, 2023. The total intrinsic value of options exercised was $0.6 million during the nine months ended September 30, 2023.</p> 68000 16.11 29000 16.39 39000 15.91 P4Y4M24D 654000 39000 15.91 P4Y4M24D 653000 36000 15.80 P4Y2M15D 604000 32.40 600000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:70.09%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.05%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:70.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Weighted</b></p></td></tr><tr><td style="vertical-align:bottom;width:70.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Average Grant</b></p></td></tr><tr><td style="vertical-align:bottom;width:70.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Shares </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Date Fair Value</b></p></td></tr><tr><td style="vertical-align:bottom;width:70.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.2%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">(in thousands)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.69%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Per Share</b></p></td></tr><tr><td style="vertical-align:bottom;width:70.09%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Nonvested, December 31, 2022</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 2,124</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 21.29</p></td></tr><tr><td style="vertical-align:bottom;width:70.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">Granted</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 753</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 43.92</p></td></tr><tr><td style="vertical-align:bottom;width:70.09%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">Vested</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (829)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 20.46</p></td></tr><tr><td style="vertical-align:bottom;width:70.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">Forfeited</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.2%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (18)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.05%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 25.87</p></td></tr><tr><td style="vertical-align:bottom;width:70.09%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Nonvested, September 30, 2023</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.2%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 2,030</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.05%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 29.98</p></td></tr></table> 2124000 21.29 753000 43.92 829000 20.46 18000 25.87 2030000 29.98 48600000 P2Y8M12D <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:12pt 0pt 12pt 0pt;">7. INCOME TAXES</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Income tax expense decreased by $0.8 million for the nine months ended September 30, 2023, to a $2.5 million income tax expense as compared to a $3.3 million income tax expense for the nine months ended September 30, 2022. The Company’s effective tax rate was 53.1% and (547.7%) for the nine months ended September 30, 2023 and 2022, respectively. The Company’s effective tax rate increased in the nine months ended September 30, 2023, as compared to the same period in 2022, primarily due to changes in the foreign and state taxes and year-to-date recognition of worldwide pre-tax income (loss) in relation to their forecasted amounts for full years. Our provision for income taxes for the nine months ended September 30, 2023, was primarily attributable to foreign and state taxes.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company’s total amount of unrecognized tax benefits, excluding interest and penalties, as of September 30, 2023, was $15.9 million, of which $2.0 million, if recognized, would affect the Company’s effective tax rate. The Company’s total amount of unrecognized tax benefits, excluding interest and penalties, as of December 31, 2022, was $15.1 million, of which $2.0 million, if recognized, would affect the Company’s effective tax rate. As of September 30, 2023, the Company has recorded unrecognized tax benefits of $2.5 million, including interest and penalties of $0.6 million, as long-term taxes payable in the accompanying condensed consolidated balance sheet. The remaining $14.0 million has been recorded within the Company’s DTAs, which is subject to a full valuation allowance.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The valuation allowance was approximately $59.2 million as of September 30, 2023, and December 31, 2022, which was related to U.S. net federal and state DTAs. The worldwide net DTAs balance as of September 30, 2023, and December 31, 2022, were not significant.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company conducts business globally and, as a result, files numerous consolidated and separate income tax returns in the U.S. federal and various state and foreign jurisdictions. For U.S. federal and California income tax purposes, the statute of limitations currently remains open for the tax years ended 2019 to present and 2018 to present, respectively. In addition, due to net operating loss carryback claims, the tax years 2013 through 2015 may be subject to federal examination and all of the net operating loss and research and development credit carryforwards that may be utilized in future years may be subject to federal and state examination. The Company is not subject to income tax examinations in any other of its major foreign subsidiaries’ jurisdictions.</p> -800000 2500000 3300000 0.531 -5.477 15900000 2000000.0 15100000 2000000.0 2500000 600000 14000000.0 59200000 59200000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;">8. NET INCOME (LOSS) PER SHARE</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:12pt 0pt 12pt 0pt;">Basic net income (loss) per share is computed by dividing net income (loss) by weighted average number of common shares outstanding for the period (excluding outstanding stock options and shares subject to repurchase). Diluted net income (loss) per share is computed using the weighted average number of common shares outstanding for the period plus the potential effect of dilutive securities which are convertible into common shares (using the treasury stock method), except in cases in which the effect would be anti-dilutive. The following is a reconciliation of the numerators and denominators used in computing basic and diluted net income (loss) per share (in thousands except per share amount):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:34.09%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.83%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:13.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.9%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.88%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.64%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.94%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:34.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:31.5%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Three Months Ended September 30, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:30.39%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Nine Months Ended September 30, </b></p></td></tr><tr><td style="vertical-align:bottom;width:34.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:14.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.7%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.83%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2022</b></p></td></tr><tr><td style="vertical-align:bottom;width:34.09%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Numerator:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.83%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.88%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:34.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Net income (loss)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.83%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (4,972)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.88%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 1,385</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.64%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 2,218</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.94%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (3,912)</p></td></tr><tr><td style="vertical-align:bottom;width:34.09%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Denominator:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.83%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.88%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:34.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Basic weighted average shares outstanding</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 38,187</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.88%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 37,226</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 37,930</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 37,285</p></td></tr><tr><td style="vertical-align:bottom;width:34.09%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Effect of dilutive stock options, unvested restricted stock units, and shares of common stock expected to be issued under employee stock purchase plan(s)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.83%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.88%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 828</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.64%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 1,047</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.94%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> —</p></td></tr><tr><td style="vertical-align:bottom;width:34.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Diluted weighted average shares outstanding</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.83%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 38,187</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.88%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 38,054</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.64%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 38,977</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.94%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 37,285</p></td></tr><tr><td style="vertical-align:bottom;width:34.09%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.83%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.88%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:34.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Net income (loss) per share:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.88%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:34.09%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Basic</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.83%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (0.13)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.88%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 0.04</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.64%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 0.06</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.94%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (0.10)</p></td></tr><tr><td style="vertical-align:bottom;width:34.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Diluted</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.83%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (0.13)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.88%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 0.04</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.64%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 0.06</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.94%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (0.10)</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:12pt 0pt 12pt 0pt;">For the three months ended September 30, 2023 and for the nine months ended September 30, 2022, because the Company was in a loss position, diluted net loss per share is the same as basic net loss per share as the inclusion of the potential common shares would have been anti-dilutive.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:12pt 0pt 12pt 0pt;">The following table sets forth the weighted average potential shares of common stock that were not included in the diluted net income (loss) per share calculation above because to do so would be anti-dilutive for the periods indicated (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:34.09%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:13.97%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.56%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:13.96%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:13.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.43%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:13.47%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:34.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:31.5%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Three Months Ended September 30, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:30.39%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Nine Months Ended September 30, </b></p></td></tr><tr><td style="vertical-align:bottom;width:34.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.97%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.96%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.47%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2022</b></p></td></tr><tr><td style="vertical-align:bottom;width:34.09%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Outstanding options</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 23</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.47%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 63</p></td></tr><tr><td style="vertical-align:bottom;width:34.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Non-vested restricted stock units</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 1,391</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 62</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 223</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.47%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 784</p></td></tr><tr><td style="vertical-align:bottom;width:34.09%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Employee Stock Purchase Plan</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.97%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 38</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.96%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.47%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 75</p></td></tr><tr><td style="vertical-align:bottom;width:34.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Total</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.97%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 1,452</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.96%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 62</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 223</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.47%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 922</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p> Basic net income (loss) per share is computed by dividing net income (loss) by weighted average number of common shares outstanding for the period (excluding outstanding stock options and shares subject to repurchase). Diluted net income (loss) per share is computed using the weighted average number of common shares outstanding for the period plus the potential effect of dilutive securities which are convertible into common shares (using the treasury stock method), except in cases in which the effect would be anti-dilutive. <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:34.09%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.83%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:13.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.9%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.88%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.64%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.94%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:34.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:31.5%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Three Months Ended September 30, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:30.39%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Nine Months Ended September 30, </b></p></td></tr><tr><td style="vertical-align:bottom;width:34.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:14.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.7%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.83%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2022</b></p></td></tr><tr><td style="vertical-align:bottom;width:34.09%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Numerator:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.83%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.88%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:34.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Net income (loss)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.83%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (4,972)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.88%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 1,385</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.64%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 2,218</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.94%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (3,912)</p></td></tr><tr><td style="vertical-align:bottom;width:34.09%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Denominator:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.83%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.88%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:34.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Basic weighted average shares outstanding</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 38,187</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.88%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 37,226</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 37,930</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 37,285</p></td></tr><tr><td style="vertical-align:bottom;width:34.09%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Effect of dilutive stock options, unvested restricted stock units, and shares of common stock expected to be issued under employee stock purchase plan(s)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.83%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.06%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.88%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 828</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.64%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 1,047</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.94%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> —</p></td></tr><tr><td style="vertical-align:bottom;width:34.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Diluted weighted average shares outstanding</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.83%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 38,187</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.88%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 38,054</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.64%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 38,977</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.94%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 37,285</p></td></tr><tr><td style="vertical-align:bottom;width:34.09%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.83%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.88%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.64%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:34.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Net income (loss) per share:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.83%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.88%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.64%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:34.09%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Basic</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.83%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.06%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (0.13)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.88%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 0.04</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.64%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 0.06</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.94%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (0.10)</p></td></tr><tr><td style="vertical-align:bottom;width:34.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Diluted</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.83%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.06%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (0.13)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.82%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.88%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 0.04</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.64%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 0.06</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.89%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.94%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (0.10)</p></td></tr></table> -4972000 1385000 2218000 -3912000 38187000 37226000 37930000 37285000 828000 1047000 38187000 38054000 38977000 37285000 -0.13 0.04 0.06 -0.10 -0.13 0.04 0.06 -0.10 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:34.09%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:13.97%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.56%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:13.96%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:13.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.43%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:13.47%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:34.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:31.5%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Three Months Ended September 30, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:30.39%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Nine Months Ended September 30, </b></p></td></tr><tr><td style="vertical-align:bottom;width:34.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.97%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.96%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.48%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.47%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2022</b></p></td></tr><tr><td style="vertical-align:bottom;width:34.09%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Outstanding options</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 23</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.47%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 63</p></td></tr><tr><td style="vertical-align:bottom;width:34.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Non-vested restricted stock units</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 1,391</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 62</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 223</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.47%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 784</p></td></tr><tr><td style="vertical-align:bottom;width:34.09%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Employee Stock Purchase Plan</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.97%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 38</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.96%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.48%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.47%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 75</p></td></tr><tr><td style="vertical-align:bottom;width:34.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Total</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.97%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 1,452</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.96%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 62</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.48%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 223</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.47%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 922</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p> 23000 63000 1391000 62000 223000 784000 38000 75000 1452000 62000 223000 922000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:12pt 0pt 12pt 0pt;">9. CUSTOMER AND GEOGRAPHIC INFORMATION</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Operating segments are defined as components of an enterprise about which separate financial information is available that is evaluated regularly by the chief operating decision maker, or group, in deciding how to allocate resources and in assessing performance.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company’s chief operating decision maker, the chief executive officer, reviews discrete financial information presented on a consolidated basis for purposes of regularly making operating decisions, allocation of resources, and assessing financial performance. Accordingly, the Company considers itself to be in one operating and <span style="-sec-ix-hidden:Hidden_6VLNIeVOx0OPtVWA6jy3kw;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">reporting</span></span> segment, specifically the provision of services for differentiated data and analytics solutions to the semiconductor and electronics industries.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Revenues from an individual customer that are approximately 10% or more of the Company’s consolidated total revenues are as follows:</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:34.09%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:13.97%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.56%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:13.96%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.93%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.13%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:34.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:31.5%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Three Months Ended September 30, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:30.39%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Nine Months Ended September 30, </b></p></td></tr><tr><td style="vertical-align:bottom;width:34.09%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Customer</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.97%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.96%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.2%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.2%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td></tr><tr><td style="vertical-align:bottom;width:34.09%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">A</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 38</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 28</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 36</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.93%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 30</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:34.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">B</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;">*</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 16</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 10</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 11</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:12pt 0pt 12pt 0pt;">Gross accounts receivable balances (including amounts that are unbilled) from individual customers that are approximately 10% or more of the Company’s gross accounts receivable balance are as follows:</p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:67.73%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.74%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:0.28%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:67.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">September 30, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"><b style="font-weight:bold;">December 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td></tr><tr><td style="vertical-align:bottom;width:67.73%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Customer</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.74%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td></tr><tr><td style="vertical-align:bottom;width:67.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">A</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 44</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 29</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:67.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">B</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;">*</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 12</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:67.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">C</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;">*</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 12</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td></tr></table><div style="font-family:'Times New Roman','Times','serif';font-size:10.0pt;margin-bottom:0pt;min-height:1.19em;position:relative;width:100%;"><div style="background-color:#000000;height:1pt;position:relative;top:0.6em;width:25.0%;border:none;margin:0 auto 0 0;"></div></div><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-align:justify;text-indent:-18pt;margin:0pt 0pt 12pt 0pt;">* represents less than 10%</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:12pt 0pt 12pt 0pt;">Revenues from customers by geographic area based on the location of the customers’ work sites are as follows (amounts in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:52.71%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:6.79%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.29%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:0.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:6.79%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.29%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:52.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="11" style="vertical-align:bottom;white-space:nowrap;width:45.27%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Three Months Ended September 30, </b></p></td></tr><tr><td style="vertical-align:bottom;width:52.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:20.43%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:20.43%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td></tr><tr><td style="vertical-align:bottom;width:52.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Percentage</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Percentage</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td></tr><tr><td style="vertical-align:bottom;width:52.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Revenues</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.29%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">of Revenues</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Revenues</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.29%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">of Revenues</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td></tr><tr><td style="vertical-align:bottom;width:52.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">United States</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 24,477</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 58</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 18,292</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 46</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:52.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">China</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 7,549</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 18</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 9,555</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 24</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:52.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Rest of the world</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.79%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 10,324</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.29%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 24</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.79%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 12,013</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.29%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 30</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:52.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Total revenue</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.79%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 42,350</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.29%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 100</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.79%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 39,860</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.29%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 100</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;"><span style="margin-bottom:12pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:51.62%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.7%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.28%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:0.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.7%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.28%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:51.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="11" style="vertical-align:bottom;white-space:nowrap;width:46.37%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Nine Months Ended September 30, </b></p></td></tr><tr><td style="vertical-align:bottom;width:51.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:20.98%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:20.98%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td></tr><tr><td style="vertical-align:bottom;width:51.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Percentage</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Percentage</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td></tr><tr><td style="vertical-align:bottom;width:51.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.7%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Revenues</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.28%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">of Revenues</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.7%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Revenues</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.28%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">of Revenues</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td></tr><tr><td style="vertical-align:bottom;width:51.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">United States</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.7%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 70,090</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 56</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.7%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 52,869</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 49</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:51.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">China</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 21,927</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 18</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 18,214</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 17</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:51.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Rest of the world</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.7%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 32,693</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.28%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 26</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.7%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 36,943</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.28%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 34</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:51.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Total revenue</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.7%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 124,710</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.28%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 100</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.7%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 108,026</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.28%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 100</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:12pt 0pt 12pt 0pt;">Long-lived assets, net by geographic area are as follows (in thousands):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:71.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.53%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.98%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.46%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.72%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:71.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">September 30, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.98%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">December 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:71.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.74%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.98%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.19%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2022</b></p></td></tr><tr><td style="vertical-align:bottom;width:71.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">United States (1)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 45,419</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.98%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 44,730</p></td></tr><tr><td style="vertical-align:bottom;width:71.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Rest of the world</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.53%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.2%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 1,207</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.98%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.46%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.72%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 1,446</p></td></tr><tr><td style="vertical-align:bottom;width:71.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Total long-lived assets, net</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.53%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.2%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 46,626</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.98%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.46%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.72%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 46,176</p></td></tr></table><div style="font-family:'Times New Roman','Times','serif';font-size:10.0pt;margin-bottom:0pt;margin-top:0pt;min-height:1.19em;position:relative;width:100%;"><div style="background-color:#000000;height:1pt;position:relative;top:0.6em;width:25.0%;border:none;margin:0 auto 0 0;"></div></div><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">(1) Includes assets deployed at customer sites which could be outside the U.S.</p> 1 0.10 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:34.09%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:13.97%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.56%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:13.96%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.93%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:3.13%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:34.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:31.5%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Three Months Ended September 30, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:30.39%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Nine Months Ended September 30, </b></p></td></tr><tr><td style="vertical-align:bottom;width:34.09%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Customer</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.97%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.96%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.2%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.2%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td></tr><tr><td style="vertical-align:bottom;width:34.09%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">A</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.97%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 38</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 28</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 36</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.93%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 30</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:34.09%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">B</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;">*</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 16</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 10</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 11</p></td><td style="vertical-align:bottom;white-space:nowrap;width:3.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:12pt 0pt 12pt 0pt;">Gross accounts receivable balances (including amounts that are unbilled) from individual customers that are approximately 10% or more of the Company’s gross accounts receivable balance are as follows:</p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:67.73%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.74%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:0.28%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:67.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">September 30, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"><b style="font-weight:bold;">December 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td></tr><tr><td style="vertical-align:bottom;width:67.73%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Customer</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.74%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td></tr><tr><td style="vertical-align:bottom;width:67.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">A</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 44</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 29</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:67.73%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">B</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;">*</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 12</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:67.73%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">C</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.74%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;">*</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 12</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td></tr></table><div style="font-family:'Times New Roman','Times','serif';font-size:10.0pt;margin-bottom:0pt;min-height:1.19em;position:relative;width:100%;"><div style="background-color:#000000;height:1pt;position:relative;top:0.6em;width:25.0%;border:none;margin:0 auto 0 0;"></div></div><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:18pt;text-align:justify;text-indent:-18pt;margin:0pt 0pt 12pt 0pt;">* represents less than 10%</p> 0.38 0.28 0.36 0.30 0.16 0.10 0.11 0.10 0.44 0.29 0.12 0.12 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:52.71%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:6.79%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.29%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:0.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:6.79%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.29%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:52.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="11" style="vertical-align:bottom;white-space:nowrap;width:45.27%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Three Months Ended September 30, </b></p></td></tr><tr><td style="vertical-align:bottom;width:52.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:20.43%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:20.43%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td></tr><tr><td style="vertical-align:bottom;width:52.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Percentage</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Percentage</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td></tr><tr><td style="vertical-align:bottom;width:52.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Revenues</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.29%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">of Revenues</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.13%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Revenues</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.29%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">of Revenues</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td></tr><tr><td style="vertical-align:bottom;width:52.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">United States</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 24,477</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 58</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 18,292</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 46</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:52.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">China</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 7,549</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 18</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 9,555</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 24</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:52.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Rest of the world</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.79%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 10,324</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.29%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 24</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.79%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 12,013</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.29%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 30</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:52.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Total revenue</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.79%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 42,350</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.29%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 100</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:6.79%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 39,860</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.29%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 100</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;"><span style="margin-bottom:12pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:51.62%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.7%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.28%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:0.06%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.7%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.28%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:51.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="11" style="vertical-align:bottom;white-space:nowrap;width:46.37%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Nine Months Ended September 30, </b></p></td></tr><tr><td style="vertical-align:bottom;width:51.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:20.98%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="4" style="vertical-align:bottom;white-space:nowrap;width:20.98%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td></tr><tr><td style="vertical-align:bottom;width:51.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Percentage</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Percentage</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td></tr><tr><td style="vertical-align:bottom;width:51.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.7%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Revenues</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.28%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">of Revenues</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.7%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Revenues</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.28%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">of Revenues</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td></tr><tr><td style="vertical-align:bottom;width:51.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">United States</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.7%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 70,090</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 56</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.7%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 52,869</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.28%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 49</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:51.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">China</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 21,927</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 18</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 18,214</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.28%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 17</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:51.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Rest of the world</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.7%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 32,693</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.28%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 26</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.06%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.7%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 36,943</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.28%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 34</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:51.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Total revenue</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.7%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 124,710</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.28%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 100</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.06%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.7%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 108,026</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.28%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 100</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td></tr></table> 24477000 0.58 18292000 0.46 7549000 0.18 9555000 0.24 10324000 0.24 12013000 0.30 42350000 1 39860000 1 70090000 0.56 52869000 0.49 21927000 0.18 18214000 0.17 32693000 0.26 36943000 0.34 124710000 1 108026000 1 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:71.08%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.53%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.98%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.46%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.72%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:71.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">September 30, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.98%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">December 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:71.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.74%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.98%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.19%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2022</b></p></td></tr><tr><td style="vertical-align:bottom;width:71.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">United States (1)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 45,419</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.98%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 44,730</p></td></tr><tr><td style="vertical-align:bottom;width:71.08%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Rest of the world</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.53%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.2%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 1,207</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.98%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.46%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.72%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 1,446</p></td></tr><tr><td style="vertical-align:bottom;width:71.08%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Total long-lived assets, net</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.53%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.2%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 46,626</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.98%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.46%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.72%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 46,176</p></td></tr></table><div style="font-family:'Times New Roman','Times','serif';font-size:10.0pt;margin-bottom:0pt;margin-top:0pt;min-height:1.19em;position:relative;width:100%;"><div style="background-color:#000000;height:1pt;position:relative;top:0.6em;width:25.0%;border:none;margin:0 auto 0 0;"></div></div><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">(1) Includes assets deployed at customer sites which could be outside the U.S.</p> 45419000 44730000 1207000 1446000 46626000 46176000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;">10. FAIR VALUE MEASUREMENTS</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:12pt 0pt 12pt 0pt;">Fair value is the exit price, or the amount that would be received to sell an asset or paid to transfer a liability in an orderly transaction between market participants as of the measurement date. The multiple assumptions used to value financial instruments are referred to as inputs, and a hierarchy for inputs used in measuring fair value is established, that maximizes the use of observable inputs and minimizes the use of unobservable inputs by requiring that the most observable inputs be used when available. Observable inputs reflect assumptions market participants would use in pricing an asset or liability based on market data obtained from independent sources while unobservable inputs reflect a reporting entity’s pricing based upon its own market assumptions. These inputs are ranked according to a fair value hierarchy that prioritizes the inputs to valuation techniques used to measure fair value into three broad levels.</p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:top;width:8.34%;margin:0pt;padding:0.25pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:0pt;width:100%;"></div></div></td><td style="vertical-align:top;width:91.65%;margin:0pt;padding:0.25pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:0pt;width:100%;"></div></div></td></tr><tr><td style="vertical-align:top;width:8.34%;margin:0pt;padding:0.25pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;">Level 1 -</p></td><td style="vertical-align:top;width:91.65%;margin:0pt;padding:0.25pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;">Inputs are quoted prices in active markets for identical assets or liabilities.</p></td></tr><tr><td style="vertical-align:top;width:8.34%;margin:0pt;padding:0.25pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"> </p></td><td style="vertical-align:top;width:91.65%;margin:0pt;padding:0.25pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"> </p></td></tr><tr><td style="vertical-align:top;width:8.34%;margin:0pt;padding:0.25pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;">Level 2 -</p></td><td style="vertical-align:top;width:91.65%;margin:0pt;padding:0.25pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;">Inputs are quoted prices for similar assets or liabilities in an active market, quoted prices for identical or similar assets or liabilities in markets that are not active, inputs other than quoted prices that are observable and market-corroborated inputs which are derived principally from or corroborated by observable market data.</p></td></tr><tr><td style="vertical-align:top;width:8.34%;margin:0pt;padding:0.25pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"> </p></td><td style="vertical-align:top;width:91.65%;margin:0pt;padding:0.25pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"> </p></td></tr><tr><td style="vertical-align:top;width:8.34%;margin:0pt;padding:0.25pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;">Level 3 -</p></td><td style="vertical-align:top;width:91.65%;margin:0pt;padding:0.25pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;">Inputs are derived from valuation techniques in which one or more significant inputs or value drivers are unobservable.</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The following table represents the Company’s assets measured at fair value on a recurring basis as of September 30, 2023, and December 31, 2022, and the basis for those measurements (in thousands):</p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:45.56%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.78%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.95%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.85%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.37%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.42%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.88%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:45.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="11" style="vertical-align:bottom;white-space:nowrap;width:52.42%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Fair Value Measurements Using</b></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:45.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.78%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Quoted</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.88%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:45.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;text-decoration-line:underline;text-decoration-style:solid;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.78%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Prices in</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.88%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:45.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;text-decoration-line:underline;text-decoration-style:solid;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.78%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Active</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Significant</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.88%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:45.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;text-decoration-line:underline;text-decoration-style:solid;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.78%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Markets for</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Other</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.88%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:45.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;text-decoration-line:underline;text-decoration-style:solid;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.78%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Identical</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Observable</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Significant</b></p></td></tr><tr><td style="vertical-align:bottom;width:45.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-weight:bold;text-decoration-line:underline;text-decoration-style:solid;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.74%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">September 30, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Assets</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Inputs</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.58%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Unobservable</b></p></td></tr><tr><td style="vertical-align:bottom;width:45.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">Assets</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.74%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2023</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.29%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">(Level 1)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.79%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">(Level 2)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.58%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Inputs (Level 3)</b></p></td></tr><tr><td style="vertical-align:bottom;width:45.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Cash equivalents</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.78%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.88%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:45.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Money market mutual funds</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.78%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.95%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 92,113</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 92,113</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.37%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.88%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> —</p></td></tr><tr><td style="vertical-align:bottom;width:45.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Short-term investments (available-for-sale debt securities)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.78%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.95%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.37%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.88%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:45.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">U.S. Government securities (1)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.78%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.95%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 23,744</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.85%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 23,744</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.37%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.42%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.88%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> —</p></td></tr><tr><td style="vertical-align:bottom;width:45.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Total</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.78%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.95%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 115,857</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.44%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.85%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> 115,857</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.37%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.42%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.7%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.88%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0pt 0pt;"> —</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:47.9%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.49%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.43%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.16%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:47.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="11" style="vertical-align:bottom;white-space:nowrap;width:50.09%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Fair Value Measurements Using</b></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:47.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Quoted</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:47.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;text-decoration-line:underline;text-decoration-style:solid;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Prices in</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:47.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;text-decoration-line:underline;text-decoration-style:solid;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Active</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Significant</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:47.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;text-decoration-line:underline;text-decoration-style:solid;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Markets for</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Other</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Significant</b></p></td></tr><tr><td style="vertical-align:bottom;width:47.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;text-decoration-line:underline;text-decoration-style:solid;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Identical</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Observable</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Unobservable</b></p></td></tr><tr><td style="vertical-align:bottom;width:47.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;text-decoration-line:underline;text-decoration-style:solid;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.19%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">December 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Assets</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Inputs</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.8%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Inputs </b></p></td></tr><tr><td style="vertical-align:bottom;width:47.9%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Assets</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.19%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.29%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">(Level 1)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.79%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">(Level 2)</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.8%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">(Level 3)</b></p></td></tr><tr><td style="vertical-align:bottom;width:47.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Cash equivalents</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.49%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:47.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">Money market mutual funds</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 75,738</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 75,738</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> —</p></td></tr><tr><td style="vertical-align:bottom;width:47.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">U.S. Government securities (1)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.49%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 1,990</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 1,990</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> —</p></td></tr><tr><td style="vertical-align:bottom;width:47.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Short-term investments (available-for-sale debt securities)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:47.9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">U.S. Government securities (1)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.49%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 19,557</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.43%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 19,557</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.16%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> —</p></td></tr><tr><td style="vertical-align:bottom;width:47.9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Total</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.69%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.49%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 97,285</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.43%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.86%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 97,285</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.43%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.63%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.16%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> —</p></td></tr></table><div style="font-family:'Times New Roman','Times','serif';font-size:10.0pt;margin-bottom:0pt;min-height:1.19em;position:relative;width:100%;"><div style="background-color:#000000;height:1pt;position:relative;top:0.6em;width:25.0%;border:none;margin:0 auto 0 0;"></div></div><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;text-align:justify;width:100%;border:0pt;"><tr><td style="width:18pt;"></td><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">(1)</td><td style="padding:0pt;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">As of September 30, 2023, and December 31, 2022, the amortized cost of the Company’s investments in U.S Government securities approximated their fair value due to their short-term maturities, and there have been no events or changes in circumstances that would have had a significant effect on the fair value of these securities in the periods presented. For the three and nine months ended September 30, 2023, there were no material realized or unrealized gains or losses, either individually or in the aggregate.</span></td></tr></table><div style="margin-top:12pt;"></div> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:12pt 0pt 12pt 0pt;">Fair value is the exit price, or the amount that would be received to sell an asset or paid to transfer a liability in an orderly transaction between market participants as of the measurement date. The multiple assumptions used to value financial instruments are referred to as inputs, and a hierarchy for inputs used in measuring fair value is established, that maximizes the use of observable inputs and minimizes the use of unobservable inputs by requiring that the most observable inputs be used when available. Observable inputs reflect assumptions market participants would use in pricing an asset or liability based on market data obtained from independent sources while unobservable inputs reflect a reporting entity’s pricing based upon its own market assumptions. These inputs are ranked according to a fair value hierarchy that prioritizes the inputs to valuation techniques used to measure fair value into three broad levels.</p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:top;width:8.34%;margin:0pt;padding:0.25pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:0pt;width:100%;"></div></div></td><td style="vertical-align:top;width:91.65%;margin:0pt;padding:0.25pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:0pt;width:100%;"></div></div></td></tr><tr><td style="vertical-align:top;width:8.34%;margin:0pt;padding:0.25pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;">Level 1 -</p></td><td style="vertical-align:top;width:91.65%;margin:0pt;padding:0.25pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;">Inputs are quoted prices in active markets for identical assets or liabilities.</p></td></tr><tr><td style="vertical-align:top;width:8.34%;margin:0pt;padding:0.25pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"> </p></td><td style="vertical-align:top;width:91.65%;margin:0pt;padding:0.25pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"> </p></td></tr><tr><td style="vertical-align:top;width:8.34%;margin:0pt;padding:0.25pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;">Level 2 -</p></td><td style="vertical-align:top;width:91.65%;margin:0pt;padding:0.25pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;">Inputs are quoted prices for similar assets or liabilities in an active market, quoted prices for identical or similar assets or liabilities in markets that are not active, inputs other than quoted prices that are observable and market-corroborated inputs which are derived principally from or corroborated by observable market data.</p></td></tr><tr><td style="vertical-align:top;width:8.34%;margin:0pt;padding:0.25pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"> </p></td><td style="vertical-align:top;width:91.65%;margin:0pt;padding:0.25pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;"> </p></td></tr><tr><td style="vertical-align:top;width:8.34%;margin:0pt;padding:0.25pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;">Level 3 -</p></td><td style="vertical-align:top;width:91.65%;margin:0pt;padding:0.25pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt;">Inputs are derived from valuation techniques in which one or more significant inputs or value drivers are unobservable.</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p> 92113000 92113000 23744000 23744000 115857000 115857000 75738000 75738000 1990000 1990000 19557000 19557000 97285000 97285000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;">11. COMMITMENTS AND CONTINGENCIES</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;"><span style="font-style:italic;font-weight:bold;">Strategic Partnership with Advantest</span> — See Note 12, <i style="font-style:italic;">Strategic Partnership Agreement with Advantest and Related Party Transactions</i>, for the discussion about the Company’s commitments under the strategic partnership with Advantest.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;"><span style="font-style:italic;font-weight:bold;">Operating Leases</span> — Refer to Note 4, <i style="font-style:italic;">Leases</i>, for the discussion about the Company’s lease commitments.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;"><span style="font-style:italic;font-weight:bold;">Indemnifications</span> — The Company generally provides a warranty to its customers that its software will perform substantially in accordance with documented specifications typically for a period of 90 days following initial delivery of its products. The Company also indemnifies certain customers from third-party claims of intellectual property infringement relating to the use of its products. Historically, costs related to these guarantees have not been significant. The Company is unable to estimate the maximum potential impact of these guarantees on its future results of operations.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;"><span style="font-style:italic;font-weight:bold;">Purchase Obligations</span> — The Company has purchase obligations with certain suppliers for the purchase of goods and services entered into in the ordinary course of business. As of September 30, 2023, total outstanding purchase obligations were $24.6 million, the majority of which is due within the next 15 months.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;"><span style="font-style:italic;font-weight:bold;">Indemnification of Officers and Directors</span> — As permitted by the Delaware general corporation law, the Company has included a provision in its certificate of incorporation to eliminate the personal liability of its officers and directors for monetary damages for breach or alleged breach of their fiduciary duties as officers or directors, other than in cases of fraud or other willful misconduct.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">In addition, the Bylaws of the Company provide that the Company is required to indemnify its officers and directors even when indemnification would otherwise be discretionary, and the Company is required to advance expenses to its officers and directors as incurred in connection with proceedings against them for which they may be indemnified. The Company has entered into indemnification agreements with its officers and directors containing provisions that are in some respects broader than the specific indemnification provisions contained in the Delaware general corporation law. The indemnification agreements require the Company to indemnify its officers and directors against liabilities that may arise by reason of their status or service as officers and directors other than for liabilities arising from willful misconduct of a culpable nature, to advance their expenses incurred as a result of any proceeding against them as to which they could be indemnified, and to obtain directors’ and officers’ insurance if available on reasonable terms. The Company has obtained directors’ and officers’ liability insurance in amounts comparable to other companies of the Company’s size and in the Company’s industry. Since a maximum obligation of the Company is not explicitly stated in the Company’s Bylaws or in its indemnification agreements and will depend on the facts and circumstances that arise out of any future claims, the overall maximum amount of the obligations cannot be reasonably estimated.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;"><span style="font-style:italic;font-weight:bold;">Legal Proceedings</span> — From time to time, the Company is subject to various claims and legal proceedings that arise in the ordinary course of business. The Company accrues for losses related to litigation when a potential loss is probable, and the loss can be reasonably estimated in accordance with FASB requirements. As of September 30, 2023, the Company was not party to any material legal proceedings for which a loss was probable or an amount was accrued. From time to time, the Company may enter into contingent fee arrangements with external legal firms that may represent the Company in legal proceedings related to disputes. Contingent legal fees are accrued by the Company when they are probable and reasonably estimable.  </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt;">On May 6, 2020, the Company initiated an arbitration proceeding with the Hong Kong International Arbitration Center against SMIC New Technology Research &amp; Development (Shanghai) Corporation (“SMIC”) due to SMIC’s failure to pay fees due to the Company under a series of contracts. The Company seeks to recover the unpaid fees, a declaration requiring SMIC to pay fees under the contracts in the future (or a lump sum payment to end the contract), and costs associated with </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 12pt 0pt;">bringing the arbitration proceeding. SMIC denies liability and an arbitration hearing was held in February 2023. Final written submissions were submitted by the parties at the end of August. A decision is expected potentially within this calendar year.</p> P90D 24600000 P15M <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;">12. STRATEGIC PARTNERSHIP AGREEMENT WITH ADVANTEST AND RELATED PARTY TRANSACTIONS</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">In July 2020, the Company entered into a long-term strategic partnership with Advantest Corporation through its wholly-owned subsidiary, Advantest America, Inc. (collectively referred to herein as “Advantest”).</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:12pt 0pt 12pt 0pt;">Analytics revenue recognized from Advantest was $2.6 million and $2.8 million during the three months ended September 30, 2023 and 2022, respectively, and $6.2 million and $8.1 million during the nine months ended September 30, 2023 and 2022, respectively. Accounts receivable from Advantest was not material as of September 30, 2023 and amounted to $0.3 million as of December 31, 2022. Deferred revenue amounted to $12.1 million and $7.1 million as of September 30, 2023, and December 31, 2022, respectively.</p> 2600000 2800000 6200000 8100000 300000 12100000 7100000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;">13. BUSINESS COMBINATION</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">On July 5, 2023 (the “Acquisition Date”), the Company, through its wholly-owned subsidiary in Canada, PDF Solutions Canada, Ltd., acquired 100% of the equity interest in Lantern Machinery Analytics, Inc. headquartered in Canada, a privately-held provider of automated image analysis and feature extraction artificial intelligence/machine learning software for critical inspection and metrology steps at battery cell development and manufacturing processes for the electric vehicle industry. This software will enhance the Company’s Exensio analytics platform and product offerings to new and existing battery manufacturer customers. The total cash consideration for this acquisition was $1.8 million, net of cash acquired, for all of the outstanding equity of Lantern Machinery Analytics, Inc. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company accounted for this acquisition as a business combination in accordance with FASB ASC Topic 805, <i style="font-style:italic;">Business Combinations</i>. This method requires that assets acquired and liabilities assumed in a business combination be recognized at their respective estimated fair values as of the Acquisition Date. The excess of purchase consideration over the fair value of net tangible and identifiable intangible assets acquired was recorded as goodwill. The goodwill recorded from this acquisition represents business benefits the Company anticipates from the acquired workforce and expectation for expanded sales opportunities to foster further business growth. Due to the nature of the transaction, the goodwill associated with the acquisition is not deductible for tax purposes. As of September 30, 2023, payment made for this acquisition, net of cash acquired, amounted to $1.8 million and was funded from available cash of the Company.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The allocation of the purchase price for this acquisition, as of the date of the acquisition, is as follows (in thousands, except amortization period):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:73.11%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.01%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.34%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.52%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:73.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.01%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Amortization</b></p></td></tr><tr><td style="vertical-align:bottom;width:73.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.35%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Amount</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.52%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Period (Years)</b></p></td></tr><tr><td style="vertical-align:bottom;width:73.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Allocation of Purchase Price:</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.01%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:73.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Assets</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.01%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:73.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Fair value of tangible assets (including cash of $265)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.01%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 450</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:73.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Fair value of intangible assets:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.01%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:73.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Developed technology</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.01%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 1,010</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">8</p></td></tr><tr><td style="vertical-align:bottom;width:73.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Customer relationships</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.01%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 100</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">6</p></td></tr><tr><td style="vertical-align:bottom;width:73.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Goodwill</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.01%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.34%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 895</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">N/A</p></td></tr><tr><td style="vertical-align:bottom;width:73.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Total assets acquired</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.01%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.34%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 2,455</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:73.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Liabilities</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.01%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:73.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Deferred tax liabilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.01%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 294</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Accounts payable and accrued expenses</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.01%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.34%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 73</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:73.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Total liabilities assumed</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.01%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.34%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 367</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:73.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Total purchase price allocation</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.01%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.34%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 2,088</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">  </p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;margin:12pt 0pt 12pt 0pt;">Pro forma results of operations have not been presented because the effect of the acquisition was not material to the Company’s financial results. </p> 1 1800000 The Company accounted for this acquisition as a business combination in accordance with FASB ASC Topic 805, <i style="font-style:italic;">Business Combinations</i>. This method requires that assets acquired and liabilities assumed in a business combination be recognized at their respective estimated fair values as of the Acquisition Date. The excess of purchase consideration over the fair value of net tangible and identifiable intangible assets acquired was recorded as goodwill. The goodwill recorded from this acquisition represents business benefits the Company anticipates from the acquired workforce and expectation for expanded sales opportunities to foster further business growth. Due to the nature of the transaction, the goodwill associated with the acquisition is not deductible for tax purposes. 1800000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:73.11%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.01%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.34%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.52%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:73.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.01%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Amortization</b></p></td></tr><tr><td style="vertical-align:bottom;width:73.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.35%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Amount</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.52%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Period (Years)</b></p></td></tr><tr><td style="vertical-align:bottom;width:73.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Allocation of Purchase Price:</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.01%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:73.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Assets</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.01%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:73.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Fair value of tangible assets (including cash of $265)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.01%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 450</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:73.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Fair value of intangible assets:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.01%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:73.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Developed technology</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.01%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 1,010</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">8</p></td></tr><tr><td style="vertical-align:bottom;width:73.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Customer relationships</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.01%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 100</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">6</p></td></tr><tr><td style="vertical-align:bottom;width:73.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Goodwill</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.01%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.34%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 895</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">N/A</p></td></tr><tr><td style="vertical-align:bottom;width:73.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Total assets acquired</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.01%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.34%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 2,455</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:73.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Liabilities</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.01%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:73.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Deferred tax liabilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.01%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 294</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:73.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Accounts payable and accrued expenses</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.01%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.34%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 73</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:73.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Total liabilities assumed</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.01%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.34%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 367</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:73.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Total purchase price allocation</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.01%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.34%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3.5pt 0.05pt 0pt;"> 2,088</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">  </p></td></tr></table> 265000 450000 1010000 P8Y 100000 P6Y 895000 2455000 294000 73000 367000 2088000 EXCEL 67 Financial_Report.xlsx IDEA: XBRL DOCUMENT begin 644 Financial_Report.xlsx M4$L#!!0 ( &&!:%<'04UB@0 +$ 0 9&]C4')O<',O87!P+GAM M;$V./0L",1!$_\IQO;=!P4)B0-!2L+(/>QLOD&1#LD)^OCG!CVX>;QA&WPIG M*N*I#BV&5(_C(I(/ !47BK9.7:=N')=HI6-Y #OGDK7A.YNJQ<&4GPZ4A!0W_J=0U[R;UEA_6\#MI7E!+ P04 M " !A@6A7LW!EU>X K @ $0 &1O8U!R;W!S+V-O&ULS9+! M2L0P$(9?17)OIVE%)'1S43PI""XHWL)D=C?8M"$9:??M;>-N%]$'\)B9/]]\ M ]-B4#A$>HY#H,B.TM7DNSXI#!MQ8 X*(.&!O$GEG.CGYFZ(WO#\C'L(!C_, MGJ"NJAOPQ,8:-K B[ 2A6XM*HQD>(@GO,45'SYCEV$6@3KRU',"64H0>ID8 MCE/7P@6PP)BB3]\%LBLQ5__$Y@Z(4W)*;DV-XUB.3<[-.TAX>WI\R>L6KD]L M>J3Y5W**CX$VXCSYM;F[WSX(75=U4TA95+?;6BI9J>OF?7']X7<1]H-U._>/ MC<^"NH5?=Z&_ %!+ P04 " !A@6A7F5R<(Q & "<)P $P 'AL+W1H M96UE+W1H96UE,2YX;6SM6EMSVC@4?N^OT'AG]FT+QC:!MK03621A'^_1S80RY8-[9)-NIL\!"SI^\Y%1^?H.'GS[BYBZ(:(E/)X M8-DOV]:[MR_>X%#BVR]*+ M41B1%G\@M MNN01.+5)#3(3/PB=AIAJ4!P"I DQEJ&&^+3&K!'@$WVWO@C(WXV(]ZMOFCU7 MH5A)VH3X$$8:XIQSYG/1;/L'I4;1]E6\W*.76!4!EQC?-*HU+,76>)7 \:V< M/!T3$LV4"P9!AI@S M&L%&KQMUAVC2/'K^!?F<-0HACA*FNVB<5@$_9Y>PTG!Z(++9OVX?H;5,VPLCO='U!=*Y \FIS_I,C0' MHYI9";V$5FJ?JH,@H%\;D>/N5Z> HWEL:\4*Z">P'_T=HWPJOX@L Y M?RY]SZ7ON?0]H=*W-R-]9\'3BUO>1FY;Q/NN,=K7-"XH8U=RSTS0LS0[=R2^JVE+ZU)CA* M]+',<$X>RPP[9SR2';9WH!TU^_9==N0CI3!3ET.X&D*^ VVZG=PZ.)Z8D;D* MTU*0;\/YZ<5X&N(YV02Y?9A7;>?8T='[Y\%1L*/O/)8=QXCRHB'NH8:8S\-# MAWE[7YAGE<90-!1M;*PD+$:W8+C7\2P4X&1@+: '@Z]1 O)256 Q6\8#*Y"B M?$R,1>APYY=<7^/1DN/;IF6U;J\I=QEM(E(YPFF8$V>KRMYEL<%5'<]56_*P MOFH]M!5.S_Y9KF4Q9Z;RWRT,"2Q;B%D2XDU=[=7GFYRN>B)V^I=W MP6#R_7#)1P_E.^=?]%U#KG[VW>/Z;I,[2$R<><41 71% B.5' 86%S+D4.Z2 MD 83 >LX=SFWJXPD6L_UC6'ODRWSEPVSK> U[F M$RQ#I'[!?8J*@!&K8KZZKT_Y)9P[M'OQ@2";_-;;I/;=X Q\U*M:I60K$3]+ M!WP?D@9CC%OT-%^/%&*MIK&MQMHQ#'F 6/,,H68XWX=%FAHSU8NL.8T*;T'5 M0.4_V]0-:/8--!R1!5XQF;8VH^1."CS<_N\-L,+$CN'MB[\!4$L#!!0 ( M &&!:%=;.7G(T04 /$> 8 >&PO=V]R:W-H965T&UL MM9EK<^(V%(;_BH9V.NU,")8,"=DFS! G:9EF$S;.MK/]IM@"/&M;K"Q#TE_? M(QOL))4/U+-\ =_.:[TZNCR6SM=2?3A6<]2J5,$I$FD4R)4K,+CIC M^L%SF0DHGO@S$NOLU3$Q5IZD_&I.)N%%QS$E$K$(M)'@\+<2GHACHP3E^+81 M[53O-(&OC[?J-X5Y,//$,^')^*\HU(N+SK!#0C'C>:P?Y/IWL3$T,'J!C+/B MEZS+9_O]#@GR3,MD$PPE2**T_.?/FXIX%>"Z#0%L$\#>!="F-[B; +IYB[)%ER)[+RGX6TFIA=LE"]+9=:@?$8^RE0O,E -1?@VO@>EK(K* MMD6]9*B@+Y;'Q'6."'.8:RF/AX??R=4Q<5Q;^)OBN%7-N86>NZOFN+7F;!56 M"O;M@J;#?LB6/! 7'>B1F5 KT1G]] ,]<7ZUN?U.8F^\]ROO?4R]]O[XLA0V MIW@X=;J?;);0J):6!I6EP7Z6/N5<::'B%_(@EE)IFSU<2JO<5BD>&M72WDEE M[V0_>U.A(FD:;$A@P+ F#U>JNF%C/T3C6_H\K7R>[MDR%8>YIAC#FO.(:\UX MG%D3B8:U-#BL# [10FU&FILH%N0N3YZ$LAG#-1S'Z;K4I=1F#@UM:>ZL,G>V MC[D',8\R#0G4Y(XGUC:*ZTRO;HA_?_OY<7)_YQ^5Q9O<><U-;R*^*@^UA^ MY,]D$D)7C6914,)&(V7[>-W'(:@GAUM#\@M M/$?N4WM><4DV' S)E2"WG'@J_X=1KNI IQA [1-C0Z9Z>.?:T'8*0:(U(%.>;QT@#'SGIU^(+X)<02:M)G$E3R8)3$R^EL'7(_*C#H7C8"X M0^AN[%^-K1^A>&!;AS4=L;WHR,N5,I\QY;=+D4J83G+K.LP.Q2_6U1L/CVKK MLZ8BMA<535+XUB[7\LSW*-\:M_K$%9M\'@*!6(U ;"\$,M]K@/- !'.IK"/1 M#IUQ$ B0 (&P%+-Z/00!L9J V%X$Y"<\CLEEGL'MS-YB<9W&#V\\KJV_&GS8 M7N!SG0@U-UWR-U#0"V"#9,E3>U)QP6:CA^ >5G,/P[%EF\B%@$1B]G"99GN' MX!]6\P_#T64[QKZ9W/UBG9ORXK$;ND)W0 MON.>]U8VCS4#L;W6B3P82Q7 WB0-Q3/Y0]C3N'.YB%+FG-&^U<,A2(?5I,-P M4!DG(@V+%;^;F-M3A@LT-])#H(Y;HXZ+$\J6 &ZBS-#Z%P&XB:W:[I#K=BGK MNM;U$3RRK=&:>%R<3ZHEVXW3S0KU#5RV3AX[Y#Y9UZ3QH+8>:]IQ<39Y[['( M9K/#':L_#>ON>-C_]=A[M:EH)KQBKS4C@5F1+/<7JZO5?NZXV,7LU8^7F\$? MN9DO,Q*+&80ZQZGMB7E#M M]GY6 M9#H65A)=BG*2^^OO4'(D6:28!-TOB20/1V>&PSF'U-F#D-^J'><*/19Y69W/ M=DKM/RR75;KC15*]%WM>PB];(8M$P:V\7U9[R9--,ZC(EQ3C8%DD63E;G37/ M;N7J3-0JSTI^*U%5%T4BGS[R7#R=KKO[:WTJX M6W9>-EG!RRH3)9)\>SZ[(!\N6: '-!9_9_RA&EPC'FL>Z<>.+Q^]OYK$SP$)2E9G4CP@J:W!F[YH;J^F9]?87@:OWE\Z>KBZ]P\_'B\\7-Y35:_WY]_76-%NBO]17ZZ=W/ MZ!W*2O1U)^HJ*3?5V5(!!NUIF1[?][%]'YUXWYKOWR.&YXABRBS#+]W#KW@* MPTDSG)X.7T+D7?BT"Y\V_MA4^+64O%0HJ2JNJ@^V>%H'GMV!7F4?JGV2\O,9 M+*.*RP.?K?[S PGP+[;HOI.SDUA9%RMS>5]=)M4.P:RA5%_P?^KLD.00O'46 M6U=!XTJW@L.*$!)0?+8\#..QF<4!]3JS$Z1>A]1S(EWOA%0+Q64!U7;@E2JF M8+9^_,'[*0L];X32M"*Q[X=VD'X'TG>"O$A340,L:&8IAU3>Y7R.2FB\8HN2 M'-IC4J8<0:-%J>2;3*%<0)%5^N=W48RAY/0EK ?%BSLNNT713!'4^?&IM=;; MX'TC+ _'?CP*WF)%23 Q0T$7?. ,_E;R?9)M$'\$/M%1:=!"[0!Q>K*D;+@# MCNP@HPYD]$)R M@:6E>FJ2JM?I7M=_4UPVK)$!@H418R.HII6'23A1!G&'-'8B_0(X$Y65]RCG MP*5(:M)LCRWTA\8B;\KXT':D4Y>+E)7]T M=9(H%AIMR6(61-Y4.GO&(V[*:QN3 YV%Z2+J^>-E;K,+HR D$P![MB/^JY12 MGB5W69ZIC-OE$G&RYEOUTO?R=AITSW+$37,=Q^^3)TWPUH!-HJ*!T7XM5@&+ M)HB"]'1&W'P& &4-BS 5A2;BI-T: 6U(GB<*?KCC)=]F$S5EH2_H=<;*M)@% ML3>%O6L8C;Z.\ 5;8)CU'L DS^FO&JD,^AN<5]F_QM$8\5N$B#UQOL8BQ&)_*ET M#W:7;I(\E9LOE#4U&="+8S)6'A8S/Z(83V#MN9*ZN?*S*.^?]US03K@F=N[L M?-2D0N D([46JX!.I;8G3.HFS)L!J1\K5Q>%F%Z>UA!,NO1B.FXE%BL_9E,A M])1*W3M(4YV\A-;7HBBR]K2@/>D0I:X%7J:Z/?]T(Q1'A/YL1>[T;%<:R'K$\^\= MG4;?$RJ-G!)MK43Z;2?R#9?5C\W&43W9C[2*- P'1D+L3UEOXSRY<5S$(-- MVKQH'A V!S:N]KPYGL^?.O-!3A&+YK!U:<:P<.[I,Z[A&.MYI"DMQCM=I\EI MGGKEP=S*XV*SR32U0.?3YUV+#'IULL^@$UI!FBK""T)FB#N;G1=Z9*)'LUYO ML!?TA@32J^53.[$H4= !*S5'A,P]+VX2#I47>3;6Q(![SH['VLQHR MV$!/-'4V.+9V"Q/8)]1%W6YG-K"923/K(0,S=<8BCF+CH,%F1[#>^$P [24) MO V\.@*W(37FQ %XW,FPQH_XD[%Z&,+<,:8F]LI"' M%:RI+B@E?F#4N,6.0).94$VLUR'LC3JD*>M7PP^,+Q;6T<93GX]*:_ M>_Z1R/NLK$!];F$@?A]" F3[*;&]46+??(V[$TJ)HKG<\01@:P/X?2M I!QO M] >^[H/NZO]02P,$% @ 88%H5Z<- -IE P #@P !@ !X;"]W;W)K MVB!+C7J MM'O-R&>+""5J)&6W^_0[2HHJ.8H=IWMCD>+=\?>GCN1YO!?R4<4 FGQ/>*HF M5JQU=F/;*HHAH>I:9)#BR$;(A&KLRJVM,@ET73@EW/8+64X M%KGF+(6E)"I/$BI_W (7^XGE6D\OOK!MK,T+.QQG= LKT%^SI<2>74=9LP12 MQ41*)&PFUM2]F;F><2@LOC'8JT:;&"D/0CR:SL?UQ'(,$7"(M E!\;&#&7!N M(B''/U50JY[3.#;;3]'_+,2CF >J8";XWVRMXXDUM,@:-C3G^HO8?X!*4,_$ MBP17Q2_95[:.1:)<:9%4SDB0L+1\TN_50C0J8:GYC"LM<92AGPYGG^_FB[O58DZPM?K\Z>-\ M>H^=V^FGZ=UL058?%HO[%;E84@FICD&SB')U2=Z3KZLYN7AW252,0XJPE-S' M(E]<$<_Q_ [WV7'W.43H[A;N M7MO=QO6I%\FK%\DKXOF_LDA=*LNP07=8LT-O5$8CF%BX!17('5CA[[^Y?>>/ M+LW_4[#6"OCU"OC'HH?3*!)YJA7NW C8CCYPN"(IGC)B0RC'LX"F$1 \54@D M8(Z 1!4$-U_T M>$4R*LF.\AS(!6;U6G!.I2(9R#+W+[M$EE,,&B*=:\=QW-Z!T--V+0V]6D/O M/ W5+J6YCH5D_^* T5*^[110QN\UP'K(=4!_PJB%WJ_1^V]"9TKEI['[SX@. MF8]9M( '-?#@3H!R>ICUFTJ(F M^&F[EH!1+6!TAH"S\WOT;$$'SO,$/V75(G>=GW>N!@%/0WC,:UPV"T2%TEYD[] Z@[4:Q9BKEOZC<^BD0DOCIVSE("[:^_M6/B6%X+ MZ/D+Q,ZS*SVKE?:1HM.'+/\AET(H\KA*4GDV6"JU/AD.Y6PI5EP>9VN1PC?W M6;[B"A[SQ5"N<\'GI=$J&3++\H8K'J>#\6GY[DL^/LTV*HE3\24G[Y)U$WV\%%4A-S"WRQ+ M9/F7/%18:T!F&ZFR564,/5C%Z>X_?ZP"<6 ?G #5ADPW<#I,+ K _NE+3B5 M@?/2%MS*H*0^W'$O Q=RQ<>G>?9 \@(-WHH/9?1+:XA7G!:),E4Y?!N#G1I/ MKJ_"Z&H:A00^3:\_78;GM_ PO85_GZ.KVRFY_@!???YR$WT$W.6WB'RZGD[) M$?DZ#=-X/ATJZ&K1X'!6=>MBURW6T2V; M?,Y2M90D2N=BCMB'9OO 8#^$$.WCQ)[B=,&,#J=B?4QLZSUA%K.1_DQ>;LXP M.O^O]>BW6V\$P]XGC5WZLSO\W8BM2#="GF #NS-U<--BW3N1:SX39P-8V*3( MMV(P_O,/ZEE_85'MTUG8I[.H)V>-^#O[^#LF[_OX8^'?67JE95$EMF.'V:YU M.MP>QK6-L@/?TU!A&T69,Z(:+$)@EF\Q;P]KD'3W)%UCDDTRJ22!Y8-$CU 6 M94>ZN7VF6Y_.PCZ=13TY:XR$MQ\)SYANNY'([D$8=.?=SH5[F 0.\YF6=PB* MN8ZKY5T;9?NNJZ$B!.51VI%UHSW7T3-32PJ>SY9EXLV!;Y*M01T09L@&*IAPC8F& 4: M?03C= P]M6KY9QGI7Z9*P(JARD'/U%+D1.R66_(V3F?92KQ[3U*!YG_E^K!' M1\S2N4TP&'7U3 DQF&-9>K%!&_4IZPC$@0ZFSP2B($O>)IF4[\B=@#V8(+L( M$,4?ZZCZ6[>@!::,8TXF&",H9'135*AQMU)%G=SA>!^51? S 4"&O2#CKSO9:0U#'*J^MRK@-?$ S+8N._ M%4W^J-JB1F'Z6KG5J[>P5V]17]Z:PU.+7VI4=.,/L/S$BY3,-GDNTME/ I4X MEJ4Q@*E M#*U5*'U&ABZA'A=)2C9I+G@2_X(JO>#P7"W:N8#XP#N5$;[E<<*A=A_!.GXD M.13QN;A31 H(:*QB\7S@VO+RR-7#ALC9D1ZS-D;7-5A3!WZ:X:J%+#4KV=M, M@9;+D&EN6-_: A.R9:331E#4'K68(S!/1T48BOD'6X(F_5K44K.JG72O;"AS MO[6)+>9)H%-OPW0IAT"HZU"=-M*>-W*[1KU6LS0P+NNM,D;6,/[E&1V^H!O5 M\:L7]#Z]A;UZB_KRUCP^K(4V,POM"R[C&38"E9U_F G6<6L;B<"L8TM?H7&4 M+AH[FL1SC]42FIDE=!@G&X6>UEY4EL^2;,,PDBBJ11)OLH-DK8P9,TZP[^5/ M#U!E^!8VRU"/8*ZMH"97Q^ ;N2M ,Y[,-D4Y*LO,:V8D,RKSU\[(7KV%O7J+ M^O+6',E:\3.SXN^>D6W);?O4U\L@!ALQ?8<6HK# UO>UN#>_HPZR6NA3Z]A;UZB_KRUAR%6OJSYPZQN\_I*]/F3S]. MT)KT"(SY^EXO1&"4LD#?,D0(+G Y&U&>>+^)4DD3<0U/6 M\0CJ:+Z[9+1[4-FZO$5SERF5KY:6>JF@#_JI=XIA4)-'=MDXO3WMQ+5F8L3651 M)])Q^NV/E!5# %:@X#Q.\B:V'/"W('8!@0\6X+.[9OMGNZCK+GA_LUJWS\\6 M7;?Y_OR\G2_JFZK]KMG4Z_Y_WC;;FZKK/VZOS]O-MJZN=A?=K,YY&*;G-]5R M?7;Q;/>W5]N+9\UMMUJNZU?;H+V]N:FV?_U8KYJ[YV?L[,,?7B^O%]WPA_.+ M9YOJNKZLN]\VK[;]I_,'RM7RIEZWRV8=;.NWS\]^8-_+/!LNV)7X?5G?M0>_ M!\.M_-$T?PX?7EP]/PN'&M6K>MX-B*K_\:Z>U:O50.KK\;\]].S!YG#AX>\? MZ&)W\_W-_%&U]:Q9_6=YU2V>G^5GP57]MKI==:^;NY_J_0TE V_>K-K=O\'= MOFQX%LQOVZZYV5_ON7%-4777Q;-O< M!=NA=$\;?MGY=W=U[Y'E>@C%RV[;_^^ROZZ[F+W\M2A_O2R+H/_M\N7/+XH? MWO0?+M_T/WXI?WUS&;P4_:>7LW_]]/+GHGQ]&93__NW%F_\&D^"WRR+X^JMO M@G91;>LV6*Z#-XOFMJW65^VWP5?:YV?G75_7P>+Y?%^O'^_KQ8_5J[FYZ2/U MLFOF?P8O;[NVZSG+]35!FKE)/UQ=+8>HKU;!JVIY->GK-:LVRZY:$:S"S7K3 M]_;V=OO7?;V(Z\N1NLSGMS>WJZJKKX*B?KN<+SL"(DZ'O.P6]3;H&ZL?AQ;# M /&N#GYN6JK!YQ]!!0_"&@^(X3'^'\6*VJ];R/AZ_[AKX/C6^" MJNMO=_Y=$+%O QYR1L7#/3;988;U\[.^ M0=IZ^ZX^N_C[WU@:_H-RMFV2A6$8Z29+I$F!A$D03/-S].#GZ#0_G^+;>U1Z MT-"IX5>[1,RC,)WJQ0J[V(2%<18FAL^(?U??+;M%4-]L5LU?=;TO ML;G=SA?]]V^PZ7UPV-&HMH^M()\:K35S5M2W4R%A)1(FD# )@FFADSR$3O)) M0H<*%Z=EST::)?8 FX3SYW>_[UNN_XA:G!H7X%NNYP/#Q'W 7"[7G:C M(T)NU8E'QG@^RD@*96PL\ M[N2Q;P9F2W,3SHR.,W.;]W:D;=,R64)-"BA-HFBZMY4@R-R*X$X3GPSK0E># MKS?UNJUVPWS]?OB])OWL1'IW[,CR8)(DQO=V ;590FD"2I-C[:$[6@F7S*U< MZLL-RW7O[#KX>M6T1_HR4G>;06D%E%8R6VN=Q"P)#=69+!89VK0D2R4Y.^(] MI1TRMWAX;('FEVK[(.)STH^V@A5ER30V!V6D:E801ED81:;>#S4JH#2)HNG^ M5A(A.C:*7]:;O8>'Q[R9N2Q%1 MQJW%;+=Y[Q01VRACS'RF**%&!90F433=WTKIX6ZEYW 4'?>Q+::8HRBWQ8HX M9M;@6!"H"8OX-$U-WQ'J1S__2"/#R8(J&$U#8_B61#$>1CP\\MS%#S*K'I=: M-3JKXU1NE3US=YOW[CE4=I4]8C7NX_$<*V[+ >3, MG4#1,W<"2,_!+.4DLX,-7JM'P)MT7?Z2TG!!)SJ;* FBRA- &ER9'FT*- :2C9206DEE":@-(FBZ;&A5"'N5H4^7_J$NV+> PE4?>*$Y&4] M-$&E)RA-HFAZ4"GIB;NEIT^;0^&NC'<@01/ ."&&Y6%HAA(TM0M*DYQ0WP[O M0 \1):IQMZCFET&QAVG-F#%+.X%J991-EJ93:QR JF!0FN2$"J;?@[Y[1LE@ MD5L&>WQNA!OLVUNAM"*RY3(KRDJH20&E211-CPHEED5NL>PQ.11NI'<\V.J5 M_>1?0&V64)J TN18>^B.5EI>Y-;R/)=$W#1O'T.%/BBMC(C,+\;BS%"4R&)A M9!235#'.#AZ]=/<=;'X\49HSI-A_WJ[= G=D2UQ1.K6VU;C->WO(-LI8F)O? MPU"C DJ3*)KN;R4@1FX!\5"*'?=Q/"K%1K9B&$=Q9FH"!8&:L(A%J?6=2F0+ M]?TA9+G9<8B"/#$W<4BB&)MF^;$-*)$2U*)/LW=Q=)9D"T%34Y-U5]6[ET%% M-BA-0&D21=-#2*EQ$7#7H^?V5[=I[R]:6_9CB;E@6$!MEE":@-+D6'OH :$D MN.A)-S6.#B6VEL6MH02JGD%I)90FH#2)HNF1HW2VR*VS/<'RCMNB]PA"Y&1E MJ3F 0'=)0FD"2I,CS:%'@9+2(K>4]M'+.Y&M$O'0FO-!Q34HK832!)0F433] ME!8EU,6?:SOCZ,DM4*$/2BMB0N@S17FH10&E211-#RJE\\5NG>_3KN^X*^,= M2-#MDS&5II>&S(PEJ$0(I(P6ZDMZMM^2QAD3G] M@-HLH30!IHK!;IJWCZ%2(Y16QH1P&>6&]B6(4A,69:86 M3!0[LL,Y/CC#[41=T#>9/;;U-2J9W6W>VSF$J$?(D'R>C.G!LJY1D,CN!HI/9"2"=S$X5))+9B6*N9/98B7CQB=L2'9OIZ%:U M-:0HL[;/SMSFO7L.(5PQEIL)T5"C DJ3*)KN;Z71Q2=NGCS)Q]EXS[%%N3C. M8C/9H"!0?<^),C/22P(X]!Q[^S95D"=F,4D4XRP,V9&EXUAI5C%0L_J8@T-M MK66:FUZ YGI!:264)J TB:+I(:0$K]@M>#WE"HK;M/?LE#B)*TW-_':HS1)* M$U":'&L/_3Q9)7(E;I'KB5=0$ELM,C8 7%;=%W!$F(!*[8G"5 3990FH#2Y$ASZ%&@I*K$+55]] I*0AR^E9MS M/GG H>2MQRUN?;P7%73'OD02JE"64MF5*,5"3 DJ3 M*)H>54IZ2]S2VZ==0G%7QCN2H+)>0B0)QLQ:0H$:%5":3(BL1.T6]" Y>%&" M6Z][S!**&^GM:D+ARZT\3ZC-$DH34)H<:P_=T4I.3-QRHN<2BIOF[6.HU@BE ME0DAER;F"@I1B*?F^@E1*.5'U*Q$Z8+)XPY5.SSP(B)=2!VJEIN+DS.W>6_? M$(>JLTYJBW+D"@J!HE=0"""] M@D(5)%90B&*N%914:5:I6[/RG"RX:;Z3!2BM@-)**$U :3*UA2N6Q$>>$%*E M7*6/.U3M<'6?_&Y*B4/56]W$X>JL3BV>B)4C(+2)(JF^UN)4>GI MAZJ-^WC\4+64.%0MS:+0?,(C4!,61TF>F;XCLIFF^=3

HN$.-"BA-HFBZOY64DIZ> M^C3NX_'4IY00 JB).X&B)^X$D)ZX4P6)B3M1S#5Q3P]>VOAYW]I(/*>;;8]] M;2/VO8W8%S=BW]SX%#E4J=)*TD_^\D:W1>^YK2V/F-]O!=1B":4)*$VZ6T./ M :6?I$_\"L?4UB/,8S-F[CIXCP_0M"XH34!I$D738T,I0NF7^B9'=\6\AQ&H M\I12RI,Y=X#*3E":1-'T]P4KV2G[DE[GZ*Z,;R!!:45&"&%Q:K[H#VI30&DR M(X2WPSO00T3I:1G^U#(WTMO1Q$L!4O,=C 749@FE"2A-CK6'[F@EEF704\O< M-&\?0Y4T**W,;%TNS[J&.+(NXN=T):E1 :1)%T_VM]+GL1'WN)!_;*42F9I#9"EJ<3$/K M:$@"-6%1SJTWXA+ R32:IN9J$56.I^9I Y(HQOFPE^Y(QU'"5_9EG%B6V7H3 MX^9R@KNNWKT,FG8$I0DH3:)H>@PIR2_[?$>6N4U[?\M2;T^T7E$'M5E":0)* MDV/MH0>$DO*RSWID649L/C1'$FAB%)160FD"2I,HFAXX2O_+/OF)96Z+W@/( MN+Y80"V64)J TJ2[-?084#I?]L3GE67$>67FO&OFKH3W '=H@FE"2A-HFA: M<.1*K\N_U//*W!7S'4>@M"(GWN,9FLF'4),"2I,HFAY52N++OZ0#R]R5\8XD M:,9=3AQ8%B?602Q0HP)*DSEQ8)EV"WJ0*'DP=\N#?J^DV<.TAK1VA;LM>ON. M,)G%YJ8[J$T!IE H!3%W*XB/6=9Q([W#P=;TTM 4@0NHS1)*$U":'&L/W=%*XDGJ8W[>/PD-:((F<%.E*,SV*F" M5 8[58[(8">*D1GLY^VBKKNBZJJ+9YOJNOZEVEXOUVVPJM_V%X;?#4L V^7U MXN%#UVR>G_53X3^:KFMN=K\NZNJJW@X%^O]_VS3=AP_G/?^NV?ZYLW'Q?U!+ M P04 " !A@6A76]JB>"H) "N*0 & 'AL+W=OC%9*U6>3 MBW%YSM>J M8!6]%T"NRY*(EVM:\*>+$1QM'WQECRME'DPNSVOR2.=4_5[?"WTWV6E9L))6 MDO$*"+J\&%W!LYMX9@98B3\8?9)[U\"8\L#Y=W/SZ^)B%!E$M*"Y,BJ(_K>A M-[0HC":-XZ]6Z6CWFV;@_O56^R=KO#;F@4AZPXL_V4*M+D;3$5C0)5D7ZBM_ M^H6V!B5&7\X+:?^"IU8V&H%\+14OV\$:0 M&(#; =@:VB"S9MT212[/!7\"PDAK;>;"SHT=K:UAE5G&N1+Z+=/CU.7-W9?; MCU_F'V^!OIK?_?;K[=4W?3/_IO]]_OCEVQSS2RV^O#0S!*Y DL=)A(L M!2^!CCQ!%*L>&]=EBE%YYINV1FWL5VO"^DS6)*<7(QVWDHH-'5W^]S\PC?[G ML_E$R@YF(-[-0!S2?OE%9R%6Y;RDX%W!I7SOL[91D5H5)N=L+A&"T_/)9M\* M5VB,9Q#MI [@)3MX27"!KA;_U_&E4Y*20'&=DW)>Y:R@H.KC-J_-P]PL:2WX MAFF/!0\OX-U:Z@M6O7_]ZB:G7-T3*3N8OG0W?6EP=6^I5IHSTF3C:@%(R85B M?]L'/LL;=(N(LZZ^T*Q3##/L7.MLAS8)(YXKGW\)1XAB#*_)3#J2#$ZFKG>D3P7=&O-@LF._XNGFM0Z%DZU("?2M7^MU845'J%=O0-L5X"3)RT(\SW#?1)Q4/^!C@J !@N :[R)FH, MNU*V(3IW>6V./6$\3?H+ZTJ-=4J8S08Z\ CK:I):]^L:X[Z"%D29*I56=,D& M)M=ESW&"8]3'[HKA%,5^Z*@C610FV2WT+MCV4J,/+G*)$,_ZC.010DDZX+.H MHTOT2KIL2Q<_0)<-<3KM%XT>*831@">@CC51F#6O6:$?/5KBH<\YE=(4)F97 M\UC9\BN(W,>L*>Q[@D<,3@>J<]0Q)@J2D)/"CKD!=K%.I_V4X)/2%@V![1@- M'=_4OG$?Z#7"PW@HR1Q?<<6FMKOA-:(C/!3>^O9[$TV=^HK=*SKI]O54V@YG MH:-.%*;.>\%S2A?M')1$K86UW&8D20IJ(^CUY3QRZ1)-IU'47U,/J^(TBH9R M5,>K*,RK]VN1KXAL8&OWU*ZH7JPQ5.\@:X/;"]M#L=,DZQ<#/K$T308V(J@C M610F65M\O1AP8,D%T$0 ZM:0-]KAH5CL[%A\4LD0EW4TC,(T?+^'^%7;=.2A M7I@XKG)$ZK QV3$O#C/O_=Y\/ZRE?JO)PK89)#,%Q,^VVV7V\"9/;/L/WEZE M9V\*IZ@_Z6$\/QCHN"-O'";O(SG;E_V\QKK$K?6SU<+1QF;?I,1K#+NN OE+:8=PFO+HBW=XK=.@!/<;\\\TE% M<"!#XZY:P$>VQTVZD$U^-NVBW>ZB;8S+%1':%JI406UFT:MA ;=:/*()=EL* EV[(_#[/^5UOM\J3=0I6G>F?7PHG59>YPY[.*30BC. MAM:@XW8V'\9J.+KX$B"WOX.TN==?!(01@/-(9QQ_,X MS/-V&1HKV%N!>[A<%X?],LLCEJ91/)!_XH[SXS#GWPQA!42!!_K(JLHXDZFX MJ&#WG.L\>/$NG0S9T/!Z'>3QH S5MA"!ZEY8AA"GJ%UT> MN1G.]GI.A^@[^H[#]#U?UW63'DEAOR<47*X%W=59AMFU5S5',S2%>:D\/BF5 MGTK;X8QT5!Z'J=RNI^V\+O362WN?+?[M G9 M^ZH=9O(.M<%(RJ9%R*J\6"^:W&S,*"DQJ[ME0_ZV'D?L:XBGCJ?ZF@APH.T9 M=WP?A[L# 4>M>&5]]:B;GK1/<"IMA_/150KQT3Z!9PO:?M)H&YBD;68R:-C[M MM<(M*](HZM>M83@_NKY=B1(?:?,O-KJ4HDU]N]][6+)GLV3-M[M]ZVT-7[=? MC;;O^1MZ%2VB](#E^[/BUC 8#]1C<5?!Q.$*)M!L!40P:=XTYY7LIWIS^\I/ M2N$??G/,SYP90BCMD_!D[^1;2<6C/1 H@0W YN38[NGNT.&5/6K7>WX-SVZ: MHX.=FN8DXV[FB9$&%$=#O MEYRK[8WY@=T1SYI%\DD<2^[SZ[2QVLK/OJ METH%<5<6QA]VEB%4'W9V?+94I?1]6RF#)W/K2AEPZ18[OG)*YDQ4%CNCP>#M M3BFUZ1P=\+U+=W1@ZU!HHRZ=\'592G=_K J[.NP,.\V-*[U8!KJQ M(1@E@A'K'06QEJ9#A555_L#KIB-!CMOL!OMW7,+O/;?8;?\7@ZF9+IEU=GT[.+ZS&[ MZ/O=$J7N;9=*)?C!5S)3AQW4F%?N5G6.?OYI^';P\06;]EJ;]E[B_C<&^V6Y MP[[X$>X4Q])K+^Q<7))O3)!@@=U5M1(0[%43FDCEO)6B9E21B (E71X,KL7EZ?0T!8U M"?5=,3%97[P*$/[S3_NCT>#CB2TK:>[Y:OCQM:AJYVMI@@A6T#%7%\H+:7* MV:(N6'FVAAY.558['70Z<7:7+:59* &FI?8,@:^2G.G922.CFU379L%_??7&B M7 "X@W=L 8REH)I;&XP-2N3:9X7U-6(B#!TI(*MUJ:;3IH;#M[J^=3"=RS+K MJRI$6K+TQG#DI\2='3LND129W(CG M.BNL$[;4 03]'Y!!:"749[J-*K;2AAP%)4IIT-WH6%= ;2'S/P'KDD0SMV5AK8!PHHS/!&ZGAZ,$&Z6L*;Q7+0$@QE]JM]2%B/$)C\@B32ZD1 M[:OP:7/?T#;FH\L[R=(W"9'.CP@%@@7%0JNZYF#G<#.UUR:=&R9A*0,\< _O M"W57P47D0?(]3KDG2B5=YW5!Z>(S6'^OI(LJ4CIPA9&6WQC&.M?"T%/_11HHL M%HK:HCB%D\L9'+4[Y,8VZD)\@0>MB@ #XG(N7;84\=#NCTCH5+_1#;$.6ZQ* M-K'1&K=72XMR[-F5 3=?S[S.-1*#H&P.'9A&%1K32T0/L*%"8 532#%9%53X MT9/!2>-EA+'OB7UB*N)X*]F )RX%.O@(#CFXWI)#G"V_,?ZS.HC<,@"&UG=D MY"8X.O57K5,S^5'8UAIX HM9[K@IMGE M\VMGTTD81Y8P0&XE$C**H;@VN?UL=3^GCU.WRM3)&((XI*$7>>V:GAR)V*6, MK_V!(C6Y=.BRVV_FEBM[8L1OM5& QN'; MF$*?6O9;"8\MOMJ0?!I/CY.ZKP4&UQHLMY+=5%QV#=UX>M,.SA>VS^)[P]WN MAO0)#[ 0:[*68KM;$ MUH>RVYS&NY"R[2[-;Y3BLXV^.\/9%3"(:(:4'"-V2[5U!&&KQ%6G'UY"G,O"@.GCH,K*AD%D MWR0ETNT/WW0Q(F$.XG$^XLNO*E\@"#$7TKG1F^W\'ZO[S+'_H8+%M70+13&_ MIG$PAO *%?:LTFAIG$&]NMDA2S,&):GS?2B@'(3Z[-:#V[-2+.H=5RJ41:/_-9GF5B!NFGV MD)">IZ''Q1V"%Q&HG!68Z>=IZH_FQ'[$XQ0OK*E1XC2LVWBM0D6]3?CUYC*1 M^@].>IIPN$T0Y/TFL3%A0T[+31>##._"5/YPL")X"LYZ @C:0&4%W62V? +5 M ,.ZY%<;MZH7&^W&1DTF@A'4!T>@AX$0GW8&\N),(1T,K^?Q1MJ':?8AU=O% M$?X'\C8;+44(PFEB2YMV>_HIPF!JX#4ROK"0Z[& 8#(+STT%WS P]KD(%_]$B!@ GM,;N.:"!+3_Y!S]!U!+ P04 " !A@6A7WF62 MQ4H4 #=1P & 'AL+W=OWLAS@2"0('Y_*<&Z@7:VT^VI64;797E;5]>;!JV^;9T9'-5[(2=JH;6<.= MA3:5:.&K61[9QDA1T$-5>30[/CX_JH2J#UZ]H&L?S*L7NFM+52U+O7YY<'+@+URIY:K%"T>O7C1B*:]E^TOSP<"WHS!+H2I96Z7KS,C%RX.+ MDV>OSW \#?A5R;5-/F>XD[G6'_'+^^+EP3$2)$N9MSB#@/]NY:4L2YP(R/C# MS7D0EL0'T\]^]G>T=]C+7%AYJW_SM^SRE^N;GW]\>W7]XJB%E7#\4>YF?Z:D2] ;4W8$L6K/)6UIW,%D976;O6F=6=R:5]EEW4HMRT*H]C1%UD M[^M6+HUH99']0\FRR*Y$U?@1T]X21N9Z6:M_)JLH-.)3*;'3^_N+ZD3R?/'V4WNE%Y M=GY\/LFNTFU<@N8: O+*UR2#4IC!PQHI0%S3*AS!--Z[%!,H#H7I!S^2.ADFF3?AB)TR1<+@@S3VS M--(0:B.W]+Q42[IKD8_I(F&6-VY3O4E@2&T%0VAC%$SEAU_ OO)[QK;ZBRBY M2G@)R)I8(X,78G,( D^&S72A0LU1H@O7$@D@,QQ &G!9:7(%5-AN;EO M!OX"=HQM8)J]2ZWETW;-[ \:PBHM[8@Z#\P3U5L*V,#NR3.,.D!Y2X&1!P8/ M()_.(A3@+):PJM0U?(2H!"_S*AZMKJ\_>+2:)H#JT6H;8F%Z1N;"(7(/?F!R MC+M@$PL85"\!A;R<>M(A?J?$Z46[1HD\9&F1DN%4JMQD;^\H0 /+/7E\]GSO M?SV4W36_LA'U"]@)!)X%$@YL!!.%S1C:D2.:Z)"FD6T'A@(DMQ L'F*$5DRS M#^'&0UCB$&]E^4J8I7P4GA]9%U2I!&0/!& M*K- TW'(EP?WH?C1L&JR#6_$N#K(XCY-C\(-(B.9PN/S3:K/TS[/&VW;PZ"[ MMFL:;=K![O6MXW+4<0 MUF0+%Q#O#C&&8'6>9'.9BPZVD9H1P]"M(ND]5(_" M6JAF#Q5@^DZ0B901-$]3S1O7JJ!1+AP@Q[-3LG&=9!'0*^#D)N4A.CGB TFZ#W$[015EG$!^'_'= MZNRP-#$JXGY ^7W>NX_\WAC*S7\;P -^@TQ;H^;=_6HVT-YK(:Y3F$%ILZ]$ MA2+&X!)H>4 S!#.E[@I6]ZCESOEF.HB Q1YC'T#(,HEF"R1.Z8+X0&H(+(94 MO@=E$*/?D(T-?;B@B"8WJADQ+9$$U*RIDSW@$Y2X M-ZO;PUPN55T[!X*#$%U2V,2E%\K8%A)J"&8BRJ16]JD&P *#_9 ZR.)_2O_Y M2O_FW?O,;B!#JC@BN?PU?'W((2>N<@E^',@$(?^3"?*MY2ZLJG TT'2&&N=/'Z>;2@S!:(5T%9MPW0,?B@H=1Z8[(V7P@#D-\ ] M4C84;1K>?J;$O#$ '^$B6&H)U!O4TF0+\*@RR'FGK6"S5OYU=6;(6Y0V\#ZT@5$7X"0H& MSMDB!@.X:',(>$J95=,%4)<(8XI97<%HSD*!+@2L2@K;F, =_5=$&)=: M42* VA)U$ICP@U"U7:$6&KT1)988 .HV#>OR]CJ!]K5 SMN5:EP( 92V,)GW MWBL)XN$-LE6GI28B*"Q(1N"E'V&[JPOVP)8T$W7%!2%;4Q$*,GSY/ .\.F?SE+_I/\"5=C_E.^ %:< M9M>J@C L $:0'6>40*"BQ*AV($&^;4_@0):*'"/RT,,X[=\JGT"@UH6*)01V MB:BPLY0H#ICXB[Y\(-JA."4=>X+&-(FBW/.\S/WBCX"DBZ M#&;G!=?KV,11P\;5(%!.2G:UXRK8-.6129L#K0R^+S5))2V?XA<W4DAL+:=LN%W:5+;"0Q:GJ8@$K<+41A%;K M"ASX ABH37^#P08^K5?CRFJQ@*;3&MNAJJF.RRO$LG9+>&(D=5PQ-A,]/O8[ M2 D@8ZDTB-7=?T:(>7SZ_-_^_\W* $JE7?+L6C;@L>:P>6QT_X1ECCWW_438 M$,<_LSU7?@X<]5?.GV3?\I_'9_CG&/Y\2+F,G''&C6U#EDV/\ MO/W7SXV.P'!AA!2?.+M5"\*XZ Y=I00<.YM]2XKV_=FW8]#?TMIAMJ(S/GML MB945LTKN8!4Q!*='IF#JAU$G6@A65[Z$VC-'[J0,,+O;(Z#'^2FZN[%0G%SR-0TVH( "3(?Z;I$.)F.-!R&M,)U7&&; M./X6VU] *W4?P:-19]753$POHQG)93@N2A(FA:Q @OJ5J%Y]X0MSD4.]./RB M7,0-_7=G)&_^O&!YLB=2YE""],J.1,I_EQOOKE!.2JZW.F>4PSC#<*RF*)5H MDIS>A'P');GHB 4D#(ZO7.V='R9#NVO8;?IP[Q9-2"Z /B5K^ >:^!XVKDS> M54XW86Y%S35LO*^0?40E1 !+A7@5C31=2\:Q& HW83!IJ[+D MD9U$^Z" Y7%RNY1?^*%H43!A5U+ !LFHP02$=+*0_@O<\7,5$0^IHDTD*60"KN!C1G\@8K+5";9>;S#-3: D M5K[AWH([+4DT#Z8D\U5-4:;O_,5[9 Y\2 6H2-NNOMN*E8"PA6DX!(3K^:[[ M[F,"GU*&8%Y;0*<2&S*C70[255?'C<= VE4W],2M7A)-D_N,O)?& *G@M\,V M N==9RD<17!M):N'[>S@J5)<(*TAF\3^#U9+D,*]I>OW=?0[R%[#Q6]8@3L+Y@]@.)830M6F:;L+WD2VA&?K[(].&*PWH.D[*BE@7ABD MM88EK,4X ^VJ@*URS,A^Q@$-+T7-3\?1)&3BW(S@S"U5>IQU1W,0+MVM09DO MSTWG1.F+*YZA(7#HN8RX2XI[R@WNU(HRYI=;UA10,/'> $RX;3H;-D_6BCT7 M;+Z*"<9^5(FQX!T0Q< #3IQCVSX-B H[R;R88IVQ/US5!6S"FVA/*$@\0@TTV(ILIQF%Y:JFN0.L?:" MHDB3>!_4>O4)/")Q!J$ 8A>_PTH' M6K'V88O2GP_,7HN2 2DU5(=@EHPA170.D-/CDX-#J7./M*1+"2K%,T'!AV!X M<.<"FP7WN9/CC*$I$]W3S58U9F^M@?QQH19T>"9,UY]@2TG<<N*IH>[ASPJ@_X MCJ$^SG#XFH@%<@]_;BDA>4 @$0W*G(Z@PNT(3=P'0Z4(SD"4DXP/L8++"53T M%O"<_929DWFYQNHC=W8W,,R%?3"SKQR'*E$E?@?XX41U9VVV1Y:-5238$ BJ MQ)0MV$TH5J<)H'>P24B()[=<0)GFOG1P["Z7LF I\\296V9P7)#)'Y+7+_X& MK:&\$ARA0<+]\5GVK+[<78,JQH=J*J>3;46E5J,[EQ9O8G6: M$ _CGMW5BS>@/WSU9.)*&61Y5!<9[LMY08(W$ #U]3!;"C$GRSILT3_E\"UG MJ5)E76,QP.7L5I>J(*'-&>$R>D\&>(!QUX,GTY.L N[[@T@/3J>G_L*P\-*O M)!<^FL#8A1POV;J"^\J0-^&SICVM&6[:.P1?V7>:A\C\9B >9@)J"A[;=4" M_I:2OGBTSX]V;61_>KQ5I"\(5B&VN-6@M<1P4=PZK-Q9K4GU*58Q=N@WC<[! MVF _@M-&A)+MO9!E1\\6#_S&(AGX1#04^KJ6Y:T\I(J9CP1[^IWH_E"M8RW> MR,KUO='[N:/R80K@ FM8K>M#/UEB E^N:N-6,MEG)BD=GF"897M_J>6,$;\& M#CV81=UF93^9/AU3]JMMX&*9B?Z"W&_ZUU1U[F,/!S+)H;T%IU('$_/PY6O5!YF(3V8G4Z?#!8[3_CYM:J[XZI"RN>[5]YSC+YTTSO9 M/-#^D30]Q2D?, S>^R#0[.K8KL&(#E]X(7!);ZS]>S2A8OY@=O(D,FR:_4"9 M%.VJ:2!8I#BC=YA[&'1/@*MT +<_4J4B]"N=LR 3Z&^!IN8#P$KU)#\B=%: MWK7TRMH& G\;CU(SKPH.J><#(P 64+,9'4)<.^27/IN#9#:I221\U&E-RO/9 M)?_A'/8$OIIL]PSH-.(4>]Z5P\2S#"D TYD^LA*#6-.Y!%>7\6DU.LF@3I4B%X>,4@,HM&EMC'Z)MRN MC;KCT6F_U2>X_G1,#ESS&;1["\&1E)X$&'D+2X]Q@#<:=\ZEFBVOP&^5C.PH M[OEA#RG"]4"6GE7UJ4I2\XBJ.=I'&G:T!E435RT Q;&=3>8+%3JL&[AV MB)Y3YX^0H5Q@0)KW\5C0*XGX"*"[9 -.H:U;&YLK>V08UAK0HSD535Y A M$'55F_0P_D)*.J+'+WJRI["^ ,DN@8],6XK9*HPXW.EREXBD+M*?Q?"[*MPN M1EZE\E&KM3I7-$?B;9)S*(EOP$:="[<0AR GX-Y[NN;(QCTM_^&<2GQNG,M) MV&QZ/(Q+'X\F8?\""[;C^S]OQ]_W=SR+D>Q61)@J(KL9! .FG.+@X^%L(QCT M%:+@D^%2)TD(_J5P1P ';,'-U#I-H4MM+7?_2E<1TL$V;$\+]F32'Q ]J/Z, MNE\HG+B7R_O0C7W=2$#M%Y#DB"V7_=( ;0&!19VSZOC3R:$.%%Y'@E3678HO M],7..[8*"SI/EKZO-:@+<8O0O4[.9&$O<_"0ZV6G$>8@.,9F%P:^=( TK-^ MA4/0"UU8K\($#".U-D:67("BA*QW((.PV\7-H:T46HCW\TO>J= 13@[&42\F M>"M?>_&1]OW3;MD SO]Y*KKKMSN.DI]< 18OZ8=ED%)PT_SK*^%JYG^[YH)_ MLB4.YQ^^^5$8R'DMR&$!CQY/'W]_P&&Y_]+JAG[ 9:Y;D"=]7$D!K,8!<'^A M=>N_X +A%WU>_3]02P,$% @ 88%H5S64%PTW" QQD !@ !X;"]W M;W)K5K5L&7!1VPUE)\VIR M>:YA#^+RG->JR"OV((BLRY**[34K^.9BXDPZP,=\N5((F%V>K^F2/3+U^_I! MP&K6<\GRDE4RYQ41;'$QN7)>7_N(KQ$^Y6PCC7>"FLPY_XR+=]G%Q$:!6,%2 MA1PH/)[9#2L*9 1B_-GRG/1;(J'YWG%_JW4'7>94LAM>_)%G:G4QB27[V_NK^Y(X^_ MWMT]D9O?/CS\=G]W__1X/E/ '7%F:+9%7-OUCO#S>E4]S<_[&U1M./G[.>%!>2W7-&47$S@) MDHEG-KG\^2,T++YI%94$2H8J:MY7A0L([!6*T98E1&^T*]K)G*>#:CLRQH.(: J M3N:,='1 .%;-)\VN5KE<$J)X[XJ,9!:+E/R>[_12_&L3KZ,(/$^!,451>H3 MQY]Z<(2*0F>#"B'>-!@@$L6'H%.LG#/11YZE<6^!8P-V--BU8!.):D%2*;;' MI1PL47'U3=;(:I%72VU,6:+FFU1:%Q*(!#*LE1_%3 6J _L^TJ"GF9+U7 M#O(UB8X)^?-/L>M$;\@BKVB5YK0 FU1 !,A3<@7B%5!%X LCP+IC6'#04I)< M$JQ""OY 3?R^%GRN[3]&Q"R>D7H-ZJI!WG9KJ6TF98GF:^.Y]UCK( H^R]6V M^[S'XXTEOB*M8,]09( MVIW\65.AF"BV*!]\A>AH)&GVR!@@I,.>'>LI>1!0 MH@6(@QX"K'RM9=\/MD@%E1Z,"EOT^BTX9H$UY+())GKPD:Q?;>_&W/ M<6!UT%%8=4",.G/A:D?58")#R>[["9P-RXY"$^!8<>"11[Y0&SPHW9? "J+ M6'E)0-[6HLI5+2!=+/(O^"*M'7/VDEA^XIBKV"?O&434BA=P"$N(N6>&%+)' M"BT_",U5&)'W=,X%55PT_FE.[LO=?"N*;&/E>PYY8N"Y/8)%5AP.V[BQY=O> MH> -X.@2]!3?MW)MV_?P:L?NV^(W$KP7Y=6=A%=QW(,I_5@UW)![IM/4"(C M?V#2Z[W#+K22T#,\Y-C!"YYQ9'GN8)DXM+PP 4>@/E#&ZK(NJ$ZD#"HT)!+5 M93NH8T+E?S6 COS43\"1T9D!""TG"<[($V9-(ZH\L++G&0#?MD"I'K#C'$Q( M<*+;(B7WF1)DNOE$6M/<'A47\U E&=E ECYQINY.-9OZ/<"H'VHE&"-ETYLQ M[,WVI'?-X65";P[!B;=;,7QC;V.K"C+O#^XT);]PGFV IT9X!VF\6N:Z*='! M89%[R%M7WUN=4*J4"K%%$9L6!CDLN[T:2P93>\>4_M3I(+MR?F0+V *R\SU7 MC#BP]W4M07%(U)"@YE"XM*\,#6BK 61>JTN]+/OGD^^__=P3#'LK@$[VN\17 M^\[M+P**Z5?WQYRM>2..05<89B M<$(2*S!JQ@DYC2!)VV<&Q+4\+QA1^'9D4H16&/MCB@@"]I9!%H"2"OTT2U<5 M+_AR2WS8/^E1/=\*W8'7*51%/_0&5I RG'"H&)YGA88HITYBA7XT0D_BF#P) M: $K6K*FF<=52<5G2=RQ\HX5)/' +4F2@560) ?QG'C "V.;/$!(0M"$8^XN M%&/;D-6*0L.LGG\$,TS" =.W?,2VL9?Q M8804Q(8B;FCO5/#=)Q3PV JCV'2]![(GKNE[!YJVV&PN_S OW*6>U:)JQ? 0RQ6TP,!X>W9AH9 M"HW2W)I[N/PO'$9>,-[;=^15/^_HD4D/=3"?X<=,5S9>Y)G.95+!H_$FB(3X M@JWP+N]97RG (2:G. F=_=]5O2?=+YEW60>FEGOL=KX!3QY1BZH^*LGQD]A7\".9A1GY GI$=]1893-,V%'J#2%15+)G52 M7)H3PDL/O)AY$.V[1I+IOMO;F7&Y#JW'4O^$((F^\FGNV7MH_RO%57,Y/Z W M/W%\ %WR2I*"+8#4GD;!A(CF9X-FH?A:7]7/N8(^1[^N&%1Z@0CP?<%AYF@7 MN$'_V\WE?P%02P,$% @ 88%H5QB%&ULQ5AM;]LV$/XKA-L5">#8EOR>)@&2ML,"M%W0 M="WVD99HBZ@DJB05Q_OU>XZ49-E.C&S ,""(Q"/OE7?/G7RQ5OJ'282P[#%+ MM4WA18\=DQ9V@\'@TD_XS+O7%TX MVIV^NE"E364N[C0S999QO;D1J5I?=H).3?@B5XDE0O_JHN K<2_L'\6=QJK? M2(EE)G(C5^2;$VK7=&GBR4^D&+V_BR,R"#1"HB2Q(X M'@_BG4A3$@0S?E8R.XU*8FR_U])_=;[#EP4WXIU*O\O8)I>=68?%8LG+U'Y1 MZ]]$Y<^8Y$4J->X_6_NSP;##HM)8E57,L""3N7_RQRH.+8;9X!F&L&((G=U> MD;/R/;?\ZD*K-=-T&M+HQ;GJN&&BZ+'AH,O"03@\(F_8 M.#9T\H;_V#'/-WJ:CXK@W!0\$I<=9+D1^D%TKMZ\"B:#MT>L&C56C8Y)/V+5 M<;Y1CWE6]C41[)W*"IYO6"J0CX;Q&(DAC=6<,ISQ/&:&I]A0RZ6,Z HD= 6 M-1Z@+OD@%0[F3G'Q52>^R=2*CA$6X;N)_X%JJ MTJ @<['F*2VL2/F%G2;:%6N$DJ>66\G1@F/X6/-;Q.PK@5$ M1"DW1BZEB!F'=K:4.:+0J"(BS$566I$M$*[J>2+*O9LL6&\*+1Z ME ] 4M?#WIC8$^:.A@%#PB3FD"W; KAP#7=>(M7E"A+K3)GF=>PY\6!AJ#1 ML.:479'2 )8J28'BJ(A5EZV0=9JG_A+V\AZY@68A* E)+8\B'Q** 2(:TV9, M;T:E,G:!-Q:/5FJBXA-J. \D):),/DF5,:<,W<\)S5&7+//()PCY#C,$J?#1 M>5S;0_XXV9+TNQM$FJ@4_9!,.W'V(I7ADCD]9W2#@^';_^WY-=%"[*#[GH_U MP<\4BQ>[JP'TR&[3Y2V M9Y1K=1DC3P@J'+;MZ0JWNL+A?/L^&C7OD^E6QVP0L*_* O-VY6QMF(1!>Q7, M=^R;A9/=]73D_/TL7/JYHJ&\7^7R+\K\ K7P9.WL5$N5[2]+3'+YHT?"M;0) M 0\JR$KXY&(&X4%8BT'*HXD8PFH@J-W6I'IY@2UX2KV%N0'%^+)M0V'CK]D+ M:E5P1M3(3=##J-8=CE%_I&D,4*@>A-[#F1[[]O25UV6,[),J-LQU^)P,175B M*)7 (A1^6L;.D6VKHO'6BMSY$B5% (]W.T'VE3=\2J MPSY'F($_CQ+FOP.%IRMVI[OME'%K$;+O;N2E_H4KP 0/CRA.VZIV.>41_,!# M@KT-.J$Y/3!JU)L>T,:]K?(#O;$TD2J!XE#A+WF_^[7[VU;-;,Y^:2^GK>4G M;DOM&5 5Q^0]/RFX06-[C?\:ZO]$G AB2?_.W5QGSFU"$7<])]L;L [&?2FW M,77D<7@+<4&7@ JD<8LT'CK2I$4:CD=$FK9(X=R19G59HU*6-/7LVS^?AQ5R M+DM$5="'C,S*&J.K\= <\$V[83@ 8!E4P"WJ#]5J=V#[9#H?G;([7\7 ^;04 M=!?'M3R9D#LW>C)L1VS2'2$0%./K9V^:0,4Z#Y^3VP"+.9Q]Y@V:MS"!AD(W M6]-"/ )]D/#MPG*SK*19B1N5 ^TVS9 /C@6AGM 1#1T>^-_Q-"J]^-*0@3!( MU_"U4%K[>436@6Z*27#,_TYQSX7FMG:$O(Y*K2GX!1IOU9^.A9;:5] >)Y\) M:>^ICZU^ZSLW$P!A^IJGX0I%X#]Y&VKS@\&U_T[>'O>_-GP"ALN M=-SQ(W*]L*IP7\T+9?$-[EX3P9$Y= #[2Z5LO2 %S<\H5W\#4$L#!!0 ( M &&!:%=A2B6PO0, +\* 9 >&PO=V]R:W-H965T23RA$UO%0E5Q,GU[J^]#R5Y%@QY8H:.:VL MA*R8IJ',/%5+9*EUJDHO]/V!5[&".].QG7N4T[%H=%EP?)2@FJIB)JXEP'E[/8V%N#WPM< MJ\XWF$R60CR9P7TZ<7Q#"$M,M$%@]'K&&RQ+ T0T_MIB.ON0QK'[O4/_R>9. MN2R9PAM1_E&D.I\X(P=27+&FU'.Q_HC;?/H&+Q&ELD]8M[8A14P:I46U=:9Q M5?#VS5ZV=>@XC/PC#N'6(;2\VT"6Y2W3;#J68@W26!.:^;"I6F\B5W"S*0LM M:;4@/SU=?'ZX^>7CPZ^W=_/%=W#WVY?[SW^./4W(9MU+MBBS%B4\@G(!GP37 MN8([GF+ZM;]'C/:TPAVM67@2<(&U"Y'?@] /HQ-XT3[-R.)%;TCS1)8M2/PZ MB#D?EZIF"4X<.@ *Y3,ZTP_O@H%_=8)BO*<8GT)_\TZ<1NF[L- B>8(YUHU, M?&XX0V[)2<76.<".JFO'-AW>C,!A>*9@))E,0*[@M))T< M(16P5-0:4V"@++0\0-=;Z.\-E,$(_2N#O8MIIX*K'T"+KEM3FXGW8=_U2=1E M:$9I8W!\T:#7 C;( MI'+AMI&M*RU1X:%J58]&]4":U5@MR74KW)">P:@WZH] Y8P4 VN4V*E#"LM- M-VEH"*B-W"TB,),A,&)%]Z3),D%3KO?AP(U]J,G%X@/=T=8PRR1FE#P56;.R MX]!W1[MZNW#/V_4>Q$._YP_]HRS/I16X%\&!5N_;O +?C0[$2*?7M%9"$.SJ M:&*_HDR-DN[$=IO_P:YG17&0+JM%\7_53)1[(Z"T^,9D57$&)*W*EVO0=D&V[U ZTJ&V+0B>&&A[[F5.'B=(8 MT/I*"+T;F #[GG7Z-U!+ P04 " !A@6A7"#ID#8\+ X)P &0 'AL M+W=OG5R4B9+EM/2%RM6P).YD#E5,)2+DW(E&4WUICP[ MB8)@?))37@PNSO3,%N)"FK/*=R<\DRL3X?A ,W<X7B_XPMFZ;'TG*,E,B*\X M>)^>#P)DB&4L44B!PL<]NV)9AH2 C6^6YJ ^$C>VOSOJ[[3L(,N,ENQ*9'_R M5"W/!Y,!2=F<5IFZ%>M_,RO/".DE(BOU?[(V:Z-X0)*J5"*WFX&#G!?FDSY8 M/;0V3((]&R*[(=)\FX,TEV^IHA=G4JR)Q-5 #;]H4?5N8(X7>"EW2L)3#OO4 MQ?6'F]\__75]32ZO/UZ_>_^9W/S^YN/=V8D"VKCB)+%T+@V=: ^=*?D@"K4L MR761LK2[_P1XJAF+'&.7T4&"=VSEDSCP2!1$\0%Z<2UHK.G%WRVHH3/LIX-. M\JI#BMU_"K/X/(PG;%/^DF13P4!U2J6 MSYBL]>L1M63D2N0K6FS(DJ9Z/!<9^"PO%@3,,/EZC-:?D@16@5-2[52KC!;E M*W*=KS*Q88SZX<=^OI!^/HE48*P!P5;]'K%9$[$7']' M;< 7*:K%DGR@&Q*>:OT&/OD#3I!6D&W*'F$97_!9Q@BS I:@YBI#91=*\EFE M&*E6>'(8_&I/X[)S%1X!20".P!"T=/N.4F)-95H:?MTCH%@N*2@'O]V\?8>4 M<[A>?3&$*D+)2O)$+YR,' <$K .$LH,Y!8X V+]")+FG6<5P'SZ8L04O"C0C MNU+,YTSB> 4?(B7"* 8UZA3I&#,K?/*Y5QJ"]L'Q;N=(8PWWO3F>BTH>YPA& MVP>5@*TPBPM(R1_@+^<9Q<,%$,1S/[>\ "R%Y]I6:NF,6,!CS9]$T"_)0M(" M5U:M6X["+6;32O.BY3."5Z6;N,PH.-A= D[ RN,/3"K0OECAQ1ZCYG%=+E*6 M&1&ZWKG6H0;20Y.'"(7KK%4RL'_GAJ(=,Y)_B="U# MRM&DP1?ZY ^C?GWB_)_[;_.0S>Z:I2/\@H0C_S3<.1#F S\(=N;?-I0 !$$? MN;E/(T<#@&P@#[!CA_Q*L^@TXXE-PCB<.M%>.K' M <$P_DYVCP^Q._:'^]@MT'6>H]T(QN-@\G.U&P[_/KM= MY883T.[D>[5[D-TQ>N,/8G?D@?T_QNQN*'XZL_&6*;S1@;KOSJM"LD0L"OZ_ M[50M$0A,+#,A3>R+4I@^O8C]*10;60;[,/;RLA4-MTX HOC8H1<0G@'$-"L@ M@9.]8MK8#Y?MGQJ\/B37:#KTXF#:43*]IQ"_,6W"\#^O5&4U3PM0W"%#\6T" M^1X6%E@6ZMD2D^./P+ ^.QSCV>%WI:QAV'N02U6!'] 6*_I35!S4]&:;Q]F@ MI*@TZYA%0>4,CSEJ C86)M'=HM;9[?)6?)!B_-*Y&-RM9"LAU79V'':38F0V MJ:0T*3>8 \=KTEEV'&^EOZ%+15O95@[9,L7,U.:I*%PO)%JC4YH8L#[:&-"DL-;EYM:LM=#* @8ES2[O= M@YJC*FUM$/NCK<> (>R>BZJ$.^F!I,"9ISZ!IJ#T'5,S=XB5F[%9<[6N@ K) M4<N7,Z*@6V6W&@KOLO MZ!F%M:IZ5, ;4Y,!&X9S4VU@:0*%&R_P3C"E%I4"=[Q'X] >R1Z83'AIF"R9 M4IF1>5YE /F%YFL.)';QPL>"-[%5E>52:.'A6)?4:]-$PS5>\!3[Z#.*-=PV MXFW*$LFT^G1,D=9]0S^NPY+5#B@:\5&KL*S@/@V'QDR=T#;TS&OW<4SG%<#] M@A4 X8AV,UWCZ<4E^ .!VJ4T4AXL"!VZ:"=U4.R.:*C;^X)*VX0',IVW%1TZZMV]<%(D697"GF 7-+1[: X. M^EM.4];K;7BZWEY[NE?#!@ARP-N-2VF/2(U!.(QN.'=Q:O?6#MTG.B S7(&A M@K=#D"U2='?J^B%4Z;3I!LH+4. M3_Z3.PSZ*KI&U-=D"#L(_D,Z#)K'EJZZ"-!3-9K:"2_]*66)7H@9M'7\XTLM MXU4[5;W;UV[L)*(630P(:$@P.X2!'ZVU.J:WM(L,Z+2FR5'!9D%.23&Q.,9> M*I*"-=J?D1@"2ZN1Y+5@2K>3#$#Y/[UG\MCG9WT73VBJ/+7YHJ],-UF:;U>0 M]&M' RQ@106(T>H,>&$4M,:3T; UBCW <04XCW':]:)>$-N/(G; MQ(.&P[$WC=M'A>/Q?N/$&J@H64N\D3>=3COC,!ZWE37R1N.P/3'L3.P]*J$K M#K6G-E[;U6M/E6*NUI@VM969Z%NSN*^W03$ ]JPV)EY^J[A>")DM@W]8!_(< M/4U":6,:K,]V=D#D-.7(,I#@A?D-$07074R(-2L;71R\--C60L\VV#RM\P&N M"^R;1N<_T,G<_OS4"B^?K&0_^\RZ^_?#"+RQE?K?);B]_Y;AC\2HDWI%G?;N M](;KU,;-7+ON,_RI6["W&%L)D=_F1[SUH+6W7OD+4NL:8:F;43&D[:[C_VP\?9_ MV=#Z6)]W6R,I.8JF/;WNL1\WX'.%/9'L6=1-PO;4]1VY>\)^W ;"<.1/0S+$ MKE8S.890\:6=P#AG[4!N9Q,-PJY'EM:B:K ML#"L=,9-9Y Y8**+&3DV(O0CW2[O-> MDV_V'PP;'.HVQ:[N_@7^N"X)G@F]<* ^3-:^_O2&9%78\JV;<>Z3S34D=KN/ M6*-OVOF=[E7HCCC^:*L9[,FV2U<^/CO7IG%.N&;]%SWJ'J#X+L30VRM2+[L!1RM:B= M74:A'TUK&#T=Q:UGP]B?1@Y>CB9MP(2-@3\ R*15(! M%:-NI-4_,\(Y[A=-[!YPS".%JZ?\OE=F3EIO,^5,+O0[6_J%B$*9%YOJV?JU ML#?F;:AFN7FG[ .5"\ \DK$Y; W\T]' \.4&2JSTNU$SH93(]=!2E*=BRE[D->)!+T4(U>O!P*<%E=(GMB*#+[EUI0QX=8N!KQS)+"J5>C >#E\-2JE, M;W86USZZV9FM@U:&/CKAZ[*4;G5)VB[/>Z/>>N&36A2!%P:SLTHNZ(;"E^JC MP]N@LY*IDHQ7U@A'^7GO8O3Z\HCEH\ ?BI9^ZUEP)'-KO_'+=7;>&S(@TI0& MMB#Q=TM7I#4; HR_6YN]SB4K;C^OK?\:8T:K6/OV+9R(XF/9'6/MBR50:"4IGF7]ZU>=A2.!GN4!BW"N.( MNW$44;Z50<[.G%T*Q]*PQ@\QU*@-<,IP46Z"PU<%O3"[_OWJP_MWXO/%7^]N MS@8!%GE]D+;:EXWV>(?VJ7AO32B\>&P[D<[S5X0U4B)L.^ M& _'DSWV)EUXDVAO\C_#:[2/'M?FAGCM*YG2>0^,]^1NJ3=[_LOHU?#-'FQ' M';:C?=9_B&V_]G$BM@V(:Y/:DD20=X+NT+*>0,X4?>HI$_.5.!@F)R"0UMP+ M:&81"A(&1D79E)"XA (%"%3.R755Z(M@A10'XV3:Z:OOG4DOL%9)!R.-PB29 M[%-X H9Q(CY#\HKMF]7S7T[&H^,WD,YSBDT=[3H92"P!8SI)1L^$-)EX,3TZ M3HZ?O7Q2O%&3G?8Q='S5>-"K_PP!H;995^8)27Z0/U;T$BFKR"D;;368*J

B:PFEDP+:1;DU]X0*B:1B5'XP(" #)_Y?472'09[F/&RH]0NC(JST>8\ M/'6&V0./C@XYFK9F+[3U_B6;=Z1E%&_P*1>=I=('8):EK4WP,=5YK75TYA/Q MH7:P:&^57Q-OPP7R3V0BEW>3 !F"4_,ZR+F.F=@1^N.5"S9(W:+F^&O3)N0? M+@#"GY.A7 7?!V-376?*+ ]$$@1H@O06.J@R,?BP<0NQ >C:7*Z;H5^3':A MTH);:KA95KG8(("BK36R&OD5,_1CZOVT0-]2VL8YZK>T7,1EVY8R31M4 M;#:U8+CA$8$G;[7BAL24EEJ:%'W/NWE33$=\L&*=@]'1)HLQM#F1V<2W5*%H M?3W,X-O/%RA=4POE2\6VL(?3R*311)( MWC)P'NR+7&F0P-0E.5O[^W6.H1!&?;M=K'=&1Z%VIIOD,07;X=]B[+&Q)@V\ MLIYX7VNG?*;B01>YP7GU>^TKJ17DC9+;/JO:5=9S:\<=!Y9KV$;JM"I5B+4' M^MHY,@&!-GQ$;M$,W>QF.W':MY-[/!R=<@WCFZX&7WOF248NG3@*K]D!.2V*CE ;/C WJ!#4I;299B[ MA0QK]W50.@X>E#:O465J >^&M^'[%M#[A$0O1\)NE.\=LSJMR"A6L C.<9 \ M]DKYU;J.03#B5:; ,/+MX'C JL=.O(.MBP>8OHC7*V8[]IKF#M*M=C>XB^;B MLA%OKG_OI5LPLS3E4!TFQ].><,V5JGD)MHK7F+D-N!3%QP*W4'(L@.^YM6'] MP@ZZ>^WL7U!+ P04 " !A@6A7F"4$V18% #I#P &0 'AL+W=OH:&>A\U18FN9W79/E*"*GE";=P/1(%S:1"J]S,$6:BOSI%!.]/&[U6M7"C;R++2]T)T>9N,,9VC^RZYQFW1HE MDBDJ([6"'!?'K9/>X>F Y9W GQ*7IC$&CF2N]3U/OD7'+9\=P@1#RPB"_A[P M#).$@Z.77W$5 MSS[CA3HQ[A>6I6Q PF%AK$Y7RN1!*E7Y+QY7>6@HC/Q7%(*50N#\+@TY+\^% M%9.C7"\A9VE"XX$+U6F3OH^T[O/ZOB;8$&VP'XW(Y-)D(\;A%]6 P?\#6Y..'WH'_ M>8>K@]K5P2[T?^OJ;K!1!W;@P:DP,@1%%"!5J%.$=J*-V8,,J7QCD2-( [21 M%18CF#]!)!]D)-7=%AW:7;I2($GQ@#E5-J@BG1.47C!(2K7H0 T021@KE$,B M?@$;(]N4.H(V/H9)X7::4E0/X3WHC"O: "U64*:8_TV%#E83561%'L94JGL= M.)>)<_JMP16&S; COR**+"E,.=<6E94B 5PLV$]"B=@UHB0P&!:YM)*PEK$, M8V"G0JW(KI7SA!Q4%-:FT?;:44MD;(K\:96<%&VLHST/*(.8<=004BX,#TIX M5EJYL=1%0B>*E$HK/U4>=>"61!8Z(EY_M-^8!U[0&S4U^MZX1QKGZZ/]L0LEH[PHH2T54VGT1UYO M-%Q/AUX0'#2GX[Z_L4M.3[?44I,@/"BHB Q[0&9M+D,>EB*%DI8$&A32*&PG M@8\9.@4JOCFSA"F8(.C<0T;=]GO]/K-R^]W_,'F M]."9N+]7'\G/XE0+7U9-PCK>2$L^P"U\X*J?;VC55A03R&Z%P*/+&@KB7J=Q M1MPK%/5DX1J #X#:D=&1H-[AT;V+HWJ MJD%0U8<:[6UC1/X_Z,.E5I]VTC3WJ'&OAC@@ZW("\?EN7$ZLP]YN;:TM/0#6-ZBV/. M K2_T%0*JPD;J%_WD^]02P,$% @ 88%H5Y8EO9NG!0 X1$ !D !X M;"]W;W)K&ULW5A9<]LV$/XK))!E6XJ7+L34C M*Y=GZF-\M,\0N9(P(0$6 "7[WW<7E"C*EI6T:=*9OI $L+OX\.T!@,59)_3]7B?G M0K9&QZ[O2H^.56DS(>%*,U/F.=2?PNX"5:7PS6LE4J2_4.$M/6CX!@@P2 M2Q8XOI8P@2PC0PCCS[7-5CTE*3:_-]8_NK7C6J;GSU^6S"SBX^7EZ?CV_/+B^..Q8G(O%.LC9Z6AD-GS$Z9.=*VH5A M'V0*Z:Y^!P'6*,,-RM/PH,$;*-HL\CT6^F%TP%Y4KSIR]J)_=]65T7B_44J? M(U/P!$Y:F!\&]!):HU>_!#W_W0'(<0TY/F3]GT(^;'389M]@EUT6H+D5:&D&U$SQB7#3]"%%@88GV(Q8*N%2!:H7W T!0PU MN4P$SYB056FA'!5H>,E%QJ<9,+O@EGI@R;,2=5(L O,RXSI[8-,'' :6+ 3, MF*KAI9 (5RYR_@6TQY1F,E/SHW4][WRXTP$[)9%CP+.13 M7#)5O0M,LT/CDPT_5![I$59?FPEG2C>>56.V\4DY%ED'Z MIO+U'D>;[_#T_&O@?IB_=YWR>/0] JD&@\<>>RRZ]E<<-X@/A\X[;YN^"+$Q MV7'8SM!;2J^J=AB68383J])QN)MM6]JQKLY!S34OL%P34=R=>5SE(;*;!<.5 MMHWFFGYW!F-&V"=IQ5YOXD"0*54:S'_SYN=GV]_.OCW>><9EWSKE%6"=E18/ MO=^C4OL0?5%_'QR\DX+*WXWEMB'Z@H6Q%_?[K#MH1- +%@R\<+A=5$RU8++ MS:#NZGO=>(AR3] .O6ZWN^4F;L R=A,[&"I9NHU8WXM0L"&[C67/#[:,8YFJ M7=>LXPWD<>A%71]-^CL+BH;>H/>X^[]Z?ZVF__^CKN][_M!GW=Z.D[HA.FG( MXN&3: L#;QCV]X4;16H0LZ#_#7$6A5YOB)MD[XF5J.<-XXA%VPA\+KX"3)A^ M\#3 G_@^6AYM_\W)>>_9GCPJPY5%@]8$F_;>TKMXXKY@ROE_H#;V:?V1I^+ MNEVOO@[>-/.OZ\7!L-F!?&'>'LA^+_3[C5:,U:9B/]O/7L-VS^LUO.DZ@G[/ M03ISAQ#:BYPJ'GZ+3#V0*;L]5%:[574_P4,#HL+3*EY9Z!#KH-ZU;]K[;G"= MQK4;#X2/U464;O/!7 \99, CL^4LIL&35#_U1G]!5!+ P04 " !A@6A7 MQ(292,L& #Q%@ &0 'AL+W=O,D=NN9N$FC.'V&2%#$A 08 +3B?GW/ B1%);*B M-..V#WVP18+8@[.+W8/+Z4*;3S83PK$O1:[L62]SKCP>#FV# LN5>_\U+>],^>GNG*Y5.*=8;8J"F[N7XI< M+\YZXU[3\%[.,T<-P_/3DL_%5+C;\IW!V[!%260AE)5:,2/2L][%^/CE'O7W M'3Y*L;"=9T:>S+3^1"_7R5EO1(1$+F)'"!P_=^*5R'," HW/-6:O'9(,N\\- M^I7W';[,N!6O=/Z'3%QVUCOLL42DO,K=>[WX5=3^[!->K'/K_[-%Z!OM]5A< M6:>+VA@,"JG"+_]2QZ%C<#AZP""J#2+/.PSD6;[FCI^?&KU@AGH#C1Z\J]X: MY*2B29DZ@Z\2=N[\ZN+Z/?MX\>;VDMU<7DQOWU_>7/[V87HZ= "G+L.X!GH9 M@*('@([8C58NL^Q2)2)9M1^"5,LL:IB]C#8"3D4Y8)-1GT6C:+(!;])Z.O%X MDY_W- #MK0>B,CFV)8_%60]U8(6Y$[WS9T_&+T8G&VCNM33W-J'_",W-0./1 M@#T QJZX-.R.YY5@TC*7"2:^2,=*(V/19]KX)E[H2CD\.H+&NA'K JN?0?G.'*IL(PSG+)9S*7[IY)17VU283)[T,7'BIS M)MQ""(6T-I\ 5'+C9"Q+KIP%-M.IIU,(;BLC( B.)=R) ?M K:@^6>:"2%1% M27B65380#!ZF4G$52YZ#@G6F(@0 &W(&)$WHBX&D*BMG^Z"9@'DFA>$FSNX9 MI*_^%I#A22 CU9RE*Z$4UO%9+E&/23]$#K4J"_FG"&&&/?FC9Y0VZ"D:8!H3 MY?UMUTI]VWEV#^J?*^D)^%%\@+1U:Y!G(K!>9 @QO^,RIZ\#]O:;G@@'B>5* M*-?-24@&XH=(4,X0C6X>+">=!#-ANIU;3!P'1X?5 NVIT04P$H$E)J%YM;HR M,?Q?9!*TUKG>!0GF) Y:BG,^A M5SY507+%$G78P>^D>!/7R6I<&V /MC8YX'?@H96@X0H-,ROG2J8('"JD<;Q) MF80038#OULN 43V,)B=>)5.=8_?E<]E31>W0RJ5B=: RIBXSV>@TUFPGBAGFI%FX@YJ^QJH1FL>^.0K--'8P3_V:H^V* MS%OV'/% IYV\_%GHFXYH-6UO?77_+/)UJSHM[K)FMW%E-:G;6(0::4<)==F\WG:7 MKKHKE0-[7DOY3O,4[32V=<-DA[WB-F.TP*/@?)Y]-WJ0B_M&@(K*5? VK5 S M;8^G["CJC\>330V^_J.3-2W3#$OMKA.&ENL[;'+J\FRW$[N8MUT+MM"X&=9Q M4@>OY#O?Y7X[F [8+QHJIOS>;FG+GH^7YI"2@[V]AUZ_IMZ\?]"N,_%/V7B\ MWS_1P4\/#Y;:E,C2_X_[1T6C+UDT5_=B"]X/"USIRU-_OZ-17K]L*X-%! M/SK?5-PF&SD<)ML]T1DW7[CJ[@89Z(#P/1(>7I=$X5?L] M.) @BIWM:8(_?XRB=KN<1W2O =K-)_;,&8>2S.CV06F&2E!APA4H\FX_';42F5&9R?QKE[=WYJZZ"5H7LG?%V6TFTO2-O-V>!PT$Y\4:LB M\,3H_+22*YI3^+.Z=QB-.BVY*LEX98UPM#P;3 \_7!SS_KCA+T4;W_L6[,G" MVJ\\N,[/!F,&1)JRP!HD_M8T(ZU9$6!\:W0..I,LV/]NM7^,OL.7A?0TL_IO ME8?B;/!^('):REJ'+W;SB1I_WK"^S&H??\4F[3T:#T16^V#+1A@(2F72O_S> MQ*$G\/XY@4DC,(FXDZ&(\E(&>7[J[$8XW@UM_!%=C=( IPPG91X<5A7DPOGL M[N;F^N'FZO9A+J:WEV)V=_MP??O[U>WL^FI^.@HPP1M'6:/N(JF;/*/N-W%C M32B\N#(YY;OR(T#K\$U:?!>3O0KG5 W%T?A 3,:3HSWZCCI_CZ*^H__+WZ3N M^.?JN&0^^$IF=#9 37AR:QJ)_V_PYVO[K#PZ'8JU)@ MMPRT4IFXERX8G%7450I\Q*_$&H+M_^78- I5%+ET9XX78WH>B?2 D-6.I941F36F:8LQ6_ Z(\J1!6Q= MH97[Z'PIT/7A@,H*'F[1>+8,M?.&\J%XZ(%$?@0H0,E,+TRMW[)EB4^&]T & MQ@ DS(R8%!\3'O,B'6,0WI:$H/@*$EXLG)4Y.=YA8N1XGBW_ **GKC&2HL)" MEV#JAO6O",R6&CM<95T2Q%+R=X];39)VK?&E#KY5<* VN4N,PQUVZ2)0M M+$B?J X;"@=LD*&&3GRA_T O9_L9"Y%Q*42OG@_.7QW$I=;_]LYV*A=A*D 82V5CF[$FP6',XY MW-+_R.ADA_)?L]3&=-NW"8J4MF9^9*S8)7.VR4><,YR$W6[4J/3"JW\H&FM8 M^G0=T<%5P6V'8J[8GN0K@BKK$MC;9OFTTZ&A&!LX7UIE*NAM)!(]:Z/MEXXW M,(GW% %#90KA?@0VY!QF5KF46;.8*9?5)0P";5?4S&_<&UN2+&NFF,BT5*5/ M/=NNN29UYUT*:NN9[1T,F33LW8(>\[L5.(Y4R3X.<+7;(C M__SF>B9N<85]H*PP5MO5%F>F)XDC3[R4976"QK3&#;J*)^RK.0IX54CU&@@? MV],KSM5D?,+:XN?AR6N1UY%H[5Q,Y1+TY]!BOH++2T(.FGU]KVO#_51R6VFX MR>W2<1)WB\03?8V5B_+@%$4MM:FDRJ-R5"R8@$0V0%./Y*!%Q_LPDDV6[VRU MA&SX\,HR)EV7%;\D6#+&!$JH.3);R=>I4V36,^N\MUG*84J' M"5Y.L30?ZYJ5/N%!@51%$J!=%*1C$7VDA:MQEL>KZU!\5$R"C5,AX$+@ZP5Z M:SJ$-C@OTT1@>&CQC E=(O7E= ^)9;04TWJ%2A^**0F^(DMPJOI2X7:' TG.BF^T>8]/T!GG< MGEYR-](ALH@8+2$Z'KY[,Q NO8[2(-@JOD@6-N!]$S\10"2>-V!]:>%&,V # MW1/U_%]02P,$% @ 88%H5Z&ULQ59AC^(V$/TKH]SIU$I<$L+>+MT%I.Q";ZFZ% &] M4S^:9$BL<^S4-G#TUW?L0(YM=_E0M>H78CM^[\T;9\8,]DI_,26BA:^5D&88 ME-;6MU%DLA(K9D)5HZ0W&Z4K9FFJB\C4&EGN096(DCB^CBK&93 :^+6Y'@W4 MU@HN<:[!;*N*Z<,]"K4?!MW@M+#@16G=0C0:U*S )=I?Z[FF6=2RY+Q":;B2 MH'$S#-+N[?V5V^\W?.*X-V=C<$[62GUQDVD^#&(7$ K,K&-@]-CA PKAB"B, MWX^<02OI@.?C$_N/WCMY63.##TI\YKDMAT$_@!PW;"OL0NT?\>CG@^/+E##^ M%_;-WAO:G&V-5=413!%47#9/]O68AS- /WX%D!P!B8^[$?)1CIEEHX%6>]!N M-[&Y@;?JT10H1TO&G=+::+%>0SL:PF/Q,D+$'_ :$GRW3A]7TE]ER$%D*R1%'V5'^ MOI%/7I'_ 9Z4M*6!B:N+K'_]^8NRW>3 M$/[5$& JX:>M.+C#IT_ E@@/JJJ9/ !*BQISX-(J8""4+-[32@7&:F:QX!G4 M3%N)VI2\IB*T):3YCA',6&+1M:)]KH_84JMM40*W!O:E$N+P7NTE49OMVO"< M4VOKG$'3"C7/6(=BRT+XCNK5-Z0=4IC4@%"[J"BFDL+CU*4,O'O33Y+XKJ7P M\^[=]R&DDHF#Y9DAY [E%NF9J4+R/XACHU5UIKLGIK=)>$U-0PC?_V3N%OKM M0K[57!8^2^0)$:JF%-&5(E A6:S6J-MJ\@PT2#HD:^J3BT[#?!TFSZ7Z8?4V$58ZO.8&W<=C[ M9L&CQB33@+H>1!_L^'1FIR-X1D&?=/=Y&F[.%UX)I4GAW\3^XOZE@H_..C]] M:(6_WPSX+#670+O:7J%I? A -W=:,[&J]O?( M6EFZE?RPI+\!J-T&>K]1RIXF3J#]8S'Z$U!+ P04 " !A@6A7K H=[%8% M X# &0 'AL+W=O>\A<[W5Y@^;".%HEZ7*WK02Y_++;M?R1&3,=G0N%%96VF3,86C679L; MP>)@E*7=?A2==S,F5>OV.LS-S>VU+EPJE9@;LD66,;.?BE1O;UJ]5CWQ6:X3 MYR>ZM]T")92:4E5J1$:N;UJ1W.1WZ_6'#KU)L;>.;?"1+ MK?_P@_OXIA5Y0B(5W'D$AI^-F(DT]4"@\;7";!U<>L/F=XU^%V)'+$MFQ4RG MO\G8)3>M<8MBL6)%ZC[K[<^BBF?D\;A.;?A+VW)O'QYY89W.*F.,,ZG*7[:K M\M P&$??,>A7!OW NW046+YGCMU>&[TEXW<#S7^$4(,UR$GE#V7A#%8E[-SM M],OB_O'#8D&S3P_3^\?)T_VGQ^NN [)?[_(*95JB]+^#\HX>M'*)I0\J%O%S M^RX8'6CU:UK3_HN "Y%W:!"UJ1_U!R_@#0YA#@+>X#^&6:(,3Z/X!KFT.>/B MIH4.L,)L1.OVS:O>>73U L?A@>/P)?1_S?%%E-,<>X,.G8*G3XI^*=(]C0@G$(_S6!^9'RAZ8#Q!^' P42S=.\EMF^X5[U "??I:,.-MXJ9[ M1KF1&T0#FHE(8PSU1L;">'>L0+MA#189%(F81[72XB.FE6"N,."SD_6B1Q.'?3&.1\>!S:T9@,-S:&(KMS/5+$"D\)X%XB#"VN%#3Y"XKSR&,N=O MA$ $KN.".V1P)3P72TZ3@B#[1;&3UGF"=2Q'VDAZJ7#"6,\)SK5#7CBS"7&4 MAS\7%O)3QN1/HE&46V;I=:\SABXB]5JUX=2S* 'J8FH'8X80JX+"U60=J'E2 M57%AY9]KZNF8&8!S72A?*2>9@1BC96$!9"U"R992E8%(%6Q-')*]E2ZAN\EB M2I/%C)YTCM,:1VC&:6T[.]K:P "!:%YB5?'DA>$)+B9?V5R<)-3VC*KM,0J\ M_GZVQ9OXZH&#K:6W8.H275AD"AD0.RYRU%VF4?-_EOYSG+:.SRZ#8$2#J__M M=]+TVIC$"= \D*"WOZ/7[!E-GJ5G7J=F[E-S)#I!HT"NZN$=DX8V+"W*Q#"U MEDOT"RMW(1,\+4*YA,+"EM?]\]'9P?PU#4?1-R#0@^]B,8TJQH##Y^T//U$YD?&$$@ZIY^TCD/SUM/C=R-Z[$Y02;Z/*OX' M53WR[;>'HQ%]E&PI4YR^L URZ&&_V;$=I2'\=QH"@]8 MI-/BO1:: 4=@JL9*V$:0TA!<(5#7_MX,S;T4G!6V%$4!=0LB]VWG!!WRQO[J M,/XR@/R=DM$5&EF%VZ)BT:%3SX9NXS6'"EB'-ZM7$22X?-@=9@_/XDGY&CQN M+]_4#\RL<&=9EA6Q\ '!Q 9 >&PO=V]R:W-H M965T=-EE<_/%C7]?:[QX^K9&TVNIH46Y/#-\NBW.@:/I:KQ]6V-#JE09OL\7PZ M/7V\T39_\/Q[>O:N?/Y]T=29SV]6ZQ@>/ MGW^_U2MS;>J/VW$ >N-G:VZKZ&^% M6UD4Q2?\<)7^\&"*$)G,)#5.H>&_&W-IL@QG CA^E4D?^#5Q8/RWF_TU;1XV ML]"5N2RRO]NT7O_PX.R!2LU2-UG]OKC]LY$-G>!\29%5]*^ZY7=/SQ^HI*GJ M8B.# 8*-S?E__5D0$0TXFQX8,)>'YC[7+TI\GI=J5=Y:M+V^,< IP=V M[H!],1^<\-IL)^IX.E+SZ?QX8+YCO_ECFN_XP'PO+JZOKM5/K]6[]Z^N7[W] MWZN+M2W7]\:V3^D2(R[OJ _8KIU(>U M43:O36DWJLEUD]K:I"HI@,YYQ7]5L&"J\?'2YCI/K,Y4!<,-B'1=P>@D:X K MU-J4QN9JK6^,6AB3*\#)5I?PS6*GWKT$_!=9@XM6(W65)Q-U5,/B?_S#V7P^ M?799;+8ZW]&GV;-':MN45:/S6M6%PM?*)C.5TGD*"F359 0\[0:_O#9)4]K: MRANO/B=KG:^,@DDWMB*U Z>NQ_\[49>FK$&APMRL=DE] MP:AE4=1Y41N5VBK)BJH!FJ@<7\E@+8]2BV_G#2"\%_4>P?A>DA1E"N\8T#OU MFCXW>8V;VY8PH=TB E)J2HP M0.H(U[ 5;;;(87,PDI$)@0X VP@B14I@]?5:I"Y:%?5'\ MJZ<4[E@9M%+J)2!YLP!$'<_(SLQ'L'P&7W@001G@+&]TF:P5OW3\+1A:Y)?1 MP'+H=97LB39MX?'MN@!Q'!>W.DK'L'*R&52W(!*52IO2^0<\B%!*&G>BKNTJMTM $T 6D,$H!6)^ MCFO1 M*B,YBGPUSD@%N*5N=-8PY^)4$&"9$@6XUI\='9U7]O+#117<,N*FP, X.#,: MI6.1V946%Q("JN33&.,XQ.\&Z<6+">U&@@'XSM":8*'8&_..HF6HBU/H/D5%C(U!Y+F:L MW1:J*IH2#-1W8,*!UKS?UQ?7+X">GH= L>6I+L%+NBQ2$MDZC@HNKGU4H#Z ^YFHT^GI2-T+ ML4$%].Y_V\( PH#+@M-'E@,BMV !ULT!/%"^(:0 1J&S.H( MP4F;1/0>9D[@&U3JJ*SAQ=NU!9<<,9)27)>P/<,'0BT)A0 M%7M(!SNQZUG75F:8Y0>MBY(Y[(WD;#!OHG1Z. GE7&4=^"$C--Y?R,BG05V%/X MTV29^' P@\]A7+]SVFH2*52GK?95+$R_YYX']0.38QH7-@&&#AZ %G)T:E&' M\!T#5RSK6Z3($5.+F RGPJCVU6?*]X+DSIX^>3;X7TO+]LUOJZ#UP2 ;,.\I MA_HHHA0+XXX$:(+#E%M#QAS#0KLQ["=,U#O_Q1$L,<:O5++6Y@-?FFVLZ'198N*)A)JT!W%$D3'++%%T1/,EWGQ8'NI7C;;AA)A\*F"9 M.S@]$->3C&C*05/$SY,VSL'9J,>>=ZMF2^%U>_?%C6 Y\#@H+>;D"AZ@OANC M:\#L/(*@,-'@J;;$B-70C27J'=E'?BUDLR,+#YJ\VIJ$%&# 2+--.2S!Q1"M M8WA_#'C3-]IFJ-1$AOJ![.PVL,-84)VV2.YD/;U+BLF];"')6&)&C'T J: D MR9 1PY0"''[0E4B?Q.>.XNC% E?F7=S'G'>8JY+@ROD$1S]EPSK1(L!7@,E= MC,,-I_B$TFT5UZM4D<:1RF]K?%F=#19GL(+>]UI^R'JW-;\3AFSW?TW!@_X& MFM:E731WLUF'>Z^UOH[5#%*;;24RE$^#-9Q+ &%)P&0/ MOD]#60+OS:8N@8EX(#8$%!=-W5)EF"FF+8*&P_3 EH+&2AC!+3XB&>O:<$T> M35+:[0'1TI%#S9PZ&E ^GHE;L\H>%F9E\UP,B$\;1&H3EU[:LJHY0 Y:)I:R M^PH $XSJ%AEIE?]G^B]F^I>OKU2U@PAIPQ[)Y<_^XU&HX5R"'08\=]N]_4**.6$ /%*FU&#JI40NC;8 0VV)F!=NY?S%?RW/='&+ MU,9,8FD.!P-^"J MHOKQ# ;&F:HVH%R*<@SZE"*K;>.5ND$U9AG5&WB;HU" "Q76QFB7("537Q:K M$M0M8.F6$AW1RGNV^T-(*,KW=T%MW82?.29H%K^81%+!P!88\#'SD:A)UEA5 M48+TER9=H=2 $\[9O!(3@LX?=J%--. O,L!E!@'Q2=@. /06"ZBH%9=-2?X$ M$KLABS,YD%)R:F4PX=0;+W4S>$O[&3S(I0%$YBO)C,ONOZ&&D=!*ZILQ3P(2 M_J1M7JV1"\MBIS-,,8"JVVV9E_?7\;#?:L1\M>9,,>=,,#'JK#=EKWF#+-5Q MJHD \@N2$#CJ![7=Y"E;X(HX$WG%IVH[4Y$69/7EX@RPZAP%)!V_8Q1MCY,U M!*5",@2O=JMM*LZ! :\7Y"AM,G8\_NLD^7>R)YR-^4_9 E@1BRT;<,.\PO"T MXXC2N$)T;J(Z](#CP"6J4L!#"R/M\1E+<.PB4F&?6L0XOO+3=M#K M_WYMBP8EJ"-$J::P 3#2KVJ#$X+A@-\12;+SE"7':($&*)2"K3YEC$5MRH!B M9B?4PWP!/2AKY^*+7C%YBKD*Q^!Z7U?NZ>2@Y%HV(NR>$S>N8MEL#Y2 0@:H M1*E [I/Z%);*..CB. VIP&!DL'(&SEQ8S#5_X-^AO(MA#S"%"?U3(M [US\0 M!7J1&LS3PTG4;A$&-5. @V(XHI'H>;80NS:2]BR>I^H!"E+FFV) '].U0Y>^HK9T\'2ULN4ZY>2(-%7W7L"Z=HX5&075$G2!SY ML?V,:Q&="L]B)ZD5Y!L?V(-TA@2;)ZO%FJBTQ"TY:(QJ ][#<7,SJ6ML.5D= M$K@6EX"8Y5(GK<)T[0GVY$IJ']ZAD#*HD+AL%WK0+B3&WJ"*&,5HH3JR:I=M M7&/ KLVS208O8V:Q"A4:43%QI:2#JQBU'J$N[U:RDHK( F+@DH 1R!T ">B) MNHC?("UX "9V*I$IL*. D*(SK.23D= !BM8"#K/WF3F:EQ76$J8I@)J%9-=U M+H6LRJMA<,<8P1O]"\1/7';J570ML%#=N=:[)@="95$;1J3Y8_?3*>THNM(+^;=).S'3FP M(KLM)*V^X<'!>&0G9C+:9U3RVR7)&[Y$50],0G6S:VS6X<8KZ9DF$'HZW$CR MBEIG>_N*FTJIJ\A&;2XA)^NWZ$;Y+C;?0G:?AC' ;JD#\\F,P5^6^:R>@^/ M)\?N 4;;Z.BCOY=UI#6UU!,H&*;$&LMZU(+"A9NJZR_$FW;YT)[&S9<=\C 2 MD%.P!B:* -UP*C2'/+E[6V(R5XJM+?$+*BMA9IO?%,"UW)V;WHBN[.T+B/DI MA"<]_$UO)R!MV&5"0S:H2O;W0I)-S3F+UK11/U/5)"@H]/'69#=FO,$F_[A7 MU?-WQ/M=MHZ[JC821%*C%->=_12 !>:PO,C';K*XB>NK6>VPE(R&Q"2&PP$, ML^SO+Y:<0\#? H8>S@-O,[//)N>'F/W]ON)BFNGV@NR\_396#?VAK&2B#/B2 M0[)N;QOO9W;@J+*>L?/DE-Y]KZO_"MNPJU"495RD' MI(N.$ **')#@Q#6WFL0AL@C"E\C/!911.#Q;'FP+VJ.\(" ZI\!C4:88J#Q M#$(L,+1"?X$S'K+6'5]33(*4^TKRH<"JS9JX:\HPR 32A6.Y3=1Z M5W$+&VG29!T Y1>/ CL*>CUJ:PC]_).[>#?5C M.3>(E < GY3<5[M4#V/%3NX(=7.%[R-3]FT5?W>A)QTCVOU^.GGRS8W"!\[: MB>,6%WY2>RT8>[O/]LOE8]X2_J/L\M$:3TI C&YS-N+B^Q+9:\%9#.E6R MG*YI4?)?48V /4+IR^YIJ 6^8.'I7\P' -V@-,[0NC-6W%E&S>T!AK$O14B7 MIO1\WV#+',!*'8MX=) \+*ZSEJTJR('Z!^=2HRC7(BHV_F1FT"!16>HKZQ<= M]KQ__4)>_7=7,5[^?@GVT4!VG=./<@"F/[O^5[/SR1+4LN9VK]N.ZAXB&()J MBE0))L/^=XA;2^-L+A&#<[+2K\.#W?D4LE8N17R#(F262SSA+<<9KF#CMDR: MC? FS&VI(4\[=490%N"=6$S\!.&-3L.,>%$R8^#,R+5]BL+I>^))9Z4ZNM<'-V1?"40NE5 TX^9E-43'2YE]O(O*R?Y- M(^4FL,G)>MQL)8$C@5=?DKF-4\+F"H_(,G)=+, 8!7&;MQ(<>]FQ MKB\N:55?2P8OP%;BDTCZT7L,ZW#Z]%!G%/&J M]'Z$UO%ZW73[SNIB13"-[A+R5ND#0,UV81LA0YRH/=0?26W# CD4X*2R0U9J06B&7NDNWIR?5QE8L9 MZK@9F1";9:WNN!C3K9G"V1?7O,.6*#[\[L\T.\8&3^N3J4,&.LY%1J!S-;U- MB@XN)548=46$\T'W+QNI%SU("OE@CR[.W;LSOBC@F6%^D62*E$*PLA.$6AQ6 MK584G/_*UPN0Z N4U%ZY+!'6<, =Y2K%:),"?;8SHFAX*3GJ%ITZ)IW7 M;9[")LI=UV'OK6"!1#9H^IFD)K^Q99$3 V1&ESGE,OBX5ZB4[VEYTH*$(^#, M"ML7..FOG3G$A#*2@L\*2E.D.+6.?3R.B)PF'$6.KTL(R6 1&=E7. CBIB,3 MTQBTAE%;2 ];N6.T0^'*N0]7S@?#BW=()J+N*_!M4DNUP<.QRGTG,VZR=G7! M23$CZ$"*SZ'9G^7$0F1L(>2\)N6I7?.1KTSY;N/ZULBCT*\?G&2TZBD=I8W; ML3N5*K;FUZ5TC5PWREP/<.>U>BH(N MF?B2',$04\^FX5*FZ2 G7KBSA>^C O9AMK[O;%'EN.^9QY,(JF]V"A579GJ3 MI]&I4.17_VJ'==RX<-K0I,YN:36;MXI'$_71+[0/GG-#C;^X9N\%*F$:K %T MTT%8E#@)3[ZT\-/.^PQ!&3"!G'HMBT24''@_3;G&D]> W M86&(SZ/+QV9W]+E(7%LL*(5#F>QL2;<#>$'NY?AO,&^[ST-O+2"-$O5LTR%^ MI+1*%J+OP=DZO39QU,1>M5CLQ%\OY5(%["8MC:&^3SX]S)Q3.0^52R/*D1=Q!$:Q[8N(/E/]Q;\,4,S\T(\\FT6Y]]>K 9X3>@X*!(_PX[/FGO>!XJ MNGN5T9@1V2A4[MX0K@=/N[,=R,5_@VKPK+O4+"I%?VW:G]P=0 MN)B_B5A*\ MX(330W)[F\]/(VUC+CC<43*D1^=!C\Z'L^QTJ\D+GQL]_M_P_$Q_'5EQWNXSWB1KHW*_S%%BZ^@,B] M_5#-1K/Y-/I\=O(D^G0\PO'A\WPT/WX*CB8$Q'BA&7O4(%,%7PCD@1C-SD_C M3V=AB9/1Z?3*G9Z:DZR)S.$H;MG8S.S\];GV?'IS&R3D8GI[/XP1-\,"26X7K1V>!-GRQ# M>&LE'^)1[T Y#XKD5UP<&CLQ4?D;0_0@;GB2%I-;@C+-M1626E_[PB'SZ6S& MR"588Y4I'D(X9O,/3WI=.6[>>Y,S[ MB#2?M<'Z-G0*+E]([MS2K<;(,GBN9V7BB\!&DFSB9.U= \,NZ;ZB?Z\*OJ]F M[?Y/_!1]F%-:B<*TS"ZQ%S=G,_-H;^AL,C_I?_AS@=X!7;'3_?[)\02TV?_L M/S^;/#V&Y^]M]6F\1&F@"QB!;R@EN??^R61VTC/-?/(4'_L]I!8+.R N??N? MS?OQB<__?IB:0SR[SY:QWIT\G>TM",^GDZE7]T,"':Y:G W?D/C6U*B#L:)V M]"-X;(_P/A=UO:9K!0;D>7A6O!@YH>9MN2SN**.YMW1&TI_HV6P;:0\BY",Z M]L;PW<_PRI[0Y VQ+!>C-YBJQ9G![CVG-'BFGFTZ%$ %-M JJ;<"7*XR/]H1&VQ6RHI)ZZ"'.)> >/6UQ,! MNK&#:-";#S?OS8;OQGN-PO4S"=<;;H_8W)'7OL^$+*W2AX'-,YRO'KD;@'TG MHHYV)_4J2BE024_GX?0,!>QQ95F'4S1\020G><%!C]/D+K8U*E)^MAN?19(+5?8JDMP/!)[P MWJM-OO_R8B?E%V9&TZAT3GXFX]%-$&70^)(T-)]?-/DLLM4SG-JV,Z!\X@W,-Z>' IRA325,)_ MD@>@?HA?,2QSS.D:G6(&RBE?@.9]418Z'-3\$?]7,S4&N^7A_+4IN'7'G<[C M'[2037)AEB\"Q J6)& BZE!W#\\\'YJ9"KQR:KIW%A'MUO*CGDD",/>9T6VC ME3_G-48.Q]&YLO9R?E#$0=QRAY..@;)EL2CX.+',%5\CP&=-YYO"6!4MLL!PUTL=%*K=QQS(ISEA64I4)T$SN MXS&% ZRSX>.G+]!&8C7],KJ)<=#^#,_7*A>VFVFHH3P!Y5;)F28L8B_<^O&M M2 ?O:[V^E-M7SZ8G(]4+^Q!60F?L;+B5M>]BV$&D#$^'I3V@<.]UL_T/TX(N MW[[*U5^:G(+U4^Z^>.U-7N_ %P5VV[E[(!%IHCP?@0VK\)A\[["/U)X5W7;[ MT=]V^[:8T/+CV?$H6OTJ,KBTQ.R9NN2[H'^D:[W4$5/J>'[ZZ+O8N4'3UWX3 M*-X_<01/#$>X"-H=#797D$>KN)/AT5D 7Z)K75HM;;9N?=%::SK4'U].3M6= M5MJ3 K6DWSHJ[C*0&A\D@8[ M[F9Q>D^Z\/AN!- IX,=2T:B-,MQ#IA/C7<)*8GDNZ$AZ.Z2[HRR!QFDQBS3. MBN(36>4>//((1Q%J)0GMFA!&9V!9N_1HD6&BKO?N)$"6=:)7S\?3)OVD547(S4'(OT;)HOA@( MZ?UGDZXHV8H?Y+WY2?_\77 /O'8/"58?\"0MTOP#NO=,PO<&J+H<[9.FM>IL MVK_H^.!B!S?M7@+$R"WP/W+CKWO^9"[/VQ#,?AN5VI!R=!)=H %K5>[NN*AM M.BGH(D7Y;047ZZP:F\I]3UV\36A-H_EF9SIN LYSB&E0W5"""P-=<+#L4GXD MA+?#5\9'%SS+68D:=Q>5'Z4E8V_QEN46^T,VNQ(S@2KO+SIOL-]PYHJ+[B@! M'URB%L"Z+%RUCOO_=;+>4]5Q;_58 NWN22>));!7CHZQAHBQ=3XURB5@ U;* MF0]67N3!^U(_G[:I,UU-$OV^DP\W]J":3^M#%_5_PFPZ3 M?F/\%M;\![B;S@EX$WY88ZVC0P3L(I?D6^#/!+$:;/VP1Y$7^*,&THC%+_ 5 M(-NB"N<04(U*@Y7K>UN@;..^\UU4ZCTX-P*VUC0YZ?YAG'T)COK\NAT\O3D :B,I14= ( /X% 9 >&PO=V]R:W-H965T9E MVLOY?+[O\W=Q[D9[+MYD#J#0>T&9'#NY4N70=6620X%EAY? ],F6BP(KO169 M*TL!.+6@@KJ^Y_7= A/FA",;6XEPQ"M%"8.50+(J"BQ^38#R_=CI.L= 1+)< MF8 ;CDJN&D9_)MP@N!O3SQD:EDP_F; MV3RE8\9* SSUC^P/MG9=RP9+F'+Z2E*5 MCYV!@U+8XHJJB.\?X5#/M>%+.)76HGV=V^L[**FDXL4!K!44A-4K?C]\AQ/ MP/L$X!\ OM5=7V15WF.%PY'@>R1,MF8SCBW5HK4XPLRCK)70IT3C5!C-7F:+ MYQEZB)9S-%TNXNAN&J/7I_@139_7\7(^B];H:XPW%.2WD:OTE0;H)@?Z24WO M?T+_ \TY4[E$,Y9"^A'O:JF-7O^H=^*W$JZA[*# ^XY\SP]:^(*F_L#R!?]0 M_[FR:];>>5;324-9X@3&CFX5"6('3GAYT>U[MRV:>XWF7AM[N-:=F584$-^B M>R)QE@G(L/W)=22"'; *SHENI[V\&/A><(O^]QKG N##?X'TJRHH-B#LTRZT ML+;S(Y'Y!8SQ6R++G08I/4::2'^ OM3FIF>,I\V*$Z:N"+NRF8&O0];X?>.9 MC)@K3%'7,_Y?]MR;NB<]68#([.21*.$54W5[-M%FN-W5/?TGO9Z,&ULQ1C];]HX]%^QV#2UDC?RZ21=BT1INTWJ.C2XG>Y'-QB(EL3,=DJY MO_Z>'4B<%KCN;M)^P7XO[]-^7_A\S<5WN61,H< MHU(SVON=]!OC._AR3R4;\?S/;*:6%[VXAV9L3JM7KCVSK3ZCEI3R7YA>M M:]K(ZZ&TDHH76V:PH,C*>J6/VW.P&&+G (.W9?",W;4B8^45571P+O@:"4T- MTO3&N&JXP;BLU)CL;+[VC B=L M]0[Y#D:>X_E'Y/F-S[Z1Y_^DS_MO8L_QWZ-?M<(5*5;<,V'N:8>]8ND6Z;9(?8DVX*$1+U:5 C*V5*#-5"8;1/'O4&XG-T3W7Y.$@ M<6TH#M M@WQ?\GR&LF(E^ /3'+(A(C@(B0V1"-W2>RZHXF)C]'"UW.M7@*/( ML:# =]&42;7/L C'I%7CQ3AP_"8>GGB3E0@,78"?\NQ?+^WJYA-L@]A[C^1& MPOTA*B6S'&QTNMBU+JU!>]@#NT??(.*CH!72^/U$',$)\:T;:9G@.@L.R"]06%Y7>O(S,W09@(EAO?Y#);2>2BM\AM:\MKE.#0 M*D&OT4D$.>^<6A@/^W[8X0B7ZV"5!2^YC8IERXB:8!%&'/(EC-!44KHT6S!1% MI2$8MK]+Y'6==W&8Q*VT)$E:46&2'*1SXY:.Q X:0TA"T)"N= ]JNV/9BB-B M':L?'*$D"6DI R= =[Q,84!@*JMK/32W;1]NZP(TL59&[%BZK \=HC"V'/&( M\Z0A/%VA'\281+%]]3[8GGCVW;LP \3VK!)$&!393![$G.]WF&+LA.&11D.: M1D-^MM'D^QM--^^O'^$?GF3[&L]QA;\[S:=+"(7.GXT#<^@=&/X2.M-K3%MI M=YVC@I.EN_)H)796IGFEQ58@7*"42SACH!50!NVPRBPH= >.2#X8Z<+ MA\EA ]J2O!NTS'^04O<(R584QE"6;SHVF6&QON[6*-]K(]1WVWT2M64@"<@V M0^C+S;'*IN-94!RY%N09+SNP+:!9 M+\S;C(1(!>?K!XP&VSS_#.M7CY:\?COZ3,4B*R7*V1Q8G7<13,RB?H^I <57 MY@WDGBN8#,QVR: W"DT W^>!L% #_#0 &0 'AL+W=OKE*[5RU[N[J/)AF(M4Z$0"GJE]-] M <_$\Y[Y33+=*/W+) "6/:N9*(&4FZ[*(<,G*Z53;I'4ZY[) M-?#8":6R%WC>L)=RD;7F4\=[U/.I*JP4&3QJ9HHTY7I[#5)M9BV_M6-\$^O$ M$J,WG^9\#0NP?^:/&JE>K246*61&J(QI6,U:5_[E]9#NNPL_!&Q,X\PHDJ52 MOXBXBV=]M]<[!C+DANX4?*G MB&TR:XU;+(85+Z3]IC:_0Q7/@/1%2AKWRS;EW<&@Q:+"6)56PNA!*K+RGS]7 M>6@(C+U7!()*('!^EX:S\ M_O9J<;M@[>]\*<%<3'L6E=*C7E0IN"X5!*\HF+ 'E=G$L-LLAOA0OH?.U!X% M.X^N@[,*%Y!W6>AU6. %X1E]81UAZ/2%9R,\%5@IUS\M1]-P:7(>P:R%[6Y M/T%K_O&=/_0^G_&J7WO5/Z=]OL#IB@L)3*W8/6!;L=MG'#0#YI2GYW5]?#<. MO/ S^[_^OR<:X* -&!;10KH$[2JYN_@5'7_+/:H\_02-TQ\Y:&Y%MF;2I0O* M=+&V?U'+O6?A.&A2HT&#\CO^(#R@O5'(%HG2]I,%G5:*>1:S)ZX%#<2QK6!O M*P@G^W._7Y^'H[V-L>>S[\IR>:1G[\,P\)N4/SGP;QP,#^E1W\7[%<$:^V:- MF(O &*EU)O[!9!8YPEQIB>(1&7? AS??>UT?T4-*HE'()L R*D9:%@-.%(.R MWG4AN_XT"$PVP>R@O+ "8W(Y0^5^L%.C-)HWAG&-ZI5UOFG2K$J3/(I4FO-L M2V6,%!K%;,1T,DJ*F%LDEESR+ +F(,UT7#E(]J:4W,=KCI**"XHNFJIHAHQR M9JSF!,R?:&@(OP4^> )WM9&K+OMQNN255H;=)U1LF(."C!S-M< U)N06$Q+) M(G:!I"E9Q>W(:"%:R%PL4<+U&DSW#&X,:MP8O!DW%D6>2\ -21VVGX\23NZR MN"VT(X\U1/G[;RUQG]A ME@G=R8N#REZE+FD$8*ZX[7W]K-L@)8HTX;Q?KH ]NOH=PDAD#1JL0>A8PP8K M'/2)-6JP@HECC7>(@D.ZPHYYX?]D$E2@O2HP6T!O72(M=NLAYUN:./-";M0) M @_S;LPE#A]J!F,/-D9[-.E?L,<20'#%R,+5[+R5D^U\T%_ML)FQ8:>/B: < M7QF'$<>8'G81>!14AKNNM3<[0*AJ*-":TI^CCN_6HWG4DN;T^\. MZH#Y*RD]">R]QDMY"HC_].EAF$..\OV\YM9?-U?E2_W^>OEI](#K0V2T\%8H MZG5'B-ZZ_-PH":MR]XJ_5!8_&-PQP2\TT'0!GZ^4LCN"#-3??/-_ 5!+ P04 M " !A@6A7FK% 0K(% "1$@ &0 'AL+W=O0!/;)NN;;OZ",)]#Z(IY(\TNVY5ZG M0Z*U5#PMA=&#E&7%/WTHS^%[!+Q2P#-^%X:,EV^IHJ-3P;=$Z-VH33^84(TT M.LC:_FY.2&WB4@7YYV%1K1 M6[M1J?"\4.A]1>&0O.>96DDRS6*(]^6[Z%SMH5=Y>.X=53B'W":^8Q'/\?PC M^OPZ8M_H\W\HXK9 "SV]=CTZ6U[+G$9PUL%TD" VT!F]>.:&SILC7O9J+WO' MM(_FF'WQ.@'"%V2^H@)>:>S%9$8?,244&6^IB*5%YHI']^1#KB&.Y"U-UM3 M?2PQSPIV6VS'K;]X-O <_PWY7?]7:&\/)P1O64%Z!\)<]=?D- 2:A$>F#SGF M-RI(V +("8)'EC#U>+#>\^TP)'\<\@=VWT?^-9/W MKQ8"@+!, :) $4$5'.P/;#=H4>/9?6K^)U-\4 /= M@,!:2A:4";)!,!@ Y6L1K1 ^1.AMDBP%S8R]M6#9DJ@5D!P$XSO#SXD;V'WW MP"#R'=MQ*OH(T(,:Z,&_ [I 9Y>@GRUS4IE>I7A($YHS11/V-]+CE*\SU8KT MX^9_-]*_]7^STNCYCE3XWI0Q*6)28_T9WE^GUQCN:,(*7,-,>I,>&XNJW;"9AQ)@[!.@_#7I4%9[LE8CS2Z M;KTBXSAFFDD3@YVE])O6.Y5+ LJVW7*U-#4#<5)SI XB(-8 ]P;(A&5/+F&F6#13M<-B+0F;DV'J2C=?=6*KR7>)W9@;"D%E,G)YZ(G/]G0 MN'N+O(6H+&:N552M<-!,M-!V=XGW9]G OM47GYY(3$Z\8%'M.=,_,#^O;CWJ[BIV7ZS!&$?'KJD9_>:13K$(GV+TT;9":$:(!0G&V3_ MM%:_.BD]_;=KV2^'-A;VGNTU2V+H]+"K :$U8ED-M6(B,2@ HK010N\XUG8! M9H;&%EXL<6SL!W)%1>2%] 0K.S=GVWT@2)5SJA)%F(,X-9C$GGON>#E)C M41HL4M,(#R.SC=/MAE& ETD!-9*VJ.FY8X?X5H;-"[UJ3%.9;M9IT:RAI5D; M@T>Z1K_N&OU?US6P:V-8!B?%6\/'C*FZA[2UBN/&__?R7%5-4PT.5LUY[*K8 M6XW$"ST6'RU:L[IH7?%L8U*LK3;AU.$UYR0/WR2&=5GJ!WYC#5\BAEZ5KB># M9@%"02"BP4PL^X.]I8QP_I-5UI2TK,#MK U6U\)DA!+,W' M$,P,*: Q";\#U!>>J(K2!^BO4Z!]02P,$% @ 88%H5T-KO4'+ P MT L !D !X;"]W;W)K&ULW59M;]LV$/XK!W4H M$D"SWOR:V@;BQ$4++(X19]MG6CK91"12(ZDX_?<[2K:BI*Z;(< &[(O)H^[E MN>/Q\8UW4CWH+:*!ISP3>N)LC2DN/$_'6\R9[L@"!7U)IZ/M]+V=<.--Q=;94T[$L3<8%+A7H,L^9^C;#3.XF3N <#N[X9FOL@3<= M%VR#*S2_%TM%DM=X27B.0G,I0&$Z<2Z#BUG/ZE<*?W#;"9K*1^L\#69 M.+X%A!G&QGI@M#SB%6:9=40P_MK[=)J0UK"]/WC_7.5.N:R9QBN9_(6Q@A@>8L_"DPQ46'8A\%T(_C$[XBYJTH\I?],_3/I9M[:Q[W)E]-Q>Z M8#%.''H8&M4C.M./'X*^_^D$U&X#M7O*^W1%[S I,P29PIPIP<5&PQ(5K+9, MH0LSIGD,3"1PS;/2O"YWG<#I$!\_#$,_^@3_U7J_58@O6@;HP@WF:TK3WOI! M<4' WZ)GN\3^A*W=HLQ1,2/5Q4_Q+(@,N8AECG"62:W/FR^_P%G7'0W"]DG@ M1L->2P[=,!BV+2)W%)#%-0I)+_AM$.I;W56D0FFR1\*^0=#VSC40NVI#5TZ] MT%A$0S<8#I[%@1N&_;8XBOP77PGT/$V)'6UG);9WB!^!&"=^ %E8SM0NE.(1 MM45 88WBL=W6*J7@AA1LXQU0I4 URXEK:PU\*K R,!+6"%SKDH22[DT!YD4F MO^$A7E&J>$OD"D7&Q%FKX'8-PN>Z#,/GT@:NWQU\I[E_!>^JW=#U>]VV.!H, M7M?NWWH]W_.Y+L?]*W3]OKN2=?DZ0 M::\AT]Z;R?12&-ZT_0KC4G'#J4'F3W%66FY)EQK$ M_X).;UO/:,\60-^.O5N[]B-82/'K23*Q3#H*&A=]"M?R.!AV87Y@C55EM3RP MQI)8@Y[I#Z,W/GIP+PW+*%*W%[Z.,**T]OMCK>:UIBSZ*]E4LZ0FRBN%J0>N MYK095R_K*>U9O9YU;YC:<"I8ABF9^IT!-8RJY\=:,+*H9K:U-#0!5MLMC=RH MK )]3Z4T!\$&:(;XZ=]02P,$% @ 88%H5X.(\[O:! OP\ !D !X M;"]W;W)K&ULW5=M;]LV$/XK!_<%;:'%>K-LI8D! MQTG3 ,T+[&3[3$NTQ54B-9**DW^_(V7+H[/W9%WM!3R MJ\HHU?!0Y%P==S*MR\-N5R49+8@Z$"7E.#,7LB :1;GHJE)2DMI%1=[U73?J M%H3QSO#(CMW(X9&H=,XXO9&@JJ(@\O&$YF)YW/$ZZX$)6V3:#'2'1R59T"G5 M=^6-1*G;6$E90;EB@H.D\^/.R#L\B8R^5?B=T:5J?8/Q9";$5R-O\G#:A]>LL!?+? M M[OI'%N4IT61X),42I-%&:^;#NFI7(SCE3+7&6X3H]'-]-;Z\OSR8PNCJ% M\[/K\\GHYO/%&"ZN/EU/+D>W%]=7\.Z6S'*JWA]U-?[1K.LF*^LGM77_&]9C MN!1<9PK.>$K3[?5=1-K ]==P3_R]!J>T/(# =T\[P[2LO45A=DC7)(_A82QC1@JE1F:T%)(S?@"IG2!B:35+E_V_^WMJX'O!A_A5[UO M,TGI5M0@^%+38D:E)?X* >Z;7^^ C1#S\.NO]0_LR*@1@P&\ =\\@@@?S;"+ MPDDC?D#),_.>VU+R/!3.I5 *BTLB*MQ@K%,)9?D] M9>RIZHJO,&QMO!];=CZTN?!1&&\1MC7U 9VWR6CV 8N9W55N]G!/2O::E.S] M<$I:.L\>-)4P/'CC5.A*2GCC''2#/6=7ABCWC.TL=/K]39[$[9@ M*;W.?[P!Y>DF\%TG0,66[B8E'-?;[#A6NX8ZH3%!@'"XV)_3.XET+C[N*]GYD M/SL;=L?^ULF[,Q%L FP'V#OO?;L4])S0B]L#2!V6D#V%R/'=?DL*L?#5@9"; M+<[M%A.[Q0YP[$1;MB,G:@66'?#ZD85T8:]5B*]>BLU8F8M'8THWMR=0S'BP M1%HSP&L0HIHAW956+*46ZMW!]&!78'5;314:6MC648&]2M7]53/:=*>CNBG; MJ->M[261"\;-O6..2]V#/A[?LFX7:T&+TK9H,Z$1M?W,L,.FTBC@_%P(O1;, M#YJ>??@W4$L#!!0 ( &&!:%&PO=V]R:W-H M965TY-.V2 $EW*["FP=)M MV*-B,[$P6?(DN6GW]:-DQ_&Z-&][L2R)Y_!0%*G15NF?)D.T\)@+:<9!9FUQ M%88FR3!GYEP5*&EGK73.+$WU)C2%1I9Z4"[".(H&8 2 M%QI,F>=,/\U0J.TXZ 2[A2]\DUFW$$Y&!=O@$NW78J%I%C8L*<]1&JXD:%R/ M@VGG:M9S]M[@&\>M:?V#BV2EU$\WN4G'0>0$H<#$.@9&PP->HQ".B&3\JCF# MQJ4#MO]W[!]\[!3+BAF\5N([3VTV#H8!I+AFI;!?U/83UO'T'5^BA/%?V%:V M@SB I#16Y368%.1<5B-[K,^A!1A&+P#B&A![W94CK_(=LVPRTFH+VED3F_OQ MH7HTB>/2)65I->URPMG)[.OR9OY^N83KN]O9S7QZ?W,WAY-[MA)H3D>A)1?. M,$QJNEE%%[] =PFW2MK,P'N98OHW/B1IC;YXIV\6'R5<8G$.W>@,XBCN'N'K M-O%V/5_W!;ZYLFB@BN]0>!6Z=QCM*N3*%"S!<4 E8% _8#!Y\ZHSB-X>T=9K MM/6.L4^65'%I*1#4&I@0*F$64RA*G61T[Z#0/$&@.H15:0AJ#-WI7R4WW-WO M0\$<=?=2,,,XZKZ%_S5.[WQ6:_?A\^&PO M=V]R:W-H965TH[3 M;:809XWA9?[NG@XOR8HG.$/W%+!5FD+Z] 3N6)D&?Y\'5Z MU7#DB%""8BXAH/AX03Y*$HDDQO%?"=JH;$K%[>]K]"B?O)C,$V3()\D//.6+ MJT:_ :9H!E<)'Y/7+ZB<4$?BQ21A^5_P6LCV!@T0KQ@G::DL1I#BK/B$;Z4C MMA0\;X^"5RIXARJT2H76KD)OCT*[5&@?:J%3*G0.5>B6"MW<]X6SGPX#K^'MX\AB,9W-\"_NWT87_L/ MX,?7AR_ ?YP\W-V$XPGX&" .<<(^@0\ 9^!A058,9E-VV>1B"!*H&9?F1H4Y M;X^Y%K@A&5\P$&93--7H!V;]@4&_*:9>S=];SW_D&0$G:'D.6LX9\!RO!1XG M ?CXX9-F7/[A,)X!)CAA- !SE&JP0CM#BLPP 8H%C&N"J3F^52V\5H[;WH-[ MNTJ?$ 5D)O:G%Y2M$&!D16/$P.]]$QX9$>4>?,&6,$97#;'),D1?4&/XYQ]N MU_E+1ZA-L* Z^1@=U(_:QP643+.@HOMJEYEV)R-* :KQT*UZZ1EXF M"T+Y9Q$6J&L.ZMLCB.R!%8CLU>1 MV3/.T3S%%]N=W=/"9Y#F32+'3$EJXSK*.ZIQX7;;RE[ MG'$DQY+74V)$9S.T:3.R!%8CJE\1U3_IG-*S!2;B@\VP"$V1X=Z+\,0BR97" MF.CRU%%?H;"K\-=77.X.=H4"%:BMLJ(1VI6)C.XXT=F#RMD#H[/%4J<<_RI< M*7*ZO4>1]N@9*+/K*+Y4910/!*J,JP"%&B'EK(^,LSW1EZZSJ;M%IFRYQ*T=)HX2/F;K1_-XB,W0JLU(8]/M[4N976_C=\_H]R*L;DGV M.7X_M(Q01X>63;3 *EIH%2VRA5:G>--I<,VMAM-#2U/6JR>3V?K1/!YB,[1J M,]+9=/>&UJ91X)H[!=M!]0W#)YQ@CI$^LFP6U[Y5M, J6F@5+;*%5F=XTW!P MW^DX[,FQUVS_/),[ZWH-E*43",HB6+L0.NI25 LC\[".)O@0FZ%5FY&KMBQJ MM4&=D$VGP377X&O75KZ6F>,()T)NSF1E$[[%B#&9HH]13.99OBF.]S(2R>)%"^JSUKZ6JO:3!)EI@%2VTBA;90JMSOVEWN.9^QSVBDG X1\56FC.M MSVP*H,'V6MX-GG=%@O=%PO=%(O.D3G2:MVEK>.:VQM$!(][)'/)Q OZY0?+G MPG]U'C9;/3:$K*(%5M%"JVB1+;3Z:M@T/#QSP^/P$"J!ME>V<][>^8'5UTIU MVCN!I,?:D0KU6+OA9)[@L0YL;EWB$&?U/+]NPT L?T,H?E:OWE97>J[SBRP[ M[T?NA>]JW@?N15A';B"=XXR!!,V$*>>\)Y)36ES)*1XX6>972)X( M%XE$_G6!X!11*2#^/R.$KQ^D@>IBU/!_4$L#!!0 ( &&!:%>7G>3L\P( M #0+ 9 >&PO=V]R:W-H965TPFMB9;:#[[V<[(0,6*-ORDMB7^[[S MW7VQKK]A_$4L 21Z31,J!M92RJQGVR)<0HK%!"&S$SAKI3.:,O>C-732P M&OI D$ H-0-6KS4,(4DTD3K&CX+3*D-JX.YZR_[5Y*YRF6,!0Y8\DT@N!]:E MA2)8X%4B)VQS"T4^;A&J=3*57'TE"B>]2? 4W#\&Z.OD882&#_>SR?5PAI[O9K=H^#B=/8R"R11] M1CX1.(XYQ-BTERW0!-9 5X ^^" Q2<3'OBW5>32K'1:Q;_+8SI'8+AHQ*I<" M!32"J +OG\9?G<#;J@YE,9QM,6Z#[RVJ6IR37!D2?2FMO6;?7N\6[4T/_TV/ MX)3'7G:M,KO6R>QF'%.Q ,XA0FP-',W4[8>^C2"= _]>E>A)/GV=]T2&0QA8 MZKX6P-=@>>_?-3N-+U5"JI/,KY,LJ(ELKRGMLBGM.B37_D,,C8O.Y8'JSG'R MJYRZK0/M53I5JZ]3)MHY6WU8HC$C*FM"WQ;A2=J_%6&=9'Z=9$%-9'N]Z9:] MZ=8APFZ%*ESG0(3G./E53D[G0(253 )= MF\GFP'[3[ V;%79?C83Y!/>;/I\G1YC'A J4P$*%4O^'^FEX/J/E&\DR,X3, MF50CC5DNU5@+7#NH[PO&Y':C Y2#LO<+4$L#!!0 ( &&!:%?3$;ZMF ( M #P% 9 >&PO=V]R:W-H965T>SS8*?TJ\D1+>P+(3.F"63+UVC>E1I96287P MPR"X\@O&I3<:5'L+/1JHC15=.5J#8[)2ZM49=^G0"UQ# M*#"Q#H'1;XL3%,(!41N_&TRO+>D2C]<']-N*.W%9,8,3)9YX:O.A]]V#%#.V M$392NY_8\+ET>(D2IOK"KHD-/$@VQJJB2:8."B[K/]LW.APE="\^2 B;A+#J MNRY4=7G#+!L-M-J!=M&$YA85U2J;FN/2'4IL-7DYY=E1-'V%PP\*QUAVH!><01B$O?_3?>+0$@E;(F&%=_$1GLKLCFF$7SRA.X/ M9 H1"F8QA1CUEK8-C-<:D>Z4A><9%BO4+_"7R&V9M&@LC O4/&%G<">3SG%( MA%N4&SRCA;OI7*YA@;H20B8(\Y7@ZTJ2,YCN2[IQ5'3)"Q>G,HC)93*6U &Q M9=H"G1;"\WC/S4O?:1">!Q?G0?<](4\2=U/;-R5+<.C16!IBBM[H\Z?N5?#C MA*R]5M;>25D;XC1_B5I+7C/ \62Y%(I6'7P_T$H%!V"S9F$G(G,T=>M9N61 M9JK5S+Q'^G1;(;PAT^8]@O[1,+AW9<;TFDL# C.""CK?+CW0]:S6AE5E-1\K M96G:JF5.SQMJ%T#^3"E[,-S(M0_FZ!]02P,$% @ 88%H5](/PB:9!0 M"B !D !X;"]W;W)K&ULS5G;5;L#KC&MAA)0+)?O_(%@V-%@8P>-@\!F^[3 MTCFZ=6NT(?0'6P!P])(F&;OH+#A?GG>[+%Q BMD964(F?GDF-,5W=#PB*Y[$&=Q2Q%9IBNGK%!*RN>B8G>V+NWB^ MX/F+[GBTQ'.X!_ZXO*7BJ5NC1'$*&8M)AB@\7W0FYGE@#G*'PN*? L[SO* MN_)$R(_\X3*ZZ!AYBR"!D.<06'RL809)DB.)=ORL0#MUS-QQ__L6/2@Z+SKS MA!G,2/(]COCBHC/HH B>\2KA=V3S#:H..3E>2!)6_$>;RM;HH'#%.$DK9]&" M-,[*3_Q2$;'G('#D#E;E8+UUZ+WC8%<.]EN'_CL.OW MX+XDJV#:PQR/1Y1L$,VM!5K^I9"K\!8$QUD^LNXY%;_&PH^/IY._)]P]]^?WKJ,M%Q-RO&U;HTQ+=>@?= M1EY!*-Q-F7N#2[L>.G:!UWL'[Q9H3")$UD#19A&'"S%>*86, MHU7V%"<)1&+I"2%>XZ<$&,(44/4:9Q$2 S=?7:2C8JH,G"^VYVR)0[CHB-64 M 5U#9_S';Z9K_"F35">8IZ;$M%!:#%B9N#K;$6@":PC?JX7O*7OI@0 -8YQO M#2=(/"50[A)"UDE**(__K7Z[)MF2DF@5EH\/A.-$IG<9SRWBY7OA6C!IY'^C M[GI?2HE=3V+GM>WL@<3.;]OU9'$#)1^?9-NIV7:4;%^F2QS3-)]7Y!E=9AQG M\UC,*#1A##@[04&3$O[8R:03S"O!G#WZWPKTH46@J4$-:=Q: M&E&M77&35P)=/2M.S]J U^^S6_ M_2.&_ES!MA+GV#&N$\SK?SC&/[0(-#6HH<&@UF"@U&!_0<]5P.'/54S%)A[O M5B)"1*SGMO> I0L?5*#8:W!4*E!L6\B?+ 2,FZ'[6X:5IO; MMMF@;[:Y';9FO.4Z$G+;<)9K.&UVE?W_)+NFLE1FJ5&>K M?7;JV;(L1!WY: TMR>E)%M?7&C>0]==VFG&;W.\* Z8Z#;[A"['GB^3O=%L1 MF+R_8FK-];6B>5K1?*UH@2ZTIL2[$H"IK@'(I]D4U)3AE[I?EA47VO4P&Q7(P:JZ;@K M()CJ"D)Y^!8GQCM80[:2G[W5&$?/0ZUU JUHOE:T0!=:4]M=!<)4ER#>3<\X MA(N,)&3^*F9;F*PB\6X_%Q.V5#4D.9'-*9BA) M+0(U,9\E?E>:,-6UB<,R6C7(T;-*:V5"*YJO%2W0A=84=U?S,/\_18^J*8UB MM:SJ(;.3E3TD=M*ZA\Q.5OA04W6L%-V]J\H4Z+RX5&:HR,3*JZ?Z;7UQ/2FN M:]^\GYKG,U/RWC//_?):>@=?WI)?83J/,X82>!:AC+.^6&-H>?%HK__'_P%02P,$% @ 88%H5U$OQL\, M! K!( !D !X;"]W;W)K&ULK5AM;]HZ&/TK M5NYTM4EM$^>=#I!:H%JEK46#;9]=,! MB3/;@7:__MHAY TGO4CY DEXGI-S M?.+XX.&!T-]LAS$'KU$8LY&VXSRYU76VVN$(L1N2X%C\LB$T0ER/4!!KXV%V;4['0Y+R,(CQG *61A&B;_1!K73A>_!=L?E M!7T\3- 6+S#_D5R/-$,RPB%><0F!Q-<>3W 82B3!XT\.JA7WE(W5XQ/Z0R9>B'E!#$]( M^"M8\]U(\S6PQAN4AOP[.7S!N2!'XJU(R+)/<,AK#0VL4L9)E#<+!E$0'[_1 M:SX0E09HMS28>8/Y?QNLO,'*A!Z99;*FB*/QD)(#H+):H,F#;&RR;J$FB*6- M"T[%KX'HX^/[NZ]W3Y,96'R9S99@\OQM_OPT>UHNP#684_&P4/X&4+P&LS]I MD C[./@XQ1P%(?LD2GXLIN#CAT_@ PABL-R1E(E:-M2Y8";Q]57.XO[(PFQA ML<#)#;",*V :IJ5HGW2W3_%*M,.LW:RWZV(\BD$QBT$Q,SR[!:^F')^47X$M M)4RI[@CG9G!RXNS'OF>9QE#?5T4HJES+'115-:Y6P=7JY/H5,W8K9L,JC=(0 M<;P6#[&8T*L ':>)4( B0GGP-[N@8G^\@5/A=6T/;-]KT%>5N7#@J/G;!7^[ MD_^2&[#&D45]!U+ M;8U74GP%'H)7><#JRX6*;2?DI3[U!%93#XUR]33Z=2K'J[I@V@/8 ML$I9Y;>\U6!EK8?OK!4B\.Q(N :/44+)'DNR:IJ=0)=ZU!=:77:YFL.>E_,< MKSK\KNTTWV_**M=K,:E6600'VG!3@>0@P M/=\]FTJ*,M\V6K("+,,"[$X+C_&UH+P50\' ].$1+-X8QQ&X8PRWO/=ZS1!] MH=75ERD"]APCX'E$,"$TFYE;56::K9.IS!*P.TQ4W9K\/)E5O@0[;.LU4O2% M5O_O668*L^=,D>-5_UBZ [?IFJ+*@48S_^F5K02YC_,-T6T0,Q#BC6@S;CSA M.CUNC1Q/.$FRW847PCF)LL,=1FM,98'X?4,(/YW(#8MB@VK\'U!+ P04 M" !A@6A7P%/I;TP& #!)@ &0 'AL+W=O1+R9[SF7*'G,(CBT\%:JK'G( MXD]BPR/]R8.0(5/Z4JZ&\49RMDR=PF!(+,L=ALR/!M-)^MZUG$[$5@5^Q*\E MBK=AR.3+&0_$T^D #U[?N/%7:Y6\,9Q.-FS%;[GZOKF6^FJ8HRS]D$>Q+R(D M^%9 M0$Z"MQ!!G/Y%3YFM-4"+;:Q$F#EK!J$?[?ZSYRP1!0<\:G$@F0.I.M@M#C1S MH&F@.V9I6.=,L>E$BBG9[,_9U?P" MW7ZYN+A#\V^7U]^N+J[N;M$)^AHI%JW\^X"C61QS%:/WYUPQ/X@_Z$^_WYZC M]^\^H'?(C]#=6FQC%BWCR5!I4@GT<)$1.-L1("T$/'0I(K6.T46TY,NR_U ' MDT=$7B,Z(R#@+=]\0M3ZB(A%: .?.>Q^SA?:':?N!*!#\P33%,]NP?N1+B2^ M/&&/7.H; [%02.7_R])5O.'2%TN=PCS5+$UU4Q[A[W'0"V!QOD]X<4<8SF3,H7/UJA62BV MD6H*9F::.Z0G *!$TJP1RH\&\R(YU#:3-3-B;H@T3NA6( >MFHK*PN*/^L&'_,F MQFZ-"G9U:BN$P2\^<(V,\K!&8%A7>FQ55LA'E,;:%,_H3?$T6(TMQVG._S@G M.@:)SM/&S"6ZX4&:]WCM;QIO6A#G[>GT^UE9L^M908A.Y>Y)[1R HP&P'M$ M0+E6B3 M%6XC:J0"@:7"05.-U&6#4R=<%PWNV&KA:R0#@25#V[K?,\YZW:?H"ZV< B-$ M""Q$.G8X&(P '0[T/#!,:K0+A;4+5.GV60:#=JUT7VCE%!CA0OL4+GO H&V4#5B@,)BX*#I1>O"@-HUQG5=8%LM MVZ+4R (*RX)LHE4A?:&5(S8JA/:I0O: @;/I&#+$-C+$AF7(E8@6(MQPQ=%L)3D/VR85 MC-.UNGVAE:,VRL/N4WGL :/MQ84]#PW3" \;%AYO_]6>U&;&V*[]:$]J,Z-H M5.9H1(.]9T.CPSBVZXK@9%S3#4U6K8<+[,()B#U;$H<,8[OI/$25;]V&N%69 M,RP<$@JY7*5GIV*T2"JZ.R^4OYN?SYJEIY*&QGQWN.N2R94?Q2C@#]K5^C32 MF9*[\U*["R4VZ9&C>Z&4"-.7:ZZ?3V1BH#]_$$*]7B1?D)]:F_X/4$L#!!0 M ( &&!:%=R82"@J@( T' 9 >&PO=V]R:W-H965TY/XWSV_YYSXW-]Q\2)31 7[/&-RX*1*%3>N*U\P*9GDFX MR(G27;%Q92&0K&U0GKF^YX5N3BASXKX=FXFXSTN5488S ;+, MFU#/K[8+O%'?R MJ TFDR7G+Z8S70\^.X.#_ETC-Z*9](^87=8ZSFP*J7B^2%8.\@I MJ]YD?]B'HP#??R/ /P3XUG<%LBYOB2)Q7_ ="+-:JYF&3=5&:W.4F8\R5T+/ M4AVGXM'PV_!A/('YW62R@/'C_>SQ8?*PF,-G&#)6D@R&.1>*_B9V$WD"TS4R M11-*EAG"E"G"-M0TAU*BDG!YBXK03%[!!5 &BY27DK"U[+M*VS50=W6P-JJL M^6]8FV-Q#8'W"7S/#^!Y?@N7%U=_R[@ZVSIEOT[9M[K!?Z;AJJC.$2KP@Z"9U:E9G7.L3A.K<\KR MPEXS*ZQ9X3E6V,0*3UA^U'N#U:U9W7.L;A.K>\KJMKO-K*AF1>=8$>C#!BI% M7:$3A:()'9UN:=B.FM&]&MU[%[W@2M>*I%2E0"#')0/W^@*1V&2D=_++MK21 M\!\G[E%U,Q?%/1$;RB1DF.@X[[JK,Q%5\:TZBA>VX"VYTN73-E-]7Z$P"_1\ MPKEZ[9@:6M^ \1]02P,$% @ 88%H5VY4O=.8 P 7 \ !D !X;"]W M;W)K&ULK5=K;]LV%/TK%UHQM( 7R?(KSFP#CJ5N M ](VB-OM,RU=VT0ETB,I.P'VXTM2LN:'+-B%OL0BQ7,N[SDW%.]HQ\5WN494 M\)HF3(Z=M5*;!]>5T1I3(N_X!IE^L^0B)4H/Q*82RO!9@,S2E(BW1TSX;NRTG?W$"UVME9EP)Z,-6>$NTL$,Q(T*XL>< MV+] W(%/G*FUA)#%&%?@9_7X80W>U4F6F?K[3!_]6L)/1-Q!I]T"W_-]^#8/ MX/V[#U7[JJ>9XT;3>):FLZ>!!'6Q5I %UY/5[2FLIPDP.D^M:D]'PG7*$NE8 M]NX%]L]9NM"EP9>PI(RP"'-F"?]=3/NQEM&,"$*8U )-1@Q[9Q:WNVV_ MNKC[I9+]*Y6TAP$(\V4VI9OI 9$2E=0?[DC8ETO!4T BDK=BM=*5K0\5H MTKLV]*UZ-TD6],^D[)W^MX0-!3RR95#:,KC)EF1?WS]O1FW 6\UHDBP8G)G1 M/S.CH8!'9MR79MS7FC'7]V!M10O^0*9M25J@[U0PC;7:5"KCT[;R*UK+>JOB M39(%39*%#9$=63,LK1G66O-T6OFPTLU5E1G#\\/SM,AF5ZP):O=SJW0-D>72 MN0=M1(IB9?LW"9&YH>3W['*V;!&GMC,ZF9^U'X*\T_N?)N\[]25\19G4!\Y2 M4WIW _U)$GDOEP\4W]AF9<&5;GWLXUJWORC, OU^R;G:#TR LJ&>_ !02P,$ M% @ 88%H5PMQ8-GG P H! !D !X;"]W;W)K&ULK5AM;^(X$/XK5FYU:J7;YCT$#I!:$G0G[6JKLKW5?31D &N3F+,- MM/_^;"=D(:19Z.9+29QYGIEY9OS6X9ZR[WP-(-!+EN9\9*R%V Q,DR_6D&%^ M1S>0RR]+RC(LY"M;F7S# "<:E*6F8UF!F6&2&^.A'GMDXR'=BI3D\,@0WV89 M9J\/D-+]R+"-P\ 36:V%&C#'PPU>P0S$\^:1R3>S8DE(!CDG-$<,EB/CWAY, M^\I>&_Q#8,^/GI'*9$[I=_7R=S(R+!40I+ 0B@'+GQU,($T5D0SCOY+3J%PJ MX/'S@7VJYS#&'"4V_D42L1T9HH 26>)N*)[K_"\I\?,6WH"G7?]&^M+4, MM-AR0;,2+"/(2%[\XI=2AR. X[\!<$J 4P/8WAL MP2XEWKP2H!WJ0>_!/B7 M>@A*0*"U+\322D=8X/&0T3UBREJRJ0==+HV6 I-<-=9,,/F52)P8?XKO9_$, M?42?0-8'32@7Z"8"@4G*;^7P\RQ"-Q]NT0=$/[+7A3YEPE[AP2?W!:"6>PN4.N]0=R+,=M MB&=R.=QI2N?7O,>_YGW:#H]@(>%V$_Q$2[=J(E?SN:U-U-04! $C0ZZ*'-@.C/'OO]F!]6=31;HDB[HDB[LDFW9$=E))KZJDU\8^_K(!A@7) M5RC5ZP&\R!V,0U-I"Z) $ZGM:S=V0]E,N^.*-=CT_%.;Z-S&MGWWU"AN,+)Z M-:-I:VKO%,ZOA/-;A9NM*1,?!;"L5$XNDVB'&<'S%'XN9D'N'^7GN/V:F TV MGE<3\]PFJ,L4G]N$EEV3LC79=TH95%(&K5)^I0*G/Y 7RT*>.E3]F MLF[-K=P\&:+5)'_Z\EQ\YNA&[N^O@)G<]6_^E;^W39JWQ^ 5!"A$6;%7VPY* M\&O3:6'2RG3M6MY96'&784W;P_++L-PJK+ AK)-F"*MF"*]KAH3P!=WF LFZ M Y+7D:,>*-HCE0L528D@T'BX*_S9UM$$L.XL+ZRO4:UQ75O6"YW&73J=ON6T M5SD]*4F_*DG_JHU5S3S,.0B.Z%R>MG-9+34%Q>&(W3C_6GU<>YSJDBSJDBSN MGRW)CA.$M=6V(X]%-S"Q&\8C M>Q 7M^4?],7=_3-F*Y)SV1=+Z)%T(V^O\VID+=!_;@&+!=R M92"_+RD5AQ?EH/JGQ/A_4$L#!!0 ( &&!:%>(:(ATW0( !@( 9 M>&PO=V]R:W-H965T8YD>\WP,1NZH7>Q\ 3W63:#OC)I" ;6(!^*>;2]/Q&94US MX(H*CB2D4^\Z'-^$+L"M^$UAIUIM9%-9"O%J.P_KJ1=81\!@I:T$,8\MW )C M5LGX^%N+>@W3!K;;'^H_7/(FF251<"O8'[K6V=0;>F@-*2F9?A*[GU GU+=Z M*\&4^T6[>FW@H56IM,CK8.,@I[QZDK?Z1;0",#X0@.L ['Q7(.?RCFB23*38 M(6E7&S7;<*FZ:&..B2ZE%2_(Y&B7P5(HBG? MH!F8C-&,DB5E5%-0Z/P.-*%,7: S1#EZSD2I"%^KB:^-'2OJKVKT387&!] + M**Y0%'Q#., 1>EG%JJ+Z+508AZ-N5K]A]4^Q^EVL_CZK'QU@Q0TK M/L6*NUCQ/BOJ][I9@X8U.,4:=+$&^RP\.L :-JSA*=80F:.%= :FX*8:9!=Z MN(<>C0[LE%%#'ATE/PM-&$I+4Q' %AV:ESEBKA04Y-W49-UYW$=[3@88!]U6 MPN!_@0J.FIF!4F/TP$WZH#0ZQYWGI19IPR\'A[Y V*J.X5'XW!8"KM&6L!)L M:3SZ4E#)UR"1:,IG-X9[?U)_M^J\[;._.1R WERF!2$Q9< M#4SZLKJ&JHX6A2O]2Z'-1>*:F;FZ0=H%9CX50G]T[&W2_!E(_@%02P,$% M @ 88%H5])T\VY7!@ B3H !D !X;"]W;W)K&ULM9OO/3)QU2LHLBDF21C1! MC+S2#+ M9482Y?BW@+;*G)GP\'A'M_/*B\I\"5/R0)=_1S.^N&WU6VA&7L+UDC_1C4.* M"N4%G-)EFO]%FR)6::'I.N4T+L2B!'&4;/^'WXH;<2# ^@F!6@C4+[ M&R69<2>/#R>=/#[[S:6Q:3Q-D_?GL?OX'O3<)#Z-E^@%]1,\3$[U_ M]P&]0QV4+D)&4A0EZ#F)>'HE+HKCSPNZ3L-DEMYTN"A0ANU,B^3F-KEZ(KF& M IKP18JL9$9F#7I/KA^\I1_+];C_%B"0 W1% NB(IBC;0]VUQ[TJ)=ZM6!MA M?(54154;"O0@EWOKI(T4/9AWC6,F\[KH24;@HQ^-<9NB,$*K@:-ZD&B7$=!3CVHKRC5&+<> MHVG]037(@[Q1/B1L# D+@& 5&^FEC72IC;(Q $WR;_\3616>0H^,"B_$34Z0 MXBYU B3,A(19D# ;$C:"A#F0,!<2YD'"?$C8&!(6 ,$JWN^6WN]*O7_*]E?H M;LT7E$7_B9'Q+J;KA#?U!%+XI3U!MS8>J%WE>-0P(5-:D# ;$C:"A#F0,!<2 MYD'"?$C8&!(6 ,$J%C=*BQL_:/%'PB(ZRZ;*-F53@M[_0T+VH M7!5]%Z5H7"6 +(4%";,A82-(F ,)[1^L:8\B<03VGWE.4WGZ>6K%JO[1J7VK5@_&9OJ#I@7&OT";_68G,/H:O MA(5S@E8L$L/UBK#M6GN3G:79+K4S),R$A%F0,!L2-H*$.9 P%Q+F0<+\+:Q_ M:&>CK1^9&3)CT) 1MP>XV:EA(6$F),R"A-F0 ML!$DS(&$N9 P#Q+F#VI+-MW:.O\8,F-0SX@533DQ^&)E__.V\M8:N'K1&KB< M=ZE?06DF*,T"I=F@M!$HS0&EN: T#Y3F@]+&H+0 BE;M"0Y>=,&_'57[X^ M_D:*TVO:#W+EQ1T!),T"I=F@M!$HS0&EN: T#Y3F@]+&H+0 BE;M"/9ODV'Y MZV27K);+41=/_T%?!P.E6: T&Y0V J4YH#07E.85M.I*MZ8?32O]AK >UHW: M(WE3G-8='/,"J$I4';E_,0U+WWT!7Q27I[O8M9 T$Y1F@=)L4-H(E.: TEQ0 MFE?0#I>7-;W=Q\>NK8>I6ELSCDW;&&8,CCT+5(6J9_*&ZQZ^]K>[(O?X[2;- M(&3S*$G1DKR(5$J[)RK&MOL>MR>&PO=V]R:W-H M965TO\^.7-D(ZD \Y]OFA">*ZG"7VGH;F[^_PE3GZD"\XS M\G,91NG%8)%EJ[/A,)TM^-)/C^,5C_)/'N-DZ6?YV^1IF*X2[L_+H&4XU!1E M/%SZ032X/"^W39/+\WB=A4'$IPE)U\NEG[Q>\S!^N1BH@[<-=\'3(BLV#"_/ M5_X3O^?9PVJ:Y.^&&\H\6/(H#>*()/SQ8G"EGGF&4024>WP-^$NZ]9H4A_(] MCG\4;]C\8J 4)>(AGV4%PL__/?,;'H8%*2_'?VOH8).S"-Q^_4:WRH//#^:[ MG_*;./P6S+/%Q6 R('/^Z*_#["Y^<7A]0*."-XO#M/Q+7NI]E0&9K=,L7M;! M>0F6053]]W_67\16@&KL"=#J *UK@%X'Z%T#C#K V T8[0D8U0&CKAG&=FJ6E)6,=// M_,OS)'XA2;%_SBM>E/6TC,]K5A 5DKK/DOS3((_++NGM](\O_Z&47-//U&)_ MDND?5Y_OR;_(EVS!$_+)Y)D?A.GO^9:'>Y-\^NUW\AL9DG3A)SPE040>HB!+ MC_*-^>O;( QSG:3GPRPO6I%@.*N+0:MB:'N*H9/;.,H6*:'1G,];XFUY_.FA M>":/5PWE$,&5$S3M1$(8YJ=EYBDI) M'9&;,$X+,=T7C2F9)L&,MRE*BNRK*"3,1,)H!9N4L.)&X/E2UXZ-\^'SME*0 M&>TN&1UD1H:$N4B8!X()JAAM5#&2JJ)J6_+KII\\F04IGQ?7DE4+2"8H+"3C<).I I[B!(^BY^BX'^YQO*KN16/4K]HO=K4)47U M51<29B)A].3]K[\QV?WYMY I[4XI'61*AH2Y2)@'@@EZF&ST,/F8'LA=M;U\ MO;^W0$KO*Q$DS$3"*!)F(6&V_/1J56\!F9!EU;6I:F3NO[9V'R"+Q9 P%PGS M0#!!;:<;M9U*3P==KL+XE?/ZZFX:^JU][==22E]5(6$F$D:1, L)LY$P!PEC M2)B+A'D@F" L56D>@RD=>KE9-.-1\8RWTM81$3J_KU[\9)Z2+^LLS?QH'D1/ M;>*3)^JK/BC-A-)H31MM=Z"=*HJR<^4'36IW2^I DS(HS872O)8O9#S9_D)$ M16P]&%;EBJ@>\4X3_AS$ZS1\)2Q-U_EEWD,TYPG)%IQHBJ)NM46M:I FZ:T& M),V$TBB49D%I-I3F0&D,2G.A- ]%$R6H-1+4/M(HW:R7Z] OMU2/CJPX>>1! MML[+<$3HSU60^%6/>MY*Y3=BJW4R6_@I;[U6E!>AMT"1-!-*HU":!:794)H# MI;&:MMW C!3E79/K0K-Z*)HHO<;TH!YP/?1N_PH(8,*(U":1:49D-I#I3& MH#072O-0-%%]C8-#E5LX@/V04','E&9":;2F;;>6[_H@H:Z-PPD=:$(&I;E0 MFH>BB8)I#!FJW)&1-TG*VUU8W<^QOS,2ZLB TDPHC4)I%I1F0VD.E,:@-!=* M\U T46B-TT.5>P'H_71Z1#:/H&_BPIC[?5V9/?R,DT]3GA3-EO]47C5NNT%: MS8?R?+W5"'5_0&D42K.@-!M*UTN]4^5L5VVT.E%$76&#S4 PZ/ M4F3U@)!-#ZWQ>FARK\>VR+X\/O*D&=%(S'6RU\\KQ_85$Y1F0FD4 M2K.@-!M*2^ M$(FZY T8U.L!I9E0&H72+"C-AM(<*(U!:>Z!:CR6M5]_A_U#:^P?FMS^L:6P M],WYD2OK0$,%]7A :2:41J$T"TJSH32GI@GF)TW1Q?: 07.Z4)J'HHE*:KP; MFMR[42GI6SFU62ZBJV>>%#T88N=&JYJ@_@PHS832*)1F06DVE.;4M.TI-U1] M=\H-!LWI0FD>BB:JJ3%G:')S1FG :'M&W*H@J!$#2C.A- JE65":#:4Y4!J# MTEPHS4/11*4U1@SM0T:,7_,RW/U%L]4#<%E$:A- M*LVN:S!EX>!<&+9,+I7DHFJB8QB"AR0T2>V^ MR%^B;%HU G5#0&DFE$:A- M*LZ$T!TIC4)H+I7DHFC@+=..:T#\T0X;)9PDO M.O*"^JZHOBGR-\; -B7*<_55(I1FUC15V[[/.-9W^GPI-*D%I=E0F@.E,2C- MA=(\%$V46..:T ],N;$]RJ,9QR^;;1WJC8#2S ,'JRI[IR*GT()84)H-I3E0 M&H/27"C-0]%$;36>";W+7!K=ES& 6B6@-// D>Z?XI]"RV%!:3:4YD!I#$IS MH30/11-UM;4ZB-PI42PNTW7\E1S56U38U4&PRX-@UP?!+A "-4A :0Q*]M \9N P8U6T!I%$JSH#0;2G.@- :EN5":AZ*)ZFIL&WJ7J3#ZC[\Z M@)6,A[F1A_96&-20 :594)H-I3E0&H/27"C-0]%$A34V#[W+/!A"AR+YDR>M M4^O*4;U[%>4%DSRU,J$%H5":!:794)H#I3$HS872/!1-7'RXL7 8G2>^Z#ZJ M4<[L*R\HS832J/%^)0U5&^FGVNXBQ._W.]448\<@8K?LIFGZ6)GLKC#W@RT<.OC3F2I^A=Q:%. M!BB-&BT+59P:NG*Z6\FAOH6.61UH5@:EN5":AZ*)HFD<"8;76F#X;OM5#VSU);MMGKFE-N'#?[R?)7? MT]SZR5,0I23DCWDJY?@DO^Y(BMN>MS=9O,I_< ?D>YQE\;)\N>#^G"?%#OGG MCW&.>XW-NKNX=KH5\5@6B MAI>2<37R"JVK<]]7:8$E41U1(3 MNK-$CH=BJ1GEF$A0R[(D\G6*3*Q'7NAM#^[IHM#VP!\/*[+ .>I?52+-SF]8 M,EHB5U1PD)B/O$EX?C&P\2[@@>):[:S!.GD2XMENKK.1%UA!R##5EH&8OQ5> M(&.6R,CXL^'TFB]9;]RWHV7)Z+P0K!'FNEBY)UZD&%.EDS?B_5WW/CI M6;Y4,.5^8;V)#3Q(ETJ+<@,V"DK*ZW_RLLG##B#LOP.(-H#HHX!X XB=T5J9 MLW5)-!D/I5B#M-&&S2Y<;AS:N*'SVZ3FQ^_9S.8SNYF5]<_ M(;F9W,WA!!X(6Q*7Z8DRG[BR2P6F;& V3Q(XND1-*%/')C0*HA#F6J3/D"QE M6IBL0L((-U>?P0=5$(EJZ&LCUS[JIQMITUI:](ZT,[@57!<*9CS#["W>-S8; MK]'6ZS0Z2#C'J@-Q\-4*CEOT7'P<'AV0$S>ICQU?][W4OU2FEC$#1G.$(\KA M%8E4QVV9.LP4.B3$4+J$M5G[#X(WYKJ-N>Y!Q@?!3/4PJE_;[-38,'!@VVA6 MXZ#3C?O]H;_:5=T>=SJ(F[@WXGJ-N-Y!T/2X:]-J5]ANE_8_52$97-$.>M6FL*#;@4H8-!8&!RT\NDYJ+) 52C,8("=4PLJT%P210[7M&-*& M*5A(PIWAI:1\ ;I J%!2T>J\?OETQWG8ZPS"/?=U5'\W*MC[+/Y.!RU1+MQ@ M49"*)==U@VE.F]DU<2U[[WQJ9EH]@O[1U /QEL@%-2V486XH@\[ E(RLATR] MT:)R??I):-/UW;(P&ULK5==CYLX M%/TK%EM5K30=O@()TR12$NANI4X;3=JM^NB!FX &[*SM)+/[ZVL;ADV 0=-= M7A+;G'/L>WTPOM,390\\!1#HL<@)GQFI$/L;T^1Q"@7FUW0/1#[94E9@(;ML M9_(] YQH4I&;CF7Y9H$S8LRG>FS-YE-Z$'E&8,T0/Q0%9G\O(:>GF6$;3P-W MV2X5:L"<3_=X!QL0W_9K)GMFK9)D!1">48(8;&?&PKZ) H77@#\S./&S-E*1 MW%/ZH#H?DYEAJ05!#K%0"EC^'6$%>:Z$Y#+^JC2->DI%/&\_J7_0L$HOICG7O^A482T#Q0.H-7$73H9AF[3ER(!9Y/&3TA MIM!2335T]C5;YBLCRB<;P>333/+$/+I=?_KR(XK0,OH2\6T3HC>OWJ)7*"/H M:TH/').$3TTAEZDF,^-J2.D?. M4XZ63J_@!O;7R+6ND&,Y;L=Z5B^G.UWA_+_9H_\\^T4RW-HPKM8;/:\E/2UI#JYCG,O"(*I>3S/8@?(=OU+4-@&V9[G MVY>HJ ,U.D==1#ZJ(Q_U1EXZ7K\,1R"'[DA[)=2A?\/W.(:9(4]U#NP(QOSU M;[9OO>_RU9!BX9!BT4!B%_O@U?O@#>_ 4M([=X3M6 T'MD$3;]0P8!OCZA?K MPG]MD..XXV[[^778?F_8=S*1F,4IDJZ3*RNT*_ P&&\ROMQT4B[R89%PRK>U]7Z+VJOVK)(<7"(<6B@<0NMB:H MMR88WI)!ZU/I^!.W8.JH">J*;_X34$L#!!0 ( M &&!:%=8BVN:O , (D. 9 >&PO=V]R:W-H965TQ3&3 &$\HSYZ]F'A>._] M>Q*\#N:92KSBX2\6J.70ZED0X M=A^J>;_[!74">\>?S4":_L-GM=2SPUU+Q M:&>L&40L3I_T?2?$@8'KE1BX.P,WX9T")2ROJ:*C@> ;$&:W]F8&2:B)M2;' M8O-6YDKH?YFV4Z/I[>S'W;_3*4RF/Z??;QY@]F/\O'L:#ZPE0[,T+/]71"3- BW)(@^W/)8+25,XP"#8WM;"Y*I MXNY5F;B5#N>X:D';.0?7<=L5_MJ9RNW$7Z?$WU[&N[622L?(XL4Y3'#!XE@/ M84*U=#X6!9[Z]1*_YH:]C;J]@?U6P*63<>G4XC)]1^$S^;M>*6SG!/;"[1?C M>AFN5Q-WQ40QJG>*2HI!NQEHM[GPT^19I7KWA$B[)/K+C,AE+2)/*!4&H*D8 M(71JTA/%D^4B(I>UB?0R(KTFKY\^AX4*]$Z!N\7 _0RXW_Q5_$JRIM9@_(9" M5X'L5,),,!]K7I(4N'= EG1;I.3H$"=/C4ZSF_(AW\+4E8(0]YA>V7LD!YF; M_ 5!/S[\.]ACPEZK7Z:GFQ-V__0.?$YAMQGA/&N3>FG[X*Y\CF#[](!ZK9(\ M3O)$3NIE\NH#<(_FX\R\\RM=)(7^#%K3$!Y01(54JR$[L$4J)'0@2BNNVX& M;F5%C21Y@2#U*D2S\]$POFH*GXDOKT6D7C&J/DX-XZF&W,?C[N,AWH?QY"6- MU*MI1^=OO%@(7%"%<*/9,_WY[L,3#=?%%R,%Z!Y^WGB=DGN15SA2K\15GJ-F M/$_+8==KE_#,"R*I5Q&/SD,S7OU3_9S?];,/NH,(Q2+I@23X?!VKM%'(5K,^ M:YQV%_GVM$F[I4*78PDAOFA3IW6I%1%IWY-.%%\EO<8S5[IS289+W2NB,!OT M_R^&PO M=V]R:W-H965TNU)+$W!4@04MW M*_5 T$/[Z"8#L9K8K&V@E?;#KYV$ -M 6ZG2OL3GS/_GR?CHK(1\5A&BAIQUQ$+'C.-(@EHD"96O XS%JNOXSKICS&:1MAUNKS.G,YR@OI^/I&FYA9>0 M)<@5$QPD3KM.WS\=^,0:I#,>&*[45AWL4IZ$>+:-R[#K>)8(8PRT=4%-L<0S MC&/KR7#\SITZA:8UW*ZOO5^DBS>+>:(*ST3\R$(==9V6 R%.Z2+68['ZB?F" MZM9?(&*5?F&5S_4<"!9*BR0W-@0)XUE)7_) ;!E4R1X#DAND@7 SH93RG&K: MZTBQ FEG&V^VDBXUM39PC-N_,M'2C#)CIWO#Z]'5[:_A$ ;#F^'%Y1V,KOHW M$SB!&\&7J#2&,#:%9(&M3K0(GN&>,ZV@;^/)]"LN4?CR;T9 M5Q&5J(!QN(O$0E$>JHZKS2HLBQODQ(.,F.PA;L.UX#I2,.0AAKOVKEE]$0*R M#L& ''0XP7D%JMXQ$(]4X1NX:\ZL.*!0+8)<315J>Q1,+$_6P32!.(9;LZD8 MG\& QI0'"']*M3+XS'4]=6WWV+)'?%+KN,L2H%H!5#L(9"G@AZ3<(AT2K[T1 M;]:KY=KU0KO^OO9#%HU#TO4WTBUS6Z>(GM/OO%6WF^5JS<+ M]>;GTL!D\$>SH/DV"[RJ5\[3*GA:G^-Y3,\PT^PO49HS.4L1, <+P@5E$AYH MO+"I]-,>_ MC#67W($E7J76V .[=0/XG]@47\?KE_#6*ZWF'EZRX27_)6USV9V\;5?:_VYZ M=^NR35#.TB>%@D LN,[NW:*W>+;TL\MZ,SU[\UQ3.6-<08Q38^I5FF9_R^P9 MD36TF*=7]Y/0YB&05B/S]$)I)YCQJ1!ZW; "Q6.N]Q=02P,$% @ 88%H M5ZMWW]1W! ,!8 !D !X;"]W;W)K&ULK5A; M**;8"JFB7C"9;J ME:],L>& HQ24$-.QK+Z9X)@:TW%:=L^G8[:5)*9PSY'8)@GF_\Z L-W$L(U] MP4.\6DM=8$['&[R"1Y#/FWNNWLR")8H3H")F%'%83HP;^SJP'0U(6WR-82=* MSTAWY86Q[_KE-IH8EHX("(124V#U]PIS($0SJ3C^R4F-0E,#R\][]B#MO.K, M"Q8P9^1;',GUQ!@:*((EWA+YP'9_0-XA3_.%C(CT%^WRMI:!PJV0+,G!*H(D MIMD_?LL340(HGGJ DP.<0T#O!P W![AM%7HYH-=6P<[1#7K16;?DCM2M$JP3'5(^M1 7S?A1 ]Y4G2UZ[.Q[/',:"1]A"[.E<3W]5S!) M3_@-:E> 1M)3;>Z2;)&1]5,RO&@ M,;!GRI57*QK_!U'J7SX-Q(4^1\1TA6:88!I"G6D9M5?*C.V-#E>->6, I[HQ M.)H4-9)^EY)!G:1=DJSD?5CD??BYO".YQA)]8UL2H=M$12G1^SS;3[ Z,X9' M9JB/ID,O&H,ZU8LVBGZ7BL$'BA4G1H43H_9.2)7@E[T3,0W)-IT#<;:^Z5JU M6V B8Q!('?-5A005MU0??B'?@BY A"F$*DZ06O]>U"*H6]4K2 )7">5]P( ;+>*/MX%^L=KYS-D9QL52M1 MOU/1H"NVJEG.NUE.HUDU?ER@KYALTT,BNB&$[?1)H^&4F"N4]V)OY!Q[U1C( MR5ZU$O4[%0T^%,U,,$L76@GP57KU*%#(ME1FMQ-%:7&]>9->ZAV4S^SKN5U3 MOK"O_>SR\IT^NTN]PWP54X$(+)64=350@YEGUY/9BV2;]#KMA4G)DO1Q#3@" MKANH^B5C&PO=V]R:W-H965T),Q MI0K>4Y;)B14KE=_9M@QCFA+9X3G-\,V*BY0H'(JU+7-!250:I.!,KZ=6*ZUFWA.UK'2$_9TG),U75+UDB\$ MCNS&2Y2D-),)ST#0U<2Z=^^"D<:7@+\2NI5[SZ"9O'+^I@=?HXGEZ 511D.E M/1#\V] 994P[PF7\4_NTFI#:MI?R)DL?V%;8QT+PD(JGM;&N((TR:I_\E[KL&> ?LP&7FW@M0VZ M'QCXM8%_;H1N;= ]-T*O-BBIVQ7W4K@Y460Z%GP+0J/1FWXHU2^M4:\DTWFR M5 +?)FBGID_!=_CZ-/OV&,#UG]^6RQM8!,^P_'+_', MS @+"T;*+>4K"(C( MDFPM84$%+&,B*%S/J2()DS>(?EG.X?KJ!J[ !JG?2D@R>,D2)3_M37R/>2%) M%N'DU<%X;"MDI-=EA_7J'ZK5>Q^LWH='GJE80I!%-#+8ST_;CT[8VZAD(Z>W MD_/!.^EP2?,.^,XG\!S/-ZQG=KZY9Z+S_Z('_SGZ@1A^DUM^Z<__]=PR;77E MK&MVINOEGQ(M]F1[BGO MTR=L/(Q+XY=66?9+2]U=-M/;[FB >;#9U_48Y?K#WB%H?@SR/'=X" H,\?R1 M^S/> <%>0[!WDN #D4D(V[(]T.B6;*C ;K#-A2PC?@N2[J6(*+;$,E:H5-7RJ1A/JQ@A15X4:]&OU6$/(TQ690(>A[ M3DL#Q>&50B)E@8,":ZF (,T9_T$I+ H1QMC*8<%(9I+Z)(-?_>[[1RH.O5;F MS8\QKM-M;6UPH54=[-J@V;7!R5V;Z[U")2^0QX.S\MB$W HF%I,A4=99H M9IN+QWUYWF[-/[AW,]

+2G6O^.F^NN4\$K%.,@F,KC"4TQE@5HKJYE - M%,_+H_$K5WC0+A]CO&Q1H0'X?L6YV@UT@.;Z-OT74$L#!!0 ( &&!:%<* MU9TC2P, (X. 9 >&PO=V]R:W-H965T?PB#B8\T7(A[J.G=]"#&_I#%$\L^*LA +N61KG<<, ML)>"PD W6JVN'F(2:9-1NK=@DQ%-1$ B6##$DS#$[/4* KH=:VUMM[$D:U^H M#7TRBO$:'!"/\8+)E5ZP>"2$B!,:(0:KL39M#^V!LD\-?A'8\KUOI#)YHO19 M+6Z\L=92 4$ KE ,6+XV,(,@4$0RC#\YIU:X5,#][QW[CS1WF]XYRCA;U$SO5T::,+-(T$ MN?!(D*AN(@?[7_V?E ,LQ"+F?)UWN$[E /?DX/L>M;_\ZJ>9ZQ6RJH. MKLVDW;%D0)O]0I:-ND]5@FJ2;-XDF=T0V4$/K*('UJ=( MSRI+YD@QLUK'IQ:\23*[''S7K)9RMRACM[:,2^""$5> AS)5/T9$R"(NG'K6@'-'*CB M?A@$-WY%F?"2R*VM5!+)'7(F8*6(WE455:]CX/(0>UWOM+!F18EVP4^BFA:P M 7RJ5\I$?LN2L0J$9E(0!7GLC;K#\<#FNX1O# [Z;$YL)ULIGVTPRV(OL(* M0XJ6@9IA#Q/@W!(9&3^.G%Y;T@+/YR?V.]>[Z65+-4PD_\XR+&/OLT'N#8CQ.82J[=EQR:W$'?(^E.HZR.8*.@8J(9Z[ M*>143BG2)%+R0)3--FQVXEIU:".."7LI&U1FEQD<)I.GS>-R?KLFH\64W-\N M[]>CU<-L0F:+N^5Z/GJ<+1?D(UEB"8J\FP)2QO7[R$=3VA+XZ;',N"D3_J', M%S*7 DM-;D4&V>]XWTAN=8/P*N$&Z@[I!1](&(2]*WR]]AQZCJ_W_^=P MJ>N&M'^9U!IJJ&N:0NP9QVA0>_"2MV^Z-\'7*Y+[K>3^-?9DL:NVYE9D3I8U M*(I,%&0#A7$,ZDM:&[:!8[->W2?=R-]?$#!H!0S^4< ::JF0;CE<53#XJP+_ M[$^N0!7.KYJDP^:G;U?9).^)7>O"=SJ@HF-.&0&VC0^63JJL:C38"R M=K[82C0N<]/2/&N@;(+9SZ7$4V +M ]E\A-02P,$% @ 88%H5PRT?1ML M!0 +30 !D !X;"]W;W)K&ULQ9M=;^)&%(;_ MRLB5JE;JQM@0""E!(LS8&RE?(KOM1=4+!X;@QO90S^1CI?[XCHVQ,3(3V'TE M;A+;S'G.F/-Z#KQB!F\B?98+SA5YCZ-$7E@+I9;GMBVG"QX'\D0L>:)?F8LT M#I0^39]LN4QY,,N#XLAV6ZVN'0=A8@T'^;7[=#@0+RH*$WZ?$OD2QT'Z[9)' MXNW",2G*D,$^M\K'_,HRDAZ'O\64*O, MF05N'J_I7G[S^F8> \G'(OHSG*G%A75FD1F?!R^1FHBWS[RXH=.,-Q61S/^2 MMV)LRR+3%ZE$7 3K&<1ALOH?O!=OQ$: YC0'N$6 NQW0V1'0+@+:^V;H% &= M?3.<%@&GVP'='0'=(J"[;T"O".CEQ5J]NWEI:*""X2 5;R3-1FM:=I#7-X_6 M%0F33(H/*M6OACI.#<=?'[[WWMWD9O3EZNZ6 M?"(3_LJ3%T[N>3KEB=(:)8_?R$WPCTC).)\D3R7YA7(5A)'\54>LKY*Q2+*0 M-,B5-PGE\\!6>N)9>GM:3/)R-4EWQR3;Y$8D:B$)2V9\UA!/S?']C^(]<[SC M?@3PS0#7,0!L7;*R;NZZ;I>ND?C ER>DW?J-N"VWW3"A\?[A;M,;^F/9V8]E M]\SAE$]UN+,SW/_NR==*T2X?H7;.Z^S@K1^.2YY,%WH]?R;_;1QO/#)B3OQ4 M2+E^G"0)DID^F?+P-7B,N&QZ,HRYLT9U+I?!E%]8NA-)GKYR:_CS3TZW]7N3 M*) PBH0Q),Q#PGP0K":M3BFM3DYOFZ4ER3P5,6'OBJ=)$&TLN9F KD7R].E: M-_09&4G)E21_76L.N5(\EG\W::J#U!021I$PAH1Y2)@/@M4T=5IJZM2X7-4; M*W*GW3('=K$&TD=>N#6..@^AC/>%N'5@ $JU6@7U:@ M__U-X+*I&D;>H0\L$D:1,(:$>4B8#X+5Y.*T*H.H=8PV4&0%R0I*HU :@](\ M*,U'T>K:VC ?'4 [,$,.EHK3],EZJR?0YE%;C:-YT-8H#SI]'T6K5\RM*N8: M*S::3L5+HN2&;06UN\SI#ZXUDD:A- :E>5":CZ+51589JD[[*"T'ZJ5":11* M8U":!Z7Y*%I=6Y6CZAC-M7U;#M0BA=(HE,:@- ]*\PO:7B:84_F?CMD ;6YA M9B/,C#Q8#U!#%$IC4)H'I?DH6ETXE7WJ=(_2EJ N*Y1&H30&I7E0FH^BU;55 M>:V.T7;;MRU!S5,HC1:T^F+=Z6Q_98+ZHHTYW7X]IX_*62]M97DZ9L_S@W[3 MZ+F9D0<7&DFC4!J#TCPHS4?1ZL*IG%JG?Y1^ S5TH30*I3$HS8/2?!2M_NNQ MRM5UC<[>GOW&##E4*E :A=(8E.85M*TO+NY67T+EK$N@,E]=L_GZ05\:-PH" M:L5":11*8U":!Z7Y*%I=.)4'[+K'Z$LNU/J%TBB4QJ T#TKS4;2ZMBKKUS7_ MF';/O@1UL?F1=7BWWMHSR M'1U;UR^=\['3<)TZYVRU&ULQ5E=;^(X M%/TK5G:TFI%VFMCY@'0!"4BF1>J7@.X\K/8A!0-1DYBQ3>E(^^/7"6E(@LD4 MUE)Y@,0Y]US?>YV37-S9$OK,5AAS\!I'">MJ*\[7E[K.9BL(MZQT#-)0G@AY3D]&\ZYFI#/"$9[QE"(0/R]XB*,H91+S^)&3:H7/U+!\ M_,;^+0M>!/,4,#PDT?=PSE==K:V!.5X$FXB/R?8:YP'9*=^,1"S[!ML<:VA@ MMF&K!S@RQT M?1=[EC@OX$&O0\D6T!0MV-*#+/N9M?X J3)0W6JW &^F)I M@L\>YD$8L2\"]SCQP.=/7\ G$"9@NB(;%B1SUM&YF&GJ3Y_ELQKL9H6.S,H$ MMR3A*P;\9([G$GNOV=YML-=%AHHTH;R M2N.0/8-_W\0, M#' R6XFGX[,L&XTN3EV,*LD\E62^(K)*G9RB3LY'R(BCLG(JR3R59+XBLDKE M6D7E6F?+2.M=,G*(DLG((4HJ(Q)8@XRTBR#;C4$^8)IJAWA;!F0!FD+>\;AE M_[5P?XGP?HGPFQ"5 -TB0%>M3HJQQ[O1U/? 9-J?^A-9+AI=GGKWJ23S5)+Y MBL@J=8/&_IW=^ CES+TJ*IY2-D\IFZ^*K5J_4L\%S];/W+2L9LBR6JV:HDA@ ML(U<5),5":QE&&Y=024P&[4=5RXP$.T#18HT-"W?6E.5+:(2EE\Y2R^:K8JE7;=TG0^A!] M;6S.3JZ?2C9/*9NOBJU:OWT#")L[P$:AL0\5T2[=Z'ER#U&N;=MUH3E$(>BB M5EU;#F%"JZ%U1%SV_1-L?,D_15T=B;K! W65H9!5#_H]7+X8I9?-5L54KN.^J8/M#M+6QF3NY M?BK9/*5LOBJV:OWV32-L[AH;9<:5=.)F74&&,A@RH%D7FD.8B1S7K"N-!.:X MEBF7&K1OLE!C$W""NN9$S;HYE*+J,_K=_N)M0)=APD"$%\*5<=$2 M3T"ZV[+;G7"RSO:DG@@7MWUVN,+!'-,4(*XO".%O)ZF#8N.T]Q]02P,$% M @ 88%H5]N"@H_\ @ OPH !D !X;"]W;W)K&ULQ59K;]HP%/TK5UDU=5+;/ BO#B)1H"U2"XC'^F':!Y=<2-0DSFP#[;^? M[= ,NA2M4J1^2>SDGN-SCF\BM[:4/?$ 4FR1@.#(=RZJ9,0D3PVOI9V/FM>A:1&&"8P9\'<>$O5QA M1+=MPS9>'TS"52#4 ]-KI62%4Q3S=,SDS,Q9_##&A(*7U2DX'?-BPE""-<",5 Y&V#78PB121E_-YQ&OF2"K@_?F6_ MUMZEET?"L4NCA] 70=MH&.#CDJPC,:';6]SYJ2J^!8VXOL)V5VL9L%AS0>,= M6"J(PR2[D^==#GL VWT'X.P SO\"*CM 11O-E&E;/2*(UV)T"TQ52S8UT-EH MM'03)FH7IX+)MZ'$":\[G\Y&]_T)=(8]N.F/;B:=\>V@"X/A]6ARWYD-1D,X MASN:K,XCF;2 M!P8"8_ZK*(-L4;=X4?4=7_*4++!MR ^5(]N@X7W]8M>L[T6)E$1VD$\ESZ=R MC-W;ZQ.BK9]!@J+(9Y],LJ66;__P[;<>JO^G8@B+7??M_-?>.%^IH=T_8 M*DPX1+B4,.NB+CN>9<>E;")HJD\&ULM5?;;N)($/V5DG>T2J1)? %SR0(2(982HX&O,$CFT(J4V M5[8MPPAC(B_Y!A-]9\5%3)0^%6M;;@2290Z*F>TY3L>."4VLT2"_]B!& YXJ M1A-\$"#3.";BVS4ROAU:KO5R84;7D3(7[-%@0]88H)IO'H0^LTN6)8TQD90G M(' UM,;NU<1M&T >\41Q*_>.P:2RX/S9G-POAY9C%"'#4!D*HO\RG"!CADGK M^%*06N4S#7#_^(7]+D]>)[,@$B><_4.7*AI:/0N6N"(I4S.^_1.+A'S#%W(F M\U_8%K&.!6$J%8\+L%80TV3W3[X6A=@#Z$3K 5X!\-X+:!6 5I[H3EF>U@U1 M9#00? O"1&LVIQJG1W?A^!D_CS_-;F-Z.@_GL=GK[ MUV, %W!'J( GPE+\"&,I44F8(I&IP"68^L,,PU0(FJSAFD@JX>P&%:%,GFOP M/+B!LP_G\ %H H\13R5)EG)@*RW9/-@."WG7.WG>&_("W%Q"R_D(GN.U:N"3 M9O@-AAKNYG"O"K=UH66UO)RO_0;?(U>$U66Q@W5RF%DYV+9N*;7.MPO,5$T M).S%RC.&&3)PS^NR:7R>>;%?0B<@JI6F7 MI6G_G%\[F/]??AV&-?CEEZ+\1E%3GN"WPAV8IBK5KMRE;RR/1JICK3@1627K M3IEUIS'K"9$1X)>49H3I7JQ-MG-8;L]U6S^8]^=,@7_A M] NL4G(BLDK3KO'[3G5]VI9GBV'P+MLH+M=]WZMUS]X83MS&1(.)" M72@4L5YV&4IE?-1KBV1ZT" +AA=Z[5U(G:4>W18*9.EP[;(KGK:OTFMUV^T? M6K$FS.W[>Q^':C:OPX/;/#V\U8W_RRNF6]M(\P>3C??FB82&*XTSKGLZFJ( MW;9H=Z+X)M]9++C2^Y3\,-);210F0-]?<=W5Q8G9K)2;T]%W4$L#!!0 ( M &&!:%?:D^VEO0( !X' 9 >&PO=V]R:W-H965TLFEJI:D(H@780J;QT0QH4%;I^-LE!O,9Q9CM0_OUL!U*F M0:3M2^*7N^=Y[GP^=[=M[7N R0C,G[-JUF0B[O% IS7 F0!:,$;'K8\JW/:?A'!:> MZ3I19L$-NSE9XQS52SX3>N96*#%EF$G*,Q"XZCD/C?M^Q]A;@Q\4M_)H#":2 M)>=O9C*.>XYG!&&*D3((1/\V., T-4!:QJ\]IE-1&L?C\0']T<:N8UD2B0.> MOM)8)3VGXT",*U*DZIEOO^$^GI;!BW@J[1>VI6T0.! 54G&V=]8*&,W*/WG? MY^'(P??/./A[!]_J+HFLRB%1).P*O@5AK#6:&=A0K;<61S-S*',E]"[5?BH< M/$TFX\5D-%W,X6$ZA,'3=#&>?AU-!^/1'"Z'J A-Y15< ,U@D?!"DBR675=I M;H/@1GN>?LGCG^&Y@PG/5")AE,48_^GO:LV5$B:P,*;T-V';][VN MNSE!?EN1W]:2CW5R6$97-"*F9D_RUB*8.WPOPX(JDIY2V_ZHL_S;PSI16IY+0J9> @O(8 M^ 8%;!,:): 2U)WD)Q=4[1_".1L,2(,X2XP%-*ZRD;+6#VTI_*H'O4 MLQB*M>W,$B)>9*IL7]5JU?P?RI[W85Z^'!,BUE1K37&E7;V;MBX]47;C#NSYE M0P, "T, 9 >&PO=V]R:W-H965T./8@T@T:^$IF)@K*7,>J8IHC4D6+18!JG:63*>8*FF?&6*C .. MR7#/!)#6&_7QMQH=]MI&4I##C2&R2!/.G*Z!L-S!L8[\P)ZNUU OF ML)_A%80@OV&9_?&KK;/#>X([,3!&.E('AA[U)-) M/# L?2"@$$G-@-5C"R.@5!.I8_PL.8W*I08>CO?LXSQV%]3P(;H/I M MU/%C?(\^^\Z2((%\B;^F@>?%40/P?\0 H_#;W18O)M&J(+'R0F5+Q'']&( M)0GPB&"*O!4'4-4HT3V1:^3%6YQ*$%)9?0]]=/'V/7J+2(IN":6JW$3?E"HT M?4 S*L.X*L)P7@BCC6Y9*M<"!6D,<0W>;\9_;L";*J557IU]7J^<1L(0LA9J M6Q^08SGMFO.,3H<[=>&\SGOP.N_C9K@/D8+;=?"C7+:K&FWG?)T7^.9 L808 M99C+)W6;14"V^(%";9TT4NEKNBP +X%8_CNC>U:7^I$.B>9?TZR MX)QDXX+,+NX(_2G:#JV6JIMMC6B=2K1.HVA>BNF3)%&M2(W0?Q7IG&3^.&UL?91O;]HP$,:_RBFKID[J2 BT MZ[H0"6BG,?6?RKJ]F/;") >QZMBI[4#Y]CL[(6(3[1MBGWW/_1[C<[)1^LD4 MB!9>2B'-*"BLK2["T&0%ELST5(625I9*E\S25*]"4VEDN4\J11A'T5E8,BZ# M-/&Q>YTFJK:"2[S78.JR9'H[0:$VHZ ?[ (/?%58%PC3I&(KG*-]K.XUS<). M)>]A#A^)2%N$V+/W13RE)?,LC31 M:@/:[28U-_!6?3;!<>G^E+G5M,HISZ:3Q_GL]FH^A^G=S61V._XQN[N%CW!G M"]1P?(F6<6$^4.2:28M:P@W+"M+06QA+)K:69^8$9C+KP1%P6N9"T&F;)+1$ MYVJ$64LR:4CB5TB^UZ('T>D)Q%$\@,?Y)1P???A7)B1SG<.X&PO M=V]R:W-H965T;AA_+N( M,);@.::)&#F1E.F5ZXHPPC$2YRS%B;JS9#Q&4IWRE2M2CM$B#XJIZWM>WXT1 M29SQ,+]VQ\=#EDE*$GS'@[*$V/?]@$X9T'EO0+<,Z.9DBJ[D' (DT7C(V09P_;12TP)P'X/3D#)P DH"'B&5"18FA M*U6K=6XW+%MX7;30/]#".4[/09K[(Q__07V MO=_;F-@4"RR)U7AU*EX=D_KX3\86&T)I&[$BLI]'ZOJV'L.>YPV&[GH?A5'_ M6!0M*;M0CZMU2Q^[51^[QCY^08G$/ $W*(S4+;X%DP31K22A^ 1F27C>UGFC MY+'#Q:988$FLAK)7H>Q]<'KU;/*R*198$JOQZE>\^L:A-T4B JBHWFW4C-'' M4NN_FCQ^OU>?K8&EA#48%Q6,"R.,_*6WUB\]_J_6=MV(QYCL56B/7VL'5[7@.;I80U;(,*V^##)=H8>2R(P2L0 M@\OF^+&4L ;BL@)Q:03QP"2B+\,%E5ZIC8I1YE@JEZ^H^-U>$XNEC#4LT-MY M3,]8E?>L8JO_\VSRL*H6V%*KD]MSY] XI *\Q%P[;HF> 7T#HU'J:(SP];BZ M[#:&E:V4=3H[+PV-UG,\"4.6)6JRI6B+\E*MUB4H#'FFB.%GM386!U!9-=NE MVCZJBTZ3U,\PT7#GHJ'91A>E:6\ F5[Z9JVCZ71>T>GT+YIX+*6LX]D9<&AV MX 6>-.-AA 0&*2>A&DR4LA#IW8E62%8->*E6FVW>8-"D]#.L-=QY:VBTHF^O M4\!_(,!K3%FJYM\##J.$4;;:@GPWJ7TB6K7E5M4"6VIUVCMG#OL?7,I JZ[< MJEI@2ZT.;>?@X3$6GB0-$]]*TZI9+]5J.P0>;-IU6SGKE':&'9H=^ZS!!:"8 M<4G^S8L=2#$GK/W%8-7.O]'( =ABQ-O^98&M=M3Q[6P^-/O\]]3!:;YUBSFX MQS3'*B*2MH\_JZL!JVJ!+;7Z5NENW>";UPV&S5*K2P:K:H$MM3JTW9+!-R\9 M/E "S8I'TX0M);!9 6VEK$/:VX4WKQP^6@'-LD>3,C>R?[@"VFI'@<_=^WZD MO_;=(+XBB0 4+Y6\=WZAG! O/J 5)Y*E^2>E)R95EDL+0J.@, / 3 - >&PO. MZ6"_?KYV"!_U1:P/&RRHQ+['Y]QC^Z9Q.ZCUDM.'&:4Z6)1 MADD;"MSM=&R!'/,5K?0S-9UDSH8.3TH.GL MF8T5CIH='PUR*=8;'X%LHABPF"0<=X:[(4N,!I41&NJQ)WI MV,$V^ (*FO;CLC(."T66W=YUN";8FTDRD2JCJDW3#5>AT8#3'.PH5LS@KF45 M :BU+$TC8Z20@E@/*T;3,+)3ROD#/*G?\RWM1;ZQIQW84=$VC:&FZ61STVK]]C-WE]"B:34S!Y$C79/P63 MZ?&;C(_38]0<,C9.,EOGF#8:P'EQ&'Z#DRE?)PTF<\8U$TUOQK*,BA?'&2.O MR<3\.;.E;\9G-"=SKA];7YG^;31^?C,,Q; MWXOT44X?Y3B6#QG;#Y;'STG-Y9]IFL9QDF K.AY['8RQ=4L2^/&K8=Z @>6! M3'^VUOANXQ6ROPZP/=U7(=A,\4K$9HJO-2#^=0-&FOIW&\L##&P7L-J!_/X\ M4%-^3AS#KF+>L"<81](40Z 6_36:),CJ)/#Q[P_VE,1QFOH1P/P.XAA#X&G$ M$,"0.+;OP9WW4;1Z3T7K__&-?@-02P,$% @ 88%H5Y>*NQS M$P( L !?3T\$MP>:4#M.*2VBZD8_1!2:5K5N %(MB6/:(7->=I3W;+T]!;X"O.DQQ M0FE(2S,.\,W2?S+W\PPU1>5*(Y5;&GC3Y?YVX$G1H2)8%II%R=.B':5_'Y2I5?+YVZU M+T6ZKK9"J%W>M7N]07>79D7GZY?SN<*R:ZY()58JDX7>6&]89N*M>M]?KY+7 MK,J>LCQ3?P\[S>]<=,@N*[)=]D.LAYU>AU1;^3:59?9#%BK-XU4I\WS8L8X[ MEJ)4V>H_F^,:,DF?JF:+2I^B5(,,.X.>/N$F*RO5'-&;;"5&$_-,V(!T TKD) M9)SHQ9QR ](%(-T;0K8BV0<@^[>$= S( 0 YP(4,T MCHG'->EB;D!^!" _XD)&=$GY@I)Q%,SK8":1YR?D=Y9,B;^($P/R$P#Y"1?R MG&OB*:6)IIR' :<\B0VZSP#=9URZ&?5B:K)8/2A;]W!IXB3POTV#V8A&\2^$ M_K9@R7>3#30)LDKH/)P%WRDECY33,4M(J,>U%3E((1:R0QC7=Q8EB?='>S0A M8UC(RN#Z?C]QWR8F9 P+61ECCT5DZ)*)-,$U,R!86MB[.IM5! M?63SPAGN\'BV:82:CG,/\::1NRB(UL$7!:T)H% MVI!0;&2A7)L8D#M=[=4D[YA@<8)LEN,,X015?3"Q(+G8R'*YK..+F)!@;&3! M ZL64U,2# V=DT">;#]R$"BL9%%JD-9-[OEA@1[4>I#BV>SD^Q \G'0JYSW#LJI@7(Y MEI!Z'&3U7)F[G6]0$Q-2CX.LGJN8RS0_I,IL>4/J<9'5S$%W(?6XR.JYBLEE\2HJ$Q-2CXNL'K/?=_$!=\'7,#>L>NZ) M;V)"XG&1Q0-CFMT_%U*/B]U> XLSLZ!P(?6XR.J!,6SY7.M'Y\QFG64GD?DD\?_3L H$--[DQ,2#Y]9/F M/>KV^VM(/GWLNN=2&^:]O# Q(0OUD2UT!;.Y,?44SL0$/P=H+-0]?U&S%INL M$&NN_Z+2VU=IO@I+4B^.+P'=?MVCWQSRW-?;@F(FT_7Y YWSQT5?_P%02P,$ M% @ 88%H5[P!UL'@ 0 [" !H !X;"]?Z)0A&. M14&#YE36V/+UW_B397O^DG9MV7:'O-GV>7+<[PYYT6Q*Z1]"R,M-VK?YINO3 MX7QDU0W[MIR7PSKT[?*]7:>@T^DL##]G-(_SGS,GKZ<^_65BMUIME^FI6W[L MTZ'\,CA\=L-[WJ14FLEK.ZQ3633AN+ONSN&RD9OSY&;R_+9HAN"X(M!&(+DBT$9@NB+01J"[(M!&X+PBT$<@O2+01V"^(M!'HK MZJT$>BOJK01ZZ^AAFT!O1;V50&]%O95 ;T6]E4!O1;V50&]%O95 ;T6]E4!O M1;V50&]#O8U ;T.]C4!O0[V-0&\;O2PAT-M0;R/0VU!O(]#;4&\CT-M0;R/0 MVU!O(]#;4&\CT-M1;R?0VU%O)]#;46\GT-M1;R?0VTD4#OB'I' KTCZAT)](ZH=R30.XX^ M5OZGWKF<=BE?>[[7>/W_I+JYNZ:OPX681@'QCS^8)J[5-CJ8DC,^-J'>)?-V=6YTL])R8& M@R'+31.H"?W0UD@FHR>:Z545>L^;>-N7IADGCBJ?]!YW$]NL<:*MKE/MPHNNXRRVJ9@/ MVXI\>K[$B1[-;%;F5)A\5<.=.$71*&NTEW1F_/)(>XP[7[YU?E=F7.! M<>;4&>OCB3FZ/.YP).WJOHV%R(7R_",>$V/IJY^/VM,NJ/AE=MS>#^.6W7EX MUEVNW^.O9WRL?V$? J0/"=*' NDC ^EC"-+'+4@?=R!]W(/TP0&UL4$L! A0#% @ 88%H5[-P M9=7N *P( !$ ( !KP &1O8U!R;W!S+V-O&UL M4$L! A0#% @ 88%H5YE&PO=V]R:W-H965T&UL M4$L! A0#% @ 88%H5\C?MC0P!P W!T !@ ("!% X M 'AL+W=OG#0#: M90, X, 8 " @7H5 !X;"]W;W)K&PO=V]R:W-H965T&UL4$L! A0#% @ 88%H M5U5E=ZCX#P *ZH !@ ("!@2 'AL+W=O&PO=V]R:W-H M965T&UL4$L! A0#% @ 88%H5]YEDL5*% W4< !@ M ("!G$, 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ 88%H5P@Z M9 V/"P ."< !D ("!&FL 'AL+W=O&PO=V]R:W-H965T8)039%@4 .D/ 9 " @:A\ !X;"]W;W)K&UL4$L! A0#% @ 88%H5Y8EO9NG!0 X1$ !D M ("!]8$ 'AL+W=O&PO M=V]R:W-H965TX3;]%"08 M *X. 9 " @=6. !X;"]W;W)K&UL4$L! A0#% @ 88%H5Z&PO=V]R:W-H965T&=9EA6Q\ '!Q 9 M " @3J> !X;"]W;W)K&UL4$L! A0#% M @ 88%H5Z(RE%1T @ _@4 !D ("!S+T 'AL+W=O&UL4$L! A0#% @ 88%H5YJQ0$*R M!0 D1( !D ("!X\L 'AL+W=O&PO=V]R:W-H965T#B/.[V@0 +\/ 9 " @<[5 !X;"]W;W)K&UL4$L! A0#% @ 88%H5SJ=FMLF P 8@< !D M ("!W]H 'AL+W=O&PO=V]R M:W-H965T7G>3L\P( #0+ M 9 " @9SD !X;"]W;W)K&UL M4$L! A0#% @ 88%H5],1OJV8 @ / 4 !D ("!QN< M 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ M88%H5\!3Z6],!@ P28 !D ("!J/0 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ 88%H5T.FZR0A# R), !D M ("!FP\! 'AL+W=O&PO=V]R:W-H M965T&UL4$L! M A0#% @ 88%H5UB+:YJ\ P B0X !D ("!XB(! 'AL M+W=O&PO=V]R:W-H965TK=]_4=P0 # 6 9 " M@1,J 0!X;"]W;W)K&UL4$L! A0#% @ 88%H M5V W'G3C P R@T !D ("!P2X! 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ 88%H5PRT?1ML!0 +30 M !D ("!T3@! 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ 88%H5\31@AB< P J X !D M ("!R48! 'AL+W=O!P &0 @(&<2@$ >&PO=V]R:W-H965T M#NSYE0P, "T, 9 M " @9!- 0!X;"]W;W)K&UL4$L! A0# M% @ 88%H5^D8FC)G @ @4 !D ("!"E$! 'AL+W=O M&PO=V]R:W-H965TDL+0J.@, / 3 - " ;Y8 M 0!X;"]S='EL97,N>&UL4$L! A0#% @ 88%H5Y>*NQS $P( L M ( !(UP! %]R96QS+RYR96QS4$L! A0#% @ 88%H5R.E MR73)! X"0 \ ( !#%T! 'AL+W=O\ =;!X $ .P@ : " 0)B 0!X M;"]?7!E&UL 64$L%!@ _ #\ ,!$ !MF 0 $! end XML 68 Show.js IDEA: XBRL DOCUMENT // Edgar(tm) Renderer was created by staff of the U.S. Securities and Exchange Commission. Data and content created by government employees within the scope of their employment are not subject to domestic copyright protection. 17 U.S.C. 105. var Show={};Show.LastAR=null,Show.showAR=function(a,r,w){if(Show.LastAR)Show.hideAR();var e=a;while(e&&e.nodeName!='TABLE')e=e.nextSibling;if(!e||e.nodeName!='TABLE'){var ref=((window)?w.document:document).getElementById(r);if(ref){e=ref.cloneNode(!0); e.removeAttribute('id');a.parentNode.appendChild(e)}} if(e)e.style.display='block';Show.LastAR=e};Show.hideAR=function(){Show.LastAR.style.display='none'};Show.toggleNext=function(a){var e=a;while(e.nodeName!='DIV')e=e.nextSibling;if(!e.style){}else if(!e.style.display){}else{var d,p_;if(e.style.display=='none'){d='block';p='-'}else{d='none';p='+'} e.style.display=d;if(a.textContent){a.textContent=p+a.textContent.substring(1)}else{a.innerText=p+a.innerText.substring(1)}}} XML 69 report.css IDEA: XBRL DOCUMENT /* Updated 2009-11-04 */ /* v2.2.0.24 */ /* DefRef Styles */ ..report table.authRefData{ background-color: #def; border: 2px solid #2F4497; font-size: 1em; position: absolute; } ..report table.authRefData a { display: block; font-weight: bold; } ..report table.authRefData p { margin-top: 0px; } ..report table.authRefData .hide { background-color: #2F4497; padding: 1px 3px 0px 0px; text-align: right; } ..report table.authRefData .hide a:hover { background-color: #2F4497; } ..report table.authRefData .body { height: 150px; overflow: auto; width: 400px; } ..report table.authRefData table{ font-size: 1em; } /* Report Styles */ ..pl a, .pl a:visited { color: black; text-decoration: none; } /* table */ ..report { background-color: white; border: 2px solid #acf; clear: both; color: black; font: normal 8pt Helvetica, Arial, san-serif; margin-bottom: 2em; } ..report hr { border: 1px solid #acf; } /* Top labels */ ..report th { background-color: #acf; color: black; font-weight: bold; text-align: center; } ..report th.void { background-color: transparent; color: #000000; font: bold 10pt Helvetica, Arial, san-serif; text-align: left; } ..report .pl { text-align: left; vertical-align: top; white-space: normal; width: 200px; white-space: normal; /* word-wrap: break-word; */ } ..report td.pl a.a { cursor: pointer; display: block; width: 200px; overflow: hidden; } ..report td.pl div.a { width: 200px; } ..report td.pl a:hover { background-color: #ffc; } /* Header rows... */ ..report tr.rh { background-color: #acf; color: black; font-weight: bold; } /* Calendars... */ ..report .rc { background-color: #f0f0f0; } /* Even rows... */ ..report .re, .report .reu { background-color: #def; } ..report .reu td { border-bottom: 1px solid black; } /* Odd rows... */ ..report .ro, .report .rou { background-color: white; } ..report .rou td { border-bottom: 1px solid black; } ..report .rou table td, .report .reu table td { border-bottom: 0px solid black; } /* styles for footnote marker */ ..report .fn { white-space: nowrap; } /* styles for numeric types */ ..report .num, .report .nump { text-align: right; white-space: nowrap; } ..report .nump { padding-left: 2em; } ..report .nump { padding: 0px 0.4em 0px 2em; } /* styles for text types */ ..report .text { text-align: left; white-space: normal; } ..report .text .big { margin-bottom: 1em; width: 17em; } ..report .text .more { display: none; } ..report .text .note { font-style: italic; font-weight: bold; } ..report .text .small { width: 10em; } ..report sup { font-style: italic; } ..report .outerFootnotes { font-size: 1em; } XML 70 FilingSummary.xml IDEA: XBRL DOCUMENT 3.23.3 html 273 321 1 false 69 0 false 6 false false R1.htm 00090 - Document - Document And Entity Information Sheet http://www.pdf.com/role/DocumentDocumentAndEntityInformation Document And Entity Information Cover 1 false false R2.htm 00100 - Statement - CONDENSED CONSOLIDATED BALANCE SHEETS Sheet http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets CONDENSED CONSOLIDATED BALANCE SHEETS Statements 2 false false R3.htm 00105 - Statement - CONDENSED CONSOLIDATED BALANCE SHEETS (Parentheticals) Sheet http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheetsParentheticals CONDENSED CONSOLIDATED BALANCE SHEETS (Parentheticals) Statements 3 false false R4.htm 00200 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF COMPREHENSIVE LOSS Sheet http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveLoss CONDENSED CONSOLIDATED STATEMENTS OF COMPREHENSIVE LOSS Statements 4 false false R5.htm 00300 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF STOCKHOLDERS EQUITY Sheet http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfStockholdersEquity CONDENSED CONSOLIDATED STATEMENTS OF STOCKHOLDERS EQUITY Statements 5 false false R6.htm 00400 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF CASH FLOWS Sheet http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows CONDENSED CONSOLIDATED STATEMENTS OF CASH FLOWS Statements 6 false false R7.htm 10101 - Disclosure - DESCRIPTION OF BUSINESS AND SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES Sheet http://www.pdf.com/role/DisclosureDescriptionOfBusinessAndSummaryOfSignificantAccountingPolicies DESCRIPTION OF BUSINESS AND SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES Notes 7 false false R8.htm 10201 - Disclosure - REVENUE FROM CONTRACT WITH CUSTOMERS Sheet http://www.pdf.com/role/DisclosureRevenueFromContractWithCustomers REVENUE FROM CONTRACT WITH CUSTOMERS Notes 8 false false R9.htm 10301 - Disclosure - BALANCE SHEET COMPONENTS Sheet http://www.pdf.com/role/DisclosureBalanceSheetComponents BALANCE SHEET COMPONENTS Notes 9 false false R10.htm 10401 - Disclosure - LEASES Sheet http://www.pdf.com/role/DisclosureLeases LEASES Notes 10 false false R11.htm 10501 - Disclosure - STOCKHOLDERS' EQUITY Sheet http://www.pdf.com/role/DisclosureStockholdersEquity STOCKHOLDERS' EQUITY Notes 11 false false R12.htm 10601 - Disclosure - EMPLOYEE BENEFIT PLANS Sheet http://www.pdf.com/role/DisclosureEmployeeBenefitPlans EMPLOYEE BENEFIT PLANS Notes 12 false false R13.htm 10701 - Disclosure - INCOME TAXES Sheet http://www.pdf.com/role/DisclosureIncomeTaxes INCOME TAXES Notes 13 false false R14.htm 10801 - Disclosure - NET INCOME (LOSS) PER SHARE Sheet http://www.pdf.com/role/DisclosureNetIncomeLossPerShare NET INCOME (LOSS) PER SHARE Notes 14 false false R15.htm 10901 - Disclosure - CUSTOMER AND GEOGRAPHIC INFORMATION Sheet http://www.pdf.com/role/DisclosureCustomerAndGeographicInformation CUSTOMER AND GEOGRAPHIC INFORMATION Notes 15 false false R16.htm 11001 - Disclosure - FAIR VALUE MEASUREMENTS Sheet http://www.pdf.com/role/DisclosureFairValueMeasurements FAIR VALUE MEASUREMENTS Notes 16 false false R17.htm 11101 - Disclosure - COMMITMENTS AND CONTINGENCIES Sheet http://www.pdf.com/role/DisclosureCommitmentsAndContingencies COMMITMENTS AND CONTINGENCIES Notes 17 false false R18.htm 11201 - Disclosure - STRATEGIC PARTNERSHIP AGREEMENT WITH ADVANTEST AND RELATED PARTY TRANSACTIONS Sheet http://www.pdf.com/role/DisclosureStrategicPartnershipAgreementWithAdvantestAndRelatedPartyTransactions STRATEGIC PARTNERSHIP AGREEMENT WITH ADVANTEST AND RELATED PARTY TRANSACTIONS Notes 18 false false R19.htm 11301 - Disclosure - BUSINESS COMBINATION Sheet http://www.pdf.com/role/DisclosureBusinessCombination BUSINESS COMBINATION Notes 19 false false R20.htm 20102 - Disclosure - SIGNIFICANT ACCOUNTING POLICIES (Policies) Sheet http://www.pdf.com/role/DisclosureSignificantAccountingPoliciesPolicies SIGNIFICANT ACCOUNTING POLICIES (Policies) Policies 20 false false R21.htm 30203 - Disclosure - REVENUE FROM CONTRACT WITH CUSTOMERS (Tables) Sheet http://www.pdf.com/role/DisclosureRevenueFromContractWithCustomersTables REVENUE FROM CONTRACT WITH CUSTOMERS (Tables) Tables http://www.pdf.com/role/DisclosureRevenueFromContractWithCustomers 21 false false R22.htm 30303 - Disclosure - BALANCE SHEET COMPONENTS (Tables) Sheet http://www.pdf.com/role/DisclosureBalanceSheetComponentsTables BALANCE SHEET COMPONENTS (Tables) Tables http://www.pdf.com/role/DisclosureBalanceSheetComponents 22 false false R23.htm 30403 - Disclosure - LEASES (Tables) Sheet http://www.pdf.com/role/DisclosureLeasesTables LEASES (Tables) Tables http://www.pdf.com/role/DisclosureLeases 23 false false R24.htm 30603 - Disclosure - EMPLOYEE BENEFIT PLANS (Tables) Sheet http://www.pdf.com/role/DisclosureEmployeeBenefitPlansTables EMPLOYEE BENEFIT PLANS (Tables) Tables http://www.pdf.com/role/DisclosureEmployeeBenefitPlans 24 false false R25.htm 30803 - Disclosure - NET INCOME (LOSS) PER SHARE (Tables) Sheet http://www.pdf.com/role/DisclosureNetIncomeLossPerShareTables NET INCOME (LOSS) PER SHARE (Tables) Tables http://www.pdf.com/role/DisclosureNetIncomeLossPerShare 25 false false R26.htm 30903 - Disclosure - CUSTOMER AND GEOGRAPHIC INFORMATION (Tables) Sheet http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationTables CUSTOMER AND GEOGRAPHIC INFORMATION (Tables) Tables http://www.pdf.com/role/DisclosureCustomerAndGeographicInformation 26 false false R27.htm 31303 - Disclosure - BUSINESS COMBINATION (Tables) Sheet http://www.pdf.com/role/DisclosureBusinessCombinationTables BUSINESS COMBINATION (Tables) Tables http://www.pdf.com/role/DisclosureBusinessCombination 27 false false R28.htm 40201 - Disclosure - REVENUE FROM CONTRACT WITH CUSTOMERS (Details) Sheet http://www.pdf.com/role/DisclosureRevenueFromContractWithCustomersDetails REVENUE FROM CONTRACT WITH CUSTOMERS (Details) Details http://www.pdf.com/role/DisclosureRevenueFromContractWithCustomersTables 28 false false R29.htm 40202 - Disclosure - REVENUE FROM CONTRACT WITH CUSTOMERS - Disaggregation of Revenue (Details) Sheet http://www.pdf.com/role/DisclosureRevenueFromContractWithCustomersDisaggregationOfRevenueDetails REVENUE FROM CONTRACT WITH CUSTOMERS - Disaggregation of Revenue (Details) Details 29 false false R30.htm 40203 - Disclosure - REVENUE FROM CONTRACT WITH CUSTOMERS - Additional information (Details) Sheet http://www.pdf.com/role/DisclosureRevenueFromContractWithCustomersAdditionalInformationDetails REVENUE FROM CONTRACT WITH CUSTOMERS - Additional information (Details) Details 30 false false R31.htm 40301 - Disclosure - BALANCE SHEET COMPONENTS (Details) Sheet http://www.pdf.com/role/DisclosureBalanceSheetComponentsDetails BALANCE SHEET COMPONENTS (Details) Details http://www.pdf.com/role/DisclosureBalanceSheetComponentsTables 31 false false R32.htm 40302 - Disclosure - BALANCE SHEET COMPONENTS - Property and Equipment (Details) Sheet http://www.pdf.com/role/DisclosureBalanceSheetComponentsPropertyAndEquipmentDetails BALANCE SHEET COMPONENTS - Property and Equipment (Details) Details 32 false false R33.htm 40303 - Disclosure - BALANCE SHEET COMPONENTS - Intangible Assets (Details) Sheet http://www.pdf.com/role/DisclosureBalanceSheetComponentsIntangibleAssetsDetails BALANCE SHEET COMPONENTS - Intangible Assets (Details) Details 33 false false R34.htm 40304 - Disclosure - BALANCE SHEET COMPONENTS - Annual Amortization of Identifiable Intangible Assets (Details) Sheet http://www.pdf.com/role/DisclosureBalanceSheetComponentsAnnualAmortizationOfIdentifiableIntangibleAssetsDetails BALANCE SHEET COMPONENTS - Annual Amortization of Identifiable Intangible Assets (Details) Details 34 false false R35.htm 40401 - Disclosure - LEASES - Other (Details) Sheet http://www.pdf.com/role/DisclosureLeasesOtherDetails LEASES - Other (Details) Details 35 false false R36.htm 40402 - Disclosure - LEASES - Lease Cost (Details) Sheet http://www.pdf.com/role/DisclosureLeasesLeaseCostDetails LEASES - Lease Cost (Details) Details 36 false false R37.htm 40403 - Disclosure - LEASES - Maturity of Operating Lease Liabilities (Details) Sheet http://www.pdf.com/role/DisclosureLeasesMaturityOfOperatingLeaseLiabilitiesDetails LEASES - Maturity of Operating Lease Liabilities (Details) Details 37 false false R38.htm 40501 - Disclosure - STOCKHOLDERS EQUITY (Details) Sheet http://www.pdf.com/role/DisclosureStockholdersEquityDetails STOCKHOLDERS EQUITY (Details) Details 38 false false R39.htm 40601 - Disclosure - EMPLOYEE BENEFIT PLANS - Other (Details) Sheet http://www.pdf.com/role/DisclosureEmployeeBenefitPlansOtherDetails EMPLOYEE BENEFIT PLANS - Other (Details) Details 39 false false R40.htm 40602 - Disclosure - EMPLOYEE BENEFIT PLANS - Valuation Assumptions for ESPP (Details) Sheet http://www.pdf.com/role/DisclosureEmployeeBenefitPlansValuationAssumptionsForEsppDetails EMPLOYEE BENEFIT PLANS - Valuation Assumptions for ESPP (Details) Details 40 false false R41.htm 40603 - Disclosure - EMPLOYEE BENEFIT PLANS - Allocation of Recognized Period Costs (Details) Sheet http://www.pdf.com/role/DisclosureEmployeeBenefitPlansAllocationOfRecognizedPeriodCostsDetails EMPLOYEE BENEFIT PLANS - Allocation of Recognized Period Costs (Details) Details 41 false false R42.htm 40604 - Disclosure - EMPLOYEE BENEFIT PLANS - Stock Options Activity (Details) Sheet http://www.pdf.com/role/DisclosureEmployeeBenefitPlansStockOptionsActivityDetails EMPLOYEE BENEFIT PLANS - Stock Options Activity (Details) Details 42 false false R43.htm 40605 - Disclosure - EMPLOYEE BENEFIT PLANS - Nonvested Restricted Stock Units Activity (Details) Sheet http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNonvestedRestrictedStockUnitsActivityDetails EMPLOYEE BENEFIT PLANS - Nonvested Restricted Stock Units Activity (Details) Details 43 false false R44.htm 40701 - Disclosure - INCOME TAXES (Details) Sheet http://www.pdf.com/role/DisclosureIncomeTaxesDetails INCOME TAXES (Details) Details http://www.pdf.com/role/DisclosureIncomeTaxes 44 false false R45.htm 40801 - Disclosure - NET INCOME (LOSS) PER SHARE - Calculation of Earnings Per Share (Details) Sheet http://www.pdf.com/role/DisclosureNetIncomeLossPerShareCalculationOfEarningsPerShareDetails NET INCOME (LOSS) PER SHARE - Calculation of Earnings Per Share (Details) Details http://www.pdf.com/role/DisclosureNetIncomeLossPerShareTables 45 false false R46.htm 40802 - Disclosure - NET INCOME (LOSS) PER SHARE - Anti-dilutive Securities (Details) Sheet http://www.pdf.com/role/DisclosureNetIncomeLossPerShareAntiDilutiveSecuritiesDetails NET INCOME (LOSS) PER SHARE - Anti-dilutive Securities (Details) Details http://www.pdf.com/role/DisclosureNetIncomeLossPerShareTables 46 false false R47.htm 40901 - Disclosure - CUSTOMER AND GEOGRAPHIC INFORMATION - Other (Details) Sheet http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationOtherDetails CUSTOMER AND GEOGRAPHIC INFORMATION - Other (Details) Details http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationTables 47 false false R48.htm 40902 - Disclosure - CUSTOMER AND GEOGRAPHIC INFORMATION - Revenue Percentage by Major Customers (Details) Sheet http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationRevenuePercentageByMajorCustomersDetails CUSTOMER AND GEOGRAPHIC INFORMATION - Revenue Percentage by Major Customers (Details) Details 48 false false R49.htm 40903 - Disclosure - CUSTOMER AND GEOGRAPHIC INFORMATION - Revenues by Geographic Area (Details) Sheet http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationRevenuesByGeographicAreaDetails CUSTOMER AND GEOGRAPHIC INFORMATION - Revenues by Geographic Area (Details) Details 49 false false R50.htm 40904 - Disclosure - CUSTOMER AND GEOGRAPHIC INFORMATION - Long-lived Assets by Geographic Area (Details) Sheet http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationLongLivedAssetsByGeographicAreaDetails CUSTOMER AND GEOGRAPHIC INFORMATION - Long-lived Assets by Geographic Area (Details) Details 50 false false R51.htm 41001 - Disclosure - FAIR VALUE MEASUREMENTS - Fair Value, Assets Measured on a Recurring Basis (Details) Sheet http://www.pdf.com/role/DisclosureFairValueMeasurementsFairValueAssetsMeasuredOnRecurringBasisDetails FAIR VALUE MEASUREMENTS - Fair Value, Assets Measured on a Recurring Basis (Details) Details 51 false false R52.htm 41101 - Disclosure - COMMITMENTS AND CONTINGENCIES (Details) Sheet http://www.pdf.com/role/DisclosureCommitmentsAndContingenciesDetails COMMITMENTS AND CONTINGENCIES (Details) Details http://www.pdf.com/role/DisclosureCommitmentsAndContingencies 52 false false R53.htm 41201 - Disclosure - STRATEGIC PARTNERSHIP AGREEMENT WITH ADVANTEST AND RELATED PARTY TRANSACTIONS (Details) Sheet http://www.pdf.com/role/DisclosureStrategicPartnershipAgreementWithAdvantestAndRelatedPartyTransactionsDetails STRATEGIC PARTNERSHIP AGREEMENT WITH ADVANTEST AND RELATED PARTY TRANSACTIONS (Details) Details http://www.pdf.com/role/DisclosureStrategicPartnershipAgreementWithAdvantestAndRelatedPartyTransactions 53 false false R54.htm 41301 - Disclosure - BUSINESS COMBINATION - Other (Details) Sheet http://www.pdf.com/role/DisclosureBusinessCombinationOtherDetails BUSINESS COMBINATION - Other (Details) Details 54 false false R55.htm 41302 - Disclosure - BUSINESS COMBINATION - Fair Values of Assets Acquired and Liabilities Assumed (Details) Sheet http://www.pdf.com/role/DisclosureBusinessCombinationFairValuesOfAssetsAcquiredAndLiabilitiesAssumedDetails BUSINESS COMBINATION - Fair Values of Assets Acquired and Liabilities Assumed (Details) Details 55 false false All Reports Book All Reports pdfs-20230930.xsd pdfs-20230930_cal.xml pdfs-20230930_def.xml pdfs-20230930_lab.xml pdfs-20230930_pre.xml pdfs-20230930x10q.htm http://fasb.org/us-gaap/2023 http://xbrl.sec.gov/dei/2023 true true JSON 73 MetaLinks.json IDEA: XBRL DOCUMENT { "version": "2.2", "instance": { "pdfs-20230930x10q.htm": { "nsprefix": "pdfs", "nsuri": "http://www.pdf.com/20230930", "dts": { "schema": { "local": [ "pdfs-20230930.xsd" ], "remote": [ "http://www.xbrl.org/2003/xbrl-instance-2003-12-31.xsd", "http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd", "http://www.xbrl.org/2003/xl-2003-12-31.xsd", "http://www.xbrl.org/2003/xlink-2003-12-31.xsd", "http://www.xbrl.org/2005/xbrldt-2005.xsd", "http://www.xbrl.org/2006/ref-2006-02-27.xsd", "http://www.xbrl.org/lrr/arcrole/esma-arcrole-2018-11-21.xsd", "http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd", "http://www.xbrl.org/lrr/role/reference-2009-12-16.xsd", "https://www.xbrl.org/2020/extensible-enumerations-2.0.xsd", "https://www.xbrl.org/dtr/type/2020-01-21/types.xsd", "https://www.xbrl.org/dtr/type/2022-03-31/types.xsd", "https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd", "https://xbrl.fasb.org/srt/2023/elts/srt-roles-2023.xsd", "https://xbrl.fasb.org/srt/2023/elts/srt-types-2023.xsd", "https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd", "https://xbrl.fasb.org/us-gaap/2023/elts/us-roles-2023.xsd", "https://xbrl.fasb.org/us-gaap/2023/elts/us-types-2023.xsd", "https://xbrl.sec.gov/country/2023/country-2023.xsd", "https://xbrl.sec.gov/dei/2023/dei-2023.xsd" ] }, "calculationLink": { "local": [ "pdfs-20230930_cal.xml" ] }, "definitionLink": { "local": [ "pdfs-20230930_def.xml" ] }, "labelLink": { "local": [ "pdfs-20230930_lab.xml" ] }, "presentationLink": { "local": [ "pdfs-20230930_pre.xml" ] }, "inline": { "local": [ "pdfs-20230930x10q.htm" ] } }, "keyStandard": 281, "keyCustom": 40, "axisStandard": 22, "axisCustom": 0, "memberStandard": 37, "memberCustom": 28, "hidden": { "total": 17, "http://xbrl.sec.gov/dei/2023": 5, "http://fasb.org/us-gaap/2023": 10, "http://www.pdf.com/20230930": 2 }, "contextCount": 273, "entityCount": 1, "segmentCount": 69, "elementCount": 470, "unitCount": 6, "baseTaxonomies": { "http://xbrl.sec.gov/dei/2023": 29, "http://fasb.org/us-gaap/2023": 771 }, "report": { "R1": { "role": "http://www.pdf.com/role/DocumentDocumentAndEntityInformation", "longName": "00090 - Document - Document And Entity Information", "shortName": "Document And Entity Information", "isDefault": "true", "groupType": "document", "subGroupType": "", "menuCat": "Cover", "order": "1", "firstAnchor": { "contextRef": "Duration_1_1_2023_To_9_30_2023_17pOxCYnqUCOCopo8FUMFQ", "name": "dei:DocumentType", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "p", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20230930x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2023_To_9_30_2023_17pOxCYnqUCOCopo8FUMFQ", "name": "dei:DocumentType", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "p", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20230930x10q.htm", "first": true, "unique": true } }, "R2": { "role": "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets", "longName": "00100 - Statement - CONDENSED CONSOLIDATED BALANCE SHEETS", "shortName": "CONDENSED CONSOLIDATED BALANCE SHEETS", "isDefault": "false", "groupType": "statement", "subGroupType": "", "menuCat": "Statements", "order": "2", "firstAnchor": { "contextRef": "As_Of_9_30_2023_1xofeFggSUGcVlwl9x1iqA", "name": "us-gaap:CashAndCashEquivalentsAtCarryingValue", "unitRef": "Unit_Standard_USD_ZEWdaBcF80uYqOugHU2MWg", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20230930x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "As_Of_9_30_2023_1xofeFggSUGcVlwl9x1iqA", "name": "us-gaap:CashAndCashEquivalentsAtCarryingValue", "unitRef": "Unit_Standard_USD_ZEWdaBcF80uYqOugHU2MWg", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20230930x10q.htm", "first": true, "unique": true } }, "R3": { "role": "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheetsParentheticals", "longName": "00105 - Statement - CONDENSED CONSOLIDATED BALANCE SHEETS (Parentheticals)", "shortName": "CONDENSED CONSOLIDATED BALANCE SHEETS (Parentheticals)", "isDefault": "false", "groupType": "statement", "subGroupType": "parenthetical", "menuCat": "Statements", "order": "3", "firstAnchor": { "contextRef": "As_Of_9_30_2023_1xofeFggSUGcVlwl9x1iqA", "name": "us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent", "unitRef": "Unit_Standard_USD_ZEWdaBcF80uYqOugHU2MWg", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20230930x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "As_Of_9_30_2023_1xofeFggSUGcVlwl9x1iqA", "name": "us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent", "unitRef": "Unit_Standard_USD_ZEWdaBcF80uYqOugHU2MWg", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20230930x10q.htm", "first": true, "unique": true } }, "R4": { "role": "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveLoss", "longName": "00200 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF COMPREHENSIVE LOSS", "shortName": "CONDENSED CONSOLIDATED STATEMENTS OF COMPREHENSIVE LOSS", "isDefault": "false", "groupType": "statement", "subGroupType": "", "menuCat": "Statements", "order": "4", "firstAnchor": { "contextRef": "Duration_7_1_2023_To_9_30_2023_HMLAvVl7mUWgkF23UZyfqg", "name": "us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax", "unitRef": "Unit_Standard_USD_ZEWdaBcF80uYqOugHU2MWg", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20230930x10q.htm", "first": true }, "uniqueAnchor": { "contextRef": "Duration_7_1_2023_To_9_30_2023_HMLAvVl7mUWgkF23UZyfqg", "name": "us-gaap:CostOfRevenue", "unitRef": "Unit_Standard_USD_ZEWdaBcF80uYqOugHU2MWg", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20230930x10q.htm", "unique": true } }, "R5": { "role": "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfStockholdersEquity", "longName": "00300 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF STOCKHOLDERS EQUITY", "shortName": "CONDENSED CONSOLIDATED STATEMENTS OF STOCKHOLDERS EQUITY", "isDefault": "false", "groupType": "statement", "subGroupType": "", "menuCat": "Statements", "order": "5", "firstAnchor": { "contextRef": "As_Of_12_31_2021_us-gaap_StatementEquityComponentsAxis_pdfs_CommonStockOutstandingMember_auoOTutwME-cezIk49J6bA", "name": "us-gaap:SharesOutstanding", "unitRef": "Unit_Standard_shares_VjJ94AtdiEay_9O9RUQpyA", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "span", "p", "td", "tr", "table", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20230930x10q.htm", "first": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2022_To_3_31_2022_us-gaap_StatementEquityComponentsAxis_pdfs_CommonStockOutstandingMember_Tb_57TSez0KGtBjdHLp2jw", "name": "us-gaap:StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans", "unitRef": "Unit_Standard_shares_VjJ94AtdiEay_9O9RUQpyA", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "span", "p", "td", "tr", "table", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20230930x10q.htm", "unique": true } }, "R6": { "role": "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows", "longName": "00400 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF CASH FLOWS", "shortName": "CONDENSED CONSOLIDATED STATEMENTS OF CASH FLOWS", "isDefault": "false", "groupType": "statement", "subGroupType": "", "menuCat": "Statements", "order": "6", "firstAnchor": { "contextRef": "Duration_1_1_2023_To_9_30_2023_17pOxCYnqUCOCopo8FUMFQ", "name": "us-gaap:ProfitLoss", "unitRef": "Unit_Standard_USD_ZEWdaBcF80uYqOugHU2MWg", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20230930x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2023_To_9_30_2023_17pOxCYnqUCOCopo8FUMFQ", "name": "us-gaap:ProfitLoss", "unitRef": "Unit_Standard_USD_ZEWdaBcF80uYqOugHU2MWg", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20230930x10q.htm", "first": true, "unique": true } }, "R7": { "role": "http://www.pdf.com/role/DisclosureDescriptionOfBusinessAndSummaryOfSignificantAccountingPolicies", "longName": "10101 - Disclosure - DESCRIPTION OF BUSINESS AND SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES", "shortName": "DESCRIPTION OF BUSINESS AND SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "7", "firstAnchor": { "contextRef": "Duration_1_1_2023_To_9_30_2023_17pOxCYnqUCOCopo8FUMFQ", "name": "us-gaap:BasisOfPresentationAndSignificantAccountingPoliciesTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20230930x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2023_To_9_30_2023_17pOxCYnqUCOCopo8FUMFQ", "name": "us-gaap:BasisOfPresentationAndSignificantAccountingPoliciesTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20230930x10q.htm", "first": true, "unique": true } }, "R8": { "role": "http://www.pdf.com/role/DisclosureRevenueFromContractWithCustomers", "longName": "10201 - Disclosure - REVENUE FROM CONTRACT WITH CUSTOMERS", "shortName": "REVENUE FROM CONTRACT WITH CUSTOMERS", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "8", "firstAnchor": { "contextRef": "Duration_1_1_2023_To_9_30_2023_17pOxCYnqUCOCopo8FUMFQ", "name": "us-gaap:RevenueFromContractWithCustomerTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20230930x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2023_To_9_30_2023_17pOxCYnqUCOCopo8FUMFQ", "name": "us-gaap:RevenueFromContractWithCustomerTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20230930x10q.htm", "first": true, "unique": true } }, "R9": { "role": "http://www.pdf.com/role/DisclosureBalanceSheetComponents", "longName": "10301 - Disclosure - BALANCE SHEET COMPONENTS", "shortName": "BALANCE SHEET COMPONENTS", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "9", "firstAnchor": { "contextRef": "Duration_1_1_2023_To_9_30_2023_17pOxCYnqUCOCopo8FUMFQ", "name": "us-gaap:SupplementalBalanceSheetDisclosuresTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20230930x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2023_To_9_30_2023_17pOxCYnqUCOCopo8FUMFQ", "name": "us-gaap:SupplementalBalanceSheetDisclosuresTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20230930x10q.htm", "first": true, "unique": true } }, "R10": { "role": "http://www.pdf.com/role/DisclosureLeases", "longName": "10401 - Disclosure - LEASES", "shortName": "LEASES", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "10", "firstAnchor": { "contextRef": "Duration_1_1_2023_To_9_30_2023_17pOxCYnqUCOCopo8FUMFQ", "name": "us-gaap:LesseeOperatingLeasesTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20230930x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2023_To_9_30_2023_17pOxCYnqUCOCopo8FUMFQ", "name": "us-gaap:LesseeOperatingLeasesTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20230930x10q.htm", "first": true, "unique": true } }, "R11": { "role": "http://www.pdf.com/role/DisclosureStockholdersEquity", "longName": "10501 - Disclosure - STOCKHOLDERS' EQUITY", "shortName": "STOCKHOLDERS' EQUITY", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "11", "firstAnchor": { "contextRef": "Duration_1_1_2023_To_9_30_2023_17pOxCYnqUCOCopo8FUMFQ", "name": "us-gaap:StockholdersEquityNoteDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20230930x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2023_To_9_30_2023_17pOxCYnqUCOCopo8FUMFQ", "name": "us-gaap:StockholdersEquityNoteDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20230930x10q.htm", "first": true, "unique": true } }, "R12": { "role": "http://www.pdf.com/role/DisclosureEmployeeBenefitPlans", "longName": "10601 - Disclosure - EMPLOYEE BENEFIT PLANS", "shortName": "EMPLOYEE BENEFIT PLANS", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "12", "firstAnchor": { "contextRef": "Duration_1_1_2023_To_9_30_2023_17pOxCYnqUCOCopo8FUMFQ", "name": "us-gaap:CompensationAndEmployeeBenefitPlansTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20230930x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2023_To_9_30_2023_17pOxCYnqUCOCopo8FUMFQ", "name": "us-gaap:CompensationAndEmployeeBenefitPlansTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20230930x10q.htm", "first": true, "unique": true } }, "R13": { "role": "http://www.pdf.com/role/DisclosureIncomeTaxes", "longName": "10701 - Disclosure - INCOME TAXES", "shortName": "INCOME TAXES", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "13", "firstAnchor": { "contextRef": "Duration_1_1_2023_To_9_30_2023_17pOxCYnqUCOCopo8FUMFQ", "name": "us-gaap:IncomeTaxDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20230930x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2023_To_9_30_2023_17pOxCYnqUCOCopo8FUMFQ", "name": "us-gaap:IncomeTaxDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20230930x10q.htm", "first": true, "unique": true } }, "R14": { "role": "http://www.pdf.com/role/DisclosureNetIncomeLossPerShare", "longName": "10801 - Disclosure - NET INCOME (LOSS) PER SHARE", "shortName": "NET INCOME (LOSS) PER SHARE", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "14", "firstAnchor": { "contextRef": "Duration_1_1_2023_To_9_30_2023_17pOxCYnqUCOCopo8FUMFQ", "name": "us-gaap:EarningsPerShareTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20230930x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2023_To_9_30_2023_17pOxCYnqUCOCopo8FUMFQ", "name": "us-gaap:EarningsPerShareTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20230930x10q.htm", "first": true, "unique": true } }, "R15": { "role": "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformation", "longName": "10901 - Disclosure - CUSTOMER AND GEOGRAPHIC INFORMATION", "shortName": "CUSTOMER AND GEOGRAPHIC INFORMATION", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "15", "firstAnchor": { "contextRef": "Duration_1_1_2023_To_9_30_2023_17pOxCYnqUCOCopo8FUMFQ", "name": "us-gaap:SegmentReportingDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20230930x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2023_To_9_30_2023_17pOxCYnqUCOCopo8FUMFQ", "name": "us-gaap:SegmentReportingDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20230930x10q.htm", "first": true, "unique": true } }, "R16": { "role": "http://www.pdf.com/role/DisclosureFairValueMeasurements", "longName": "11001 - Disclosure - FAIR VALUE MEASUREMENTS", "shortName": "FAIR VALUE MEASUREMENTS", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "16", "firstAnchor": { "contextRef": "Duration_1_1_2023_To_9_30_2023_17pOxCYnqUCOCopo8FUMFQ", "name": "us-gaap:FinancialInstrumentsDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20230930x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2023_To_9_30_2023_17pOxCYnqUCOCopo8FUMFQ", "name": "us-gaap:FinancialInstrumentsDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20230930x10q.htm", "first": true, "unique": true } }, "R17": { "role": "http://www.pdf.com/role/DisclosureCommitmentsAndContingencies", "longName": "11101 - Disclosure - COMMITMENTS AND CONTINGENCIES", "shortName": "COMMITMENTS AND CONTINGENCIES", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "17", "firstAnchor": { "contextRef": "Duration_1_1_2023_To_9_30_2023_17pOxCYnqUCOCopo8FUMFQ", "name": "us-gaap:CommitmentsAndContingenciesDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20230930x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2023_To_9_30_2023_17pOxCYnqUCOCopo8FUMFQ", "name": "us-gaap:CommitmentsAndContingenciesDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20230930x10q.htm", "first": true, "unique": true } }, "R18": { "role": "http://www.pdf.com/role/DisclosureStrategicPartnershipAgreementWithAdvantestAndRelatedPartyTransactions", "longName": "11201 - Disclosure - STRATEGIC PARTNERSHIP AGREEMENT WITH ADVANTEST AND RELATED PARTY TRANSACTIONS", "shortName": "STRATEGIC PARTNERSHIP AGREEMENT WITH ADVANTEST AND RELATED PARTY TRANSACTIONS", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "18", "firstAnchor": { "contextRef": "Duration_1_1_2023_To_9_30_2023_17pOxCYnqUCOCopo8FUMFQ", "name": "us-gaap:RelatedPartyTransactionsDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20230930x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2023_To_9_30_2023_17pOxCYnqUCOCopo8FUMFQ", "name": "us-gaap:RelatedPartyTransactionsDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20230930x10q.htm", "first": true, "unique": true } }, "R19": { "role": "http://www.pdf.com/role/DisclosureBusinessCombination", "longName": "11301 - Disclosure - BUSINESS COMBINATION", "shortName": "BUSINESS COMBINATION", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "19", "firstAnchor": { "contextRef": "Duration_1_1_2023_To_9_30_2023_17pOxCYnqUCOCopo8FUMFQ", "name": "us-gaap:BusinessCombinationDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20230930x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2023_To_9_30_2023_17pOxCYnqUCOCopo8FUMFQ", "name": "us-gaap:BusinessCombinationDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20230930x10q.htm", "first": true, "unique": true } }, "R20": { "role": "http://www.pdf.com/role/DisclosureSignificantAccountingPoliciesPolicies", "longName": "20102 - Disclosure - SIGNIFICANT ACCOUNTING POLICIES (Policies)", "shortName": "SIGNIFICANT ACCOUNTING POLICIES (Policies)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "policies", "menuCat": "Policies", "order": "20", "firstAnchor": { "contextRef": "Duration_1_1_2023_To_9_30_2023_17pOxCYnqUCOCopo8FUMFQ", "name": "us-gaap:BasisOfAccountingPolicyPolicyTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "us-gaap:BasisOfPresentationAndSignificantAccountingPoliciesTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20230930x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2023_To_9_30_2023_17pOxCYnqUCOCopo8FUMFQ", "name": "us-gaap:BasisOfAccountingPolicyPolicyTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "us-gaap:BasisOfPresentationAndSignificantAccountingPoliciesTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20230930x10q.htm", "first": true, "unique": true } }, "R21": { "role": "http://www.pdf.com/role/DisclosureRevenueFromContractWithCustomersTables", "longName": "30203 - Disclosure - REVENUE FROM CONTRACT WITH CUSTOMERS (Tables)", "shortName": "REVENUE FROM CONTRACT WITH CUSTOMERS (Tables)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "tables", "menuCat": "Tables", "order": "21", "firstAnchor": { "contextRef": "Duration_1_1_2023_To_9_30_2023_17pOxCYnqUCOCopo8FUMFQ", "name": "us-gaap:DisaggregationOfRevenueTableTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20230930x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2023_To_9_30_2023_17pOxCYnqUCOCopo8FUMFQ", "name": "us-gaap:DisaggregationOfRevenueTableTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20230930x10q.htm", "first": true, "unique": true } }, "R22": { "role": "http://www.pdf.com/role/DisclosureBalanceSheetComponentsTables", "longName": "30303 - Disclosure - BALANCE SHEET COMPONENTS (Tables)", "shortName": "BALANCE SHEET COMPONENTS (Tables)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "tables", "menuCat": "Tables", "order": "22", "firstAnchor": { "contextRef": "Duration_1_1_2023_To_9_30_2023_17pOxCYnqUCOCopo8FUMFQ", "name": "us-gaap:PropertyPlantAndEquipmentTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "us-gaap:SupplementalBalanceSheetDisclosuresTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20230930x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2023_To_9_30_2023_17pOxCYnqUCOCopo8FUMFQ", "name": "us-gaap:PropertyPlantAndEquipmentTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "us-gaap:SupplementalBalanceSheetDisclosuresTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20230930x10q.htm", "first": true, "unique": true } }, "R23": { "role": "http://www.pdf.com/role/DisclosureLeasesTables", "longName": "30403 - Disclosure - LEASES (Tables)", "shortName": "LEASES (Tables)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "tables", "menuCat": "Tables", "order": "23", "firstAnchor": { "contextRef": "Duration_1_1_2023_To_9_30_2023_17pOxCYnqUCOCopo8FUMFQ", "name": "us-gaap:LeaseCostTableTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "us-gaap:LesseeOperatingLeasesTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20230930x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2023_To_9_30_2023_17pOxCYnqUCOCopo8FUMFQ", "name": "us-gaap:LeaseCostTableTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "us-gaap:LesseeOperatingLeasesTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20230930x10q.htm", "first": true, "unique": true } }, "R24": { "role": "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansTables", "longName": "30603 - Disclosure - EMPLOYEE BENEFIT PLANS (Tables)", "shortName": "EMPLOYEE BENEFIT PLANS (Tables)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "tables", "menuCat": "Tables", "order": "24", "firstAnchor": { "contextRef": "Duration_1_1_2023_To_9_30_2023_17pOxCYnqUCOCopo8FUMFQ", "name": "us-gaap:ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "us-gaap:EmployeeStockOwnershipPlanESOPPolicy", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20230930x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2023_To_9_30_2023_17pOxCYnqUCOCopo8FUMFQ", "name": "us-gaap:ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "us-gaap:EmployeeStockOwnershipPlanESOPPolicy", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20230930x10q.htm", "first": true, "unique": true } }, "R25": { "role": "http://www.pdf.com/role/DisclosureNetIncomeLossPerShareTables", "longName": "30803 - Disclosure - NET INCOME (LOSS) PER SHARE (Tables)", "shortName": "NET INCOME (LOSS) PER SHARE (Tables)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "tables", "menuCat": "Tables", "order": "25", "firstAnchor": { "contextRef": "Duration_1_1_2023_To_9_30_2023_17pOxCYnqUCOCopo8FUMFQ", "name": "us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "us-gaap:EarningsPerShareTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20230930x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2023_To_9_30_2023_17pOxCYnqUCOCopo8FUMFQ", "name": "us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "us-gaap:EarningsPerShareTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20230930x10q.htm", "first": true, "unique": true } }, "R26": { "role": "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationTables", "longName": "30903 - Disclosure - CUSTOMER AND GEOGRAPHIC INFORMATION (Tables)", "shortName": "CUSTOMER AND GEOGRAPHIC INFORMATION (Tables)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "tables", "menuCat": "Tables", "order": "26", "firstAnchor": { "contextRef": "Duration_1_1_2023_To_9_30_2023_17pOxCYnqUCOCopo8FUMFQ", "name": "us-gaap:ScheduleOfRevenueByMajorCustomersByReportingSegmentsTableTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20230930x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2023_To_9_30_2023_17pOxCYnqUCOCopo8FUMFQ", "name": "us-gaap:ScheduleOfRevenueByMajorCustomersByReportingSegmentsTableTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20230930x10q.htm", "first": true, "unique": true } }, "R27": { "role": "http://www.pdf.com/role/DisclosureBusinessCombinationTables", "longName": "31303 - Disclosure - BUSINESS COMBINATION (Tables)", "shortName": "BUSINESS COMBINATION (Tables)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "tables", "menuCat": "Tables", "order": "27", "firstAnchor": { "contextRef": "Duration_1_1_2023_To_9_30_2023_17pOxCYnqUCOCopo8FUMFQ", "name": "us-gaap:ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20230930x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2023_To_9_30_2023_17pOxCYnqUCOCopo8FUMFQ", "name": "us-gaap:ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20230930x10q.htm", "first": true, "unique": true } }, "R28": { "role": "http://www.pdf.com/role/DisclosureRevenueFromContractWithCustomersDetails", "longName": "40201 - Disclosure - REVENUE FROM CONTRACT WITH CUSTOMERS (Details)", "shortName": "REVENUE FROM CONTRACT WITH CUSTOMERS (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "28", "firstAnchor": { "contextRef": "Duration_1_1_2023_To_9_30_2023_17pOxCYnqUCOCopo8FUMFQ", "name": "pdfs:NumberOfRevenueSources", "unitRef": "Unit_Standard_item_iYppS-70f0Sw6An2Ms6BtQ", "xsiNil": "false", "lang": null, "decimals": "INF", "ancestors": [ "p", "us-gaap:RevenueFromContractWithCustomerPolicyTextBlock", "us-gaap:RevenueFromContractWithCustomerTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20230930x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2023_To_9_30_2023_17pOxCYnqUCOCopo8FUMFQ", "name": "pdfs:NumberOfRevenueSources", "unitRef": "Unit_Standard_item_iYppS-70f0Sw6An2Ms6BtQ", "xsiNil": "false", "lang": null, "decimals": "INF", "ancestors": [ "p", "us-gaap:RevenueFromContractWithCustomerPolicyTextBlock", "us-gaap:RevenueFromContractWithCustomerTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20230930x10q.htm", "first": true, "unique": true } }, "R29": { "role": "http://www.pdf.com/role/DisclosureRevenueFromContractWithCustomersDisaggregationOfRevenueDetails", "longName": "40202 - Disclosure - REVENUE FROM CONTRACT WITH CUSTOMERS - Disaggregation of Revenue (Details)", "shortName": "REVENUE FROM CONTRACT WITH CUSTOMERS - Disaggregation of Revenue (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "29", "firstAnchor": { "contextRef": "Duration_7_1_2023_To_9_30_2023_HMLAvVl7mUWgkF23UZyfqg", "name": "pdfs:PercentOfRevenue", "unitRef": "Unit_Standard_pure_JUFRrNTqD0C_hxbJRvALMg", "xsiNil": "false", "lang": null, "decimals": "2", "ancestors": [ "p", "td", "tr", "table", "us-gaap:DisaggregationOfRevenueTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20230930x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_7_1_2023_To_9_30_2023_HMLAvVl7mUWgkF23UZyfqg", "name": "pdfs:PercentOfRevenue", "unitRef": "Unit_Standard_pure_JUFRrNTqD0C_hxbJRvALMg", "xsiNil": "false", "lang": null, "decimals": "2", "ancestors": [ "p", "td", "tr", "table", "us-gaap:DisaggregationOfRevenueTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20230930x10q.htm", "first": true, "unique": true } }, "R30": { "role": "http://www.pdf.com/role/DisclosureRevenueFromContractWithCustomersAdditionalInformationDetails", "longName": "40203 - Disclosure - REVENUE FROM CONTRACT WITH CUSTOMERS - Additional information (Details)", "shortName": "REVENUE FROM CONTRACT WITH CUSTOMERS - Additional information (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "30", "firstAnchor": { "contextRef": "As_Of_9_30_2023_srt_MajorCustomersAxis_pdfs_AdvantestAmericaIncMember_srt_ProductOrServiceAxis_pdfs_SoftwareLicenseAndRelatedServicesAgreementMember_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_pdfs_cnst_date_20220401_ulF6FDBSjU2oH0qBObSozA", "name": "us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "p", "pdfs:RevenueFromContractsWithCustomersContractBalancesPolicyTextBlock", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20230930x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "As_Of_9_30_2023_srt_MajorCustomersAxis_pdfs_AdvantestAmericaIncMember_srt_ProductOrServiceAxis_pdfs_SoftwareLicenseAndRelatedServicesAgreementMember_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_pdfs_cnst_date_20220401_ulF6FDBSjU2oH0qBObSozA", "name": "us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "p", "pdfs:RevenueFromContractsWithCustomersContractBalancesPolicyTextBlock", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20230930x10q.htm", "first": true, "unique": true } }, "R31": { "role": "http://www.pdf.com/role/DisclosureBalanceSheetComponentsDetails", "longName": "40301 - Disclosure - BALANCE SHEET COMPONENTS (Details)", "shortName": "BALANCE SHEET COMPONENTS (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "31", "firstAnchor": { "contextRef": "Duration_1_1_2023_To_9_30_2023_17pOxCYnqUCOCopo8FUMFQ", "name": "pdfs:PeriodOverWhichUnbilledReceivablesAreBilledAndCollected", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "p", "us-gaap:TradeAndOtherAccountsReceivablePolicy", "us-gaap:SupplementalBalanceSheetDisclosuresTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20230930x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2023_To_9_30_2023_17pOxCYnqUCOCopo8FUMFQ", "name": "pdfs:PeriodOverWhichUnbilledReceivablesAreBilledAndCollected", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "p", "us-gaap:TradeAndOtherAccountsReceivablePolicy", "us-gaap:SupplementalBalanceSheetDisclosuresTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20230930x10q.htm", "first": true, "unique": true } }, "R32": { "role": "http://www.pdf.com/role/DisclosureBalanceSheetComponentsPropertyAndEquipmentDetails", "longName": "40302 - Disclosure - BALANCE SHEET COMPONENTS - Property and Equipment (Details)", "shortName": "BALANCE SHEET COMPONENTS - Property and Equipment (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "32", "firstAnchor": { "contextRef": "As_Of_9_30_2023_1xofeFggSUGcVlwl9x1iqA", "name": "us-gaap:PropertyPlantAndEquipmentGross", "unitRef": "Unit_Standard_USD_ZEWdaBcF80uYqOugHU2MWg", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "span", "p", "td", "tr", "table", "us-gaap:PropertyPlantAndEquipmentTextBlock", "us-gaap:SupplementalBalanceSheetDisclosuresTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20230930x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "As_Of_9_30_2023_1xofeFggSUGcVlwl9x1iqA", "name": "us-gaap:PropertyPlantAndEquipmentGross", "unitRef": "Unit_Standard_USD_ZEWdaBcF80uYqOugHU2MWg", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "span", "p", "td", "tr", "table", "us-gaap:PropertyPlantAndEquipmentTextBlock", "us-gaap:SupplementalBalanceSheetDisclosuresTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20230930x10q.htm", "first": true, "unique": true } }, "R33": { "role": "http://www.pdf.com/role/DisclosureBalanceSheetComponentsIntangibleAssetsDetails", "longName": "40303 - Disclosure - BALANCE SHEET COMPONENTS - Intangible Assets (Details)", "shortName": "BALANCE SHEET COMPONENTS - Intangible Assets (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "33", "firstAnchor": { "contextRef": "Duration_1_1_2023_To_9_30_2023_17pOxCYnqUCOCopo8FUMFQ", "name": "us-gaap:AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "p", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20230930x10q.htm", "first": true }, "uniqueAnchor": { "contextRef": "As_Of_9_30_2023_1xofeFggSUGcVlwl9x1iqA", "name": "us-gaap:FiniteLivedIntangibleAssetsGross", "unitRef": "Unit_Standard_USD_ZEWdaBcF80uYqOugHU2MWg", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20230930x10q.htm", "unique": true } }, "R34": { "role": "http://www.pdf.com/role/DisclosureBalanceSheetComponentsAnnualAmortizationOfIdentifiableIntangibleAssetsDetails", "longName": "40304 - Disclosure - BALANCE SHEET COMPONENTS - Annual Amortization of Identifiable Intangible Assets (Details)", "shortName": "BALANCE SHEET COMPONENTS - Annual Amortization of Identifiable Intangible Assets (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "34", "firstAnchor": { "contextRef": "As_Of_9_30_2023_1xofeFggSUGcVlwl9x1iqA", "name": "us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear", "unitRef": "Unit_Standard_USD_ZEWdaBcF80uYqOugHU2MWg", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20230930x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "As_Of_9_30_2023_1xofeFggSUGcVlwl9x1iqA", "name": "us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear", "unitRef": "Unit_Standard_USD_ZEWdaBcF80uYqOugHU2MWg", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20230930x10q.htm", "first": true, "unique": true } }, "R35": { "role": "http://www.pdf.com/role/DisclosureLeasesOtherDetails", "longName": "40401 - Disclosure - LEASES - Other (Details)", "shortName": "LEASES - Other (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "35", "firstAnchor": { "contextRef": "As_Of_9_30_2023_1xofeFggSUGcVlwl9x1iqA", "name": "pdfs:NumberOfFinanceLeases", "unitRef": "Unit_Standard_lease_9kZv2rUXIkyW6RgL1UY85A", "xsiNil": "false", "lang": null, "decimals": "INF", "ancestors": [ "p", "us-gaap:LesseeOperatingLeasesTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20230930x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "As_Of_9_30_2023_1xofeFggSUGcVlwl9x1iqA", "name": "pdfs:NumberOfFinanceLeases", "unitRef": "Unit_Standard_lease_9kZv2rUXIkyW6RgL1UY85A", "xsiNil": "false", "lang": null, "decimals": "INF", "ancestors": [ "p", "us-gaap:LesseeOperatingLeasesTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20230930x10q.htm", "first": true, "unique": true } }, "R36": { "role": "http://www.pdf.com/role/DisclosureLeasesLeaseCostDetails", "longName": "40402 - Disclosure - LEASES - Lease Cost (Details)", "shortName": "LEASES - Lease Cost (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "36", "firstAnchor": { "contextRef": "Duration_7_1_2023_To_9_30_2023_HMLAvVl7mUWgkF23UZyfqg", "name": "us-gaap:OperatingLeaseCost", "unitRef": "Unit_Standard_USD_ZEWdaBcF80uYqOugHU2MWg", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:LeaseCostTableTextBlock", "us-gaap:LesseeOperatingLeasesTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20230930x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_7_1_2023_To_9_30_2023_HMLAvVl7mUWgkF23UZyfqg", "name": "us-gaap:OperatingLeaseCost", "unitRef": "Unit_Standard_USD_ZEWdaBcF80uYqOugHU2MWg", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:LeaseCostTableTextBlock", "us-gaap:LesseeOperatingLeasesTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20230930x10q.htm", "first": true, "unique": true } }, "R37": { "role": "http://www.pdf.com/role/DisclosureLeasesMaturityOfOperatingLeaseLiabilitiesDetails", "longName": "40403 - Disclosure - LEASES - Maturity of Operating Lease Liabilities (Details)", "shortName": "LEASES - Maturity of Operating Lease Liabilities (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "37", "firstAnchor": { "contextRef": "As_Of_9_30_2023_1xofeFggSUGcVlwl9x1iqA", "name": "us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths", "unitRef": "Unit_Standard_USD_ZEWdaBcF80uYqOugHU2MWg", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20230930x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "As_Of_9_30_2023_1xofeFggSUGcVlwl9x1iqA", "name": "us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths", "unitRef": "Unit_Standard_USD_ZEWdaBcF80uYqOugHU2MWg", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20230930x10q.htm", "first": true, "unique": true } }, "R38": { "role": "http://www.pdf.com/role/DisclosureStockholdersEquityDetails", "longName": "40501 - Disclosure - STOCKHOLDERS EQUITY (Details)", "shortName": "STOCKHOLDERS EQUITY (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "38", "firstAnchor": { "contextRef": "Duration_7_1_2023_To_9_30_2023_HMLAvVl7mUWgkF23UZyfqg", "name": "us-gaap:TreasuryStockValueAcquiredCostMethod", "unitRef": "Unit_Standard_USD_ZEWdaBcF80uYqOugHU2MWg", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20230930x10q.htm", "first": true }, "uniqueAnchor": { "contextRef": "As_Of_6_4_2020_us-gaap_ShareRepurchaseProgramAxis_pdfs_The2020StockRepurchaseProgramMember_7L70xiXrNEueB-zMy9bGrA", "name": "us-gaap:StockRepurchaseProgramAuthorizedAmount1", "unitRef": "Unit_Standard_USD_ZEWdaBcF80uYqOugHU2MWg", "xsiNil": "false", "lang": null, "decimals": "-5", "ancestors": [ "p", "us-gaap:StockholdersEquityNoteDisclosureTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20230930x10q.htm", "unique": true } }, "R39": { "role": "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansOtherDetails", "longName": "40601 - Disclosure - EMPLOYEE BENEFIT PLANS - Other (Details)", "shortName": "EMPLOYEE BENEFIT PLANS - Other (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "39", "firstAnchor": { "contextRef": "Duration_1_1_2023_To_9_30_2023_17pOxCYnqUCOCopo8FUMFQ", "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "p", "us-gaap:ShareBasedCompensationOptionAndIncentivePlansPolicy", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20230930x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2023_To_9_30_2023_17pOxCYnqUCOCopo8FUMFQ", "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "p", "us-gaap:ShareBasedCompensationOptionAndIncentivePlansPolicy", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20230930x10q.htm", "first": true, "unique": true } }, "R40": { "role": "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansValuationAssumptionsForEsppDetails", "longName": "40602 - Disclosure - EMPLOYEE BENEFIT PLANS - Valuation Assumptions for ESPP (Details)", "shortName": "EMPLOYEE BENEFIT PLANS - Valuation Assumptions for ESPP (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "40", "firstAnchor": { "contextRef": "Duration_1_1_2023_To_9_30_2023_us-gaap_PlanNameAxis_pdfs_The2021PurchasePlanMember_KhXESsnZvUWc1OBfSv9iLA", "name": "us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock", "us-gaap:EmployeeStockOwnershipPlanESOPPolicy", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20230930x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2023_To_9_30_2023_us-gaap_PlanNameAxis_pdfs_The2021PurchasePlanMember_KhXESsnZvUWc1OBfSv9iLA", "name": "us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock", "us-gaap:EmployeeStockOwnershipPlanESOPPolicy", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20230930x10q.htm", "first": true, "unique": true } }, "R41": { "role": "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansAllocationOfRecognizedPeriodCostsDetails", "longName": "40603 - Disclosure - EMPLOYEE BENEFIT PLANS - Allocation of Recognized Period Costs (Details)", "shortName": "EMPLOYEE BENEFIT PLANS - Allocation of Recognized Period Costs (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "41", "firstAnchor": { "contextRef": "Duration_7_1_2023_To_9_30_2023_HMLAvVl7mUWgkF23UZyfqg", "name": "us-gaap:AllocatedShareBasedCompensationExpense", "unitRef": "Unit_Standard_USD_ZEWdaBcF80uYqOugHU2MWg", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock", "us-gaap:ShareBasedCompensationOptionAndIncentivePlansPolicy", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20230930x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_7_1_2023_To_9_30_2023_HMLAvVl7mUWgkF23UZyfqg", "name": "us-gaap:AllocatedShareBasedCompensationExpense", "unitRef": "Unit_Standard_USD_ZEWdaBcF80uYqOugHU2MWg", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock", "us-gaap:ShareBasedCompensationOptionAndIncentivePlansPolicy", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20230930x10q.htm", "first": true, "unique": true } }, "R42": { "role": "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansStockOptionsActivityDetails", "longName": "40604 - Disclosure - EMPLOYEE BENEFIT PLANS - Stock Options Activity (Details)", "shortName": "EMPLOYEE BENEFIT PLANS - Stock Options Activity (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "42", "firstAnchor": { "contextRef": "As_Of_12_31_2022_us-gaap_PlanNameAxis_pdfs_EmployeeStockPlansMember_kzzKOccyZke5b50uysIyVA", "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber", "unitRef": "Unit_Standard_shares_VjJ94AtdiEay_9O9RUQpyA", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20230930x10q.htm", "first": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2023_To_9_30_2023_us-gaap_PlanNameAxis_pdfs_EmployeeStockPlansMember_jqGvUBahLU-uMfL028w_NA", "name": "us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised", "unitRef": "Unit_Standard_shares_VjJ94AtdiEay_9O9RUQpyA", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20230930x10q.htm", "unique": true } }, "R43": { "role": "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNonvestedRestrictedStockUnitsActivityDetails", "longName": "40605 - Disclosure - EMPLOYEE BENEFIT PLANS - Nonvested Restricted Stock Units Activity (Details)", "shortName": "EMPLOYEE BENEFIT PLANS - Nonvested Restricted Stock Units Activity (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "43", "firstAnchor": { "contextRef": "As_Of_12_31_2022_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_UDTZt0CA5Ua4AZIiZEdD_w", "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber", "unitRef": "Unit_Standard_shares_VjJ94AtdiEay_9O9RUQpyA", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20230930x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "As_Of_12_31_2022_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockUnitsRSUMember_UDTZt0CA5Ua4AZIiZEdD_w", "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber", "unitRef": "Unit_Standard_shares_VjJ94AtdiEay_9O9RUQpyA", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20230930x10q.htm", "first": true, "unique": true } }, "R44": { "role": "http://www.pdf.com/role/DisclosureIncomeTaxesDetails", "longName": "40701 - Disclosure - INCOME TAXES (Details)", "shortName": "INCOME TAXES (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "44", "firstAnchor": { "contextRef": "Duration_1_1_2023_To_9_30_2023_17pOxCYnqUCOCopo8FUMFQ", "name": "us-gaap:IncreaseDecreaseInIncomeTaxes", "unitRef": "Unit_Standard_USD_ZEWdaBcF80uYqOugHU2MWg", "xsiNil": "false", "lang": null, "decimals": "-5", "ancestors": [ "p", "us-gaap:IncomeTaxDisclosureTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20230930x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2023_To_9_30_2023_17pOxCYnqUCOCopo8FUMFQ", "name": "us-gaap:IncreaseDecreaseInIncomeTaxes", "unitRef": "Unit_Standard_USD_ZEWdaBcF80uYqOugHU2MWg", "xsiNil": "false", "lang": null, "decimals": "-5", "ancestors": [ "p", "us-gaap:IncomeTaxDisclosureTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20230930x10q.htm", "first": true, "unique": true } }, "R45": { "role": "http://www.pdf.com/role/DisclosureNetIncomeLossPerShareCalculationOfEarningsPerShareDetails", "longName": "40801 - Disclosure - NET INCOME (LOSS) PER SHARE - Calculation of Earnings Per Share (Details)", "shortName": "NET INCOME (LOSS) PER SHARE - Calculation of Earnings Per Share (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "45", "firstAnchor": { "contextRef": "Duration_7_1_2023_To_9_30_2023_HMLAvVl7mUWgkF23UZyfqg", "name": "us-gaap:NetIncomeLoss", "unitRef": "Unit_Standard_USD_ZEWdaBcF80uYqOugHU2MWg", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20230930x10q.htm", "first": true }, "uniqueAnchor": { "contextRef": "Duration_7_1_2022_To_9_30_2022_Yiz5vcJd20ipsWPrl34uQA", "name": "us-gaap:WeightedAverageNumberDilutedSharesOutstandingAdjustment", "unitRef": "Unit_Standard_shares_VjJ94AtdiEay_9O9RUQpyA", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock", "us-gaap:EarningsPerShareTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20230930x10q.htm", "unique": true } }, "R46": { "role": "http://www.pdf.com/role/DisclosureNetIncomeLossPerShareAntiDilutiveSecuritiesDetails", "longName": "40802 - Disclosure - NET INCOME (LOSS) PER SHARE - Anti-dilutive Securities (Details)", "shortName": "NET INCOME (LOSS) PER SHARE - Anti-dilutive Securities (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "46", "firstAnchor": { "contextRef": "Duration_7_1_2023_To_9_30_2023_HMLAvVl7mUWgkF23UZyfqg", "name": "us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount", "unitRef": "Unit_Standard_shares_VjJ94AtdiEay_9O9RUQpyA", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock", "us-gaap:EarningsPerShareTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20230930x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_7_1_2023_To_9_30_2023_HMLAvVl7mUWgkF23UZyfqg", "name": "us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount", "unitRef": "Unit_Standard_shares_VjJ94AtdiEay_9O9RUQpyA", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock", "us-gaap:EarningsPerShareTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20230930x10q.htm", "first": true, "unique": true } }, "R47": { "role": "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationOtherDetails", "longName": "40901 - Disclosure - CUSTOMER AND GEOGRAPHIC INFORMATION - Other (Details)", "shortName": "CUSTOMER AND GEOGRAPHIC INFORMATION - Other (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "47", "firstAnchor": { "contextRef": "Duration_1_1_2023_To_9_30_2023_17pOxCYnqUCOCopo8FUMFQ", "name": "us-gaap:NumberOfOperatingSegments", "unitRef": "Unit_Standard_pure_JUFRrNTqD0C_hxbJRvALMg", "xsiNil": "false", "lang": null, "decimals": "INF", "ancestors": [ "p", "us-gaap:SegmentReportingDisclosureTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20230930x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2023_To_9_30_2023_17pOxCYnqUCOCopo8FUMFQ", "name": "us-gaap:NumberOfOperatingSegments", "unitRef": "Unit_Standard_pure_JUFRrNTqD0C_hxbJRvALMg", "xsiNil": "false", "lang": null, "decimals": "INF", "ancestors": [ "p", "us-gaap:SegmentReportingDisclosureTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20230930x10q.htm", "first": true, "unique": true } }, "R48": { "role": "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationRevenuePercentageByMajorCustomersDetails", "longName": "40902 - Disclosure - CUSTOMER AND GEOGRAPHIC INFORMATION - Revenue Percentage by Major Customers (Details)", "shortName": "CUSTOMER AND GEOGRAPHIC INFORMATION - Revenue Percentage by Major Customers (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "48", "firstAnchor": { "contextRef": "Duration_1_1_2022_To_9_30_2023_srt_StatementScenarioAxis_pdfs_CustomersAccountingFor10PercentOfGrossRevenuesAndReceivablesMember_us-gaap_ConcentrationRiskByBenchmarkAxis_us-gaap_SalesRevenueNetMember_us-gaap_ConcentrationRiskByTypeAxis_us-gaap_CustomerConcentrationRiskMember_r5TQ_MhC4km8GapShc89VQ", "name": "us-gaap:ConcentrationRiskPercentage1", "unitRef": "Unit_Standard_pure_JUFRrNTqD0C_hxbJRvALMg", "xsiNil": "false", "lang": null, "decimals": "2", "ancestors": [ "p", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20230930x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2022_To_9_30_2023_srt_StatementScenarioAxis_pdfs_CustomersAccountingFor10PercentOfGrossRevenuesAndReceivablesMember_us-gaap_ConcentrationRiskByBenchmarkAxis_us-gaap_SalesRevenueNetMember_us-gaap_ConcentrationRiskByTypeAxis_us-gaap_CustomerConcentrationRiskMember_r5TQ_MhC4km8GapShc89VQ", "name": "us-gaap:ConcentrationRiskPercentage1", "unitRef": "Unit_Standard_pure_JUFRrNTqD0C_hxbJRvALMg", "xsiNil": "false", "lang": null, "decimals": "2", "ancestors": [ "p", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20230930x10q.htm", "first": true, "unique": true } }, "R49": { "role": "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationRevenuesByGeographicAreaDetails", "longName": "40903 - Disclosure - CUSTOMER AND GEOGRAPHIC INFORMATION - Revenues by Geographic Area (Details)", "shortName": "CUSTOMER AND GEOGRAPHIC INFORMATION - Revenues by Geographic Area (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "49", "firstAnchor": { "contextRef": "Duration_7_1_2023_To_9_30_2023_HMLAvVl7mUWgkF23UZyfqg", "name": "us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax", "unitRef": "Unit_Standard_USD_ZEWdaBcF80uYqOugHU2MWg", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20230930x10q.htm", "first": true }, "uniqueAnchor": { "contextRef": "Duration_7_1_2023_To_9_30_2023_us-gaap_ConcentrationRiskByBenchmarkAxis_us-gaap_SalesRevenueNetMember_us-gaap_ConcentrationRiskByTypeAxis_us-gaap_GeographicConcentrationRiskMember_1-MMV0v4e0efH3lkwH476Q", "name": "us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax", "unitRef": "Unit_Standard_USD_ZEWdaBcF80uYqOugHU2MWg", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfRevenueFromExternalCustomersAttributedToForeignCountriesByGeographicAreaTextBlock", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20230930x10q.htm", "unique": true } }, "R50": { "role": "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationLongLivedAssetsByGeographicAreaDetails", "longName": "40904 - Disclosure - CUSTOMER AND GEOGRAPHIC INFORMATION - Long-lived Assets by Geographic Area (Details)", "shortName": "CUSTOMER AND GEOGRAPHIC INFORMATION - Long-lived Assets by Geographic Area (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "50", "firstAnchor": { "contextRef": "As_Of_9_30_2023_1xofeFggSUGcVlwl9x1iqA", "name": "us-gaap:NoncurrentAssets", "unitRef": "Unit_Standard_USD_ZEWdaBcF80uYqOugHU2MWg", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfEntityWideDisclosureOnGeographicAreasLongLivedAssetsInIndividualForeignCountriesByCountryTextBlock", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20230930x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "As_Of_9_30_2023_1xofeFggSUGcVlwl9x1iqA", "name": "us-gaap:NoncurrentAssets", "unitRef": "Unit_Standard_USD_ZEWdaBcF80uYqOugHU2MWg", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfEntityWideDisclosureOnGeographicAreasLongLivedAssetsInIndividualForeignCountriesByCountryTextBlock", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20230930x10q.htm", "first": true, "unique": true } }, "R51": { "role": "http://www.pdf.com/role/DisclosureFairValueMeasurementsFairValueAssetsMeasuredOnRecurringBasisDetails", "longName": "41001 - Disclosure - FAIR VALUE MEASUREMENTS - Fair Value, Assets Measured on a Recurring Basis (Details)", "shortName": "FAIR VALUE MEASUREMENTS - Fair Value, Assets Measured on a Recurring Basis (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "51", "firstAnchor": { "contextRef": "As_Of_9_30_2023_1xofeFggSUGcVlwl9x1iqA", "name": "pdfs:CashCashEquivalentsShortTermInvestmentsFairValueDisclosure", "unitRef": "Unit_Standard_USD_ZEWdaBcF80uYqOugHU2MWg", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:FinancialInstrumentsDisclosureTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20230930x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "As_Of_9_30_2023_1xofeFggSUGcVlwl9x1iqA", "name": "pdfs:CashCashEquivalentsShortTermInvestmentsFairValueDisclosure", "unitRef": "Unit_Standard_USD_ZEWdaBcF80uYqOugHU2MWg", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:FinancialInstrumentsDisclosureTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20230930x10q.htm", "first": true, "unique": true } }, "R52": { "role": "http://www.pdf.com/role/DisclosureCommitmentsAndContingenciesDetails", "longName": "41101 - Disclosure - COMMITMENTS AND CONTINGENCIES (Details)", "shortName": "COMMITMENTS AND CONTINGENCIES (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "52", "firstAnchor": { "contextRef": "As_Of_9_30_2023_1xofeFggSUGcVlwl9x1iqA", "name": "us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue", "unitRef": "Unit_Standard_USD_ZEWdaBcF80uYqOugHU2MWg", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20230930x10q.htm", "first": true }, "uniqueAnchor": { "contextRef": "Duration_1_1_2023_To_9_30_2023_srt_StatementScenarioAxis_pdfs_IndemnificationsMember_8aXuqK5MXkeEjRL2fXTOSw", "name": "pdfs:TermOfProductWarranty", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "p", "us-gaap:CommitmentsAndContingenciesDisclosureTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20230930x10q.htm", "unique": true } }, "R53": { "role": "http://www.pdf.com/role/DisclosureStrategicPartnershipAgreementWithAdvantestAndRelatedPartyTransactionsDetails", "longName": "41201 - Disclosure - STRATEGIC PARTNERSHIP AGREEMENT WITH ADVANTEST AND RELATED PARTY TRANSACTIONS (Details)", "shortName": "STRATEGIC PARTNERSHIP AGREEMENT WITH ADVANTEST AND RELATED PARTY TRANSACTIONS (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "53", "firstAnchor": { "contextRef": "As_Of_12_31_2022_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis_pdfs_CommercialAgreementWithAdvantestMember_EN_Yk4U2A0OWKxCksXuzIg", "name": "us-gaap:OtherReceivables", "unitRef": "Unit_Standard_USD_ZEWdaBcF80uYqOugHU2MWg", "xsiNil": "false", "lang": null, "decimals": "-5", "ancestors": [ "p", "us-gaap:RelatedPartyTransactionsDisclosureTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20230930x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "As_Of_12_31_2022_us-gaap_RelatedPartyTransactionsByRelatedPartyAxis_pdfs_CommercialAgreementWithAdvantestMember_EN_Yk4U2A0OWKxCksXuzIg", "name": "us-gaap:OtherReceivables", "unitRef": "Unit_Standard_USD_ZEWdaBcF80uYqOugHU2MWg", "xsiNil": "false", "lang": null, "decimals": "-5", "ancestors": [ "p", "us-gaap:RelatedPartyTransactionsDisclosureTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20230930x10q.htm", "first": true, "unique": true } }, "R54": { "role": "http://www.pdf.com/role/DisclosureBusinessCombinationOtherDetails", "longName": "41301 - Disclosure - BUSINESS COMBINATION - Other (Details)", "shortName": "BUSINESS COMBINATION - Other (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "54", "firstAnchor": { "contextRef": "As_Of_7_5_2023_us-gaap_BusinessAcquisitionAxis_us-gaap_SeriesOfIndividuallyImmaterialBusinessAcquisitionsMember_85pESsLBok-HW8PHCbYs8g", "name": "us-gaap:BusinessAcquisitionPercentageOfVotingInterestsAcquired", "unitRef": "Unit_Standard_pure_JUFRrNTqD0C_hxbJRvALMg", "xsiNil": "false", "lang": null, "decimals": "2", "ancestors": [ "p", "us-gaap:BusinessCombinationDisclosureTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20230930x10q.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "As_Of_7_5_2023_us-gaap_BusinessAcquisitionAxis_us-gaap_SeriesOfIndividuallyImmaterialBusinessAcquisitionsMember_85pESsLBok-HW8PHCbYs8g", "name": "us-gaap:BusinessAcquisitionPercentageOfVotingInterestsAcquired", "unitRef": "Unit_Standard_pure_JUFRrNTqD0C_hxbJRvALMg", "xsiNil": "false", "lang": null, "decimals": "2", "ancestors": [ "p", "us-gaap:BusinessCombinationDisclosureTextBlock", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20230930x10q.htm", "first": true, "unique": true } }, "R55": { "role": "http://www.pdf.com/role/DisclosureBusinessCombinationFairValuesOfAssetsAcquiredAndLiabilitiesAssumedDetails", "longName": "41302 - Disclosure - BUSINESS COMBINATION - Fair Values of Assets Acquired and Liabilities Assumed (Details)", "shortName": "BUSINESS COMBINATION - Fair Values of Assets Acquired and Liabilities Assumed (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "55", "firstAnchor": { "contextRef": "As_Of_9_30_2023_1xofeFggSUGcVlwl9x1iqA", "name": "us-gaap:Goodwill", "unitRef": "Unit_Standard_USD_ZEWdaBcF80uYqOugHU2MWg", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20230930x10q.htm", "first": true }, "uniqueAnchor": { "contextRef": "As_Of_7_5_2023_us-gaap_BusinessAcquisitionAxis_us-gaap_SeriesOfIndividuallyImmaterialBusinessAcquisitionsMember_85pESsLBok-HW8PHCbYs8g", "name": "us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents", "unitRef": "Unit_Standard_USD_ZEWdaBcF80uYqOugHU2MWg", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock", "ix:continuation", "div", "div", "body", "html" ], "reportCount": 1, "baseRef": "pdfs-20230930x10q.htm", "unique": true } } }, "tag": { "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths", "crdr": "credit", "calculation": { "http://www.pdf.com/role/DisclosureLeasesMaturityOfOperatingLeaseLiabilitiesDetails": { "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureLeasesMaturityOfOperatingLeaseLiabilitiesDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths", "terseLabel": "2023 (remaining six months)", "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in next fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)." } } }, "auth_ref": [ "r416" ] }, "us-gaap_RevenueFromContractWithCustomerPolicyTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "RevenueFromContractWithCustomerPolicyTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureSignificantAccountingPoliciesPolicies" ], "lang": { "en-us": { "role": { "label": "Revenue from Contracts with Customers, Policy", "documentation": "Disclosure of accounting policy for revenue from contract with customer." } } }, "auth_ref": [ "r139", "r292", "r293", "r294", "r295", "r296", "r297", "r298", "r299", "r577" ] }, "us-gaap_LeaseholdImprovementsMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "LeaseholdImprovementsMember", "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsPropertyAndEquipmentDetails" ], "lang": { "en-us": { "role": { "label": "Leasehold Improvements", "documentation": "Additions or improvements to assets held under a lease arrangement." } } }, "auth_ref": [ "r105" ] }, "us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent", "crdr": "credit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveLoss": { "parentTag": "us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveLoss" ], "lang": { "en-us": { "role": { "label": "Foreign currency translation adjustments, net of tax", "documentation": "Amount after tax and reclassification adjustments of gain (loss) on foreign currency translation adjustments, foreign currency transactions designated and effective as economic hedges of a net investment in a foreign entity and intra-entity foreign currency transactions that are of a long-term-investment nature, attributable to parent entity." } } }, "auth_ref": [ "r4", "r8", "r119" ] }, "us-gaap_CommitmentsAndContingenciesDisclosureAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "CommitmentsAndContingenciesDisclosureAbstract", "lang": { "en-us": { "role": { "label": "COMMITMENTS AND CONTINGENCIES" } } }, "auth_ref": [] }, "us-gaap_AntidilutiveSecuritiesNameDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AntidilutiveSecuritiesNameDomain", "presentation": [ "http://www.pdf.com/role/DisclosureNetIncomeLossPerShareAntiDilutiveSecuritiesDetails" ], "lang": { "en-us": { "role": { "label": "Antidilutive Securities, Name [Domain]", "documentation": "Incremental common shares attributable to securities that were not included in diluted earnings per share (EPS) because to do so would increase EPS amounts or decrease loss per share amounts for the period presented." } } }, "auth_ref": [ "r36" ] }, "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearFive", "crdr": "credit", "calculation": { "http://www.pdf.com/role/DisclosureLeasesMaturityOfOperatingLeaseLiabilitiesDetails": { "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue", "weight": 1.0, "order": 5.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureLeasesMaturityOfOperatingLeaseLiabilitiesDetails" ], "lang": { "en-us": { "role": { "label": "2027", "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in fifth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)." } } }, "auth_ref": [ "r416" ] }, "us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureNetIncomeLossPerShareTables" ], "lang": { "en-us": { "role": { "label": "Schedule of Earnings Per Share, Basic and Diluted", "documentation": "Tabular disclosure of an entity's basic and diluted earnings per share calculations, including a reconciliation of numerators and denominators of the basic and diluted per-share computations for income from continuing operations." } } }, "auth_ref": [ "r640" ] }, "dei_CityAreaCode": { "xbrltype": "normalizedStringItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "CityAreaCode", "presentation": [ "http://www.pdf.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "City Area Code", "documentation": "Area code of city" } } }, "auth_ref": [] }, "us-gaap_DeferredIncomeTaxExpenseBenefit": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "DeferredIncomeTaxExpenseBenefit", "crdr": "debit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0, "order": 7.0 } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "us-gaap_DeferredIncomeTaxExpenseBenefit", "verboseLabel": "Deferred taxes", "documentation": "Amount of deferred income tax expense (benefit) pertaining to income (loss) from continuing operations." } } }, "auth_ref": [ "r6", "r116", "r137", "r373", "r374", "r635" ] }, "us-gaap_IncomeTaxDisclosureAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "IncomeTaxDisclosureAbstract", "lang": { "en-us": { "role": { "label": "INCOME TAXES" } } }, "auth_ref": [] }, "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearFour", "crdr": "credit", "calculation": { "http://www.pdf.com/role/DisclosureLeasesMaturityOfOperatingLeaseLiabilitiesDetails": { "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue", "weight": 1.0, "order": 4.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureLeasesMaturityOfOperatingLeaseLiabilitiesDetails" ], "lang": { "en-us": { "role": { "label": "2026", "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in fourth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)." } } }, "auth_ref": [ "r416" ] }, "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearThree", "crdr": "credit", "calculation": { "http://www.pdf.com/role/DisclosureLeasesMaturityOfOperatingLeaseLiabilitiesDetails": { "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue", "weight": 1.0, "order": 3.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureLeasesMaturityOfOperatingLeaseLiabilitiesDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree", "terseLabel": "2025", "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in third fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)." } } }, "auth_ref": [ "r416" ] }, "dei_LocalPhoneNumber": { "xbrltype": "normalizedStringItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "LocalPhoneNumber", "presentation": [ "http://www.pdf.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Local Phone Number", "documentation": "Local phone number for entity." } } }, "auth_ref": [] }, "us-gaap_IncreaseDecreaseInAccountsReceivable": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "IncreaseDecreaseInAccountsReceivable", "crdr": "credit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": -1.0, "order": 9.0 } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "us-gaap_IncreaseDecreaseInAccountsReceivable", "negatedLabel": "Accounts receivable", "documentation": "The increase (decrease) during the reporting period in amount due within one year (or one business cycle) from customers for the credit sale of goods and services." } } }, "auth_ref": [ "r5" ] }, "us-gaap_IncreaseDecreaseInOperatingLeaseLiability": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "IncreaseDecreaseInOperatingLeaseLiability", "crdr": "debit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0, "order": 18.0 } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Increase (Decrease) in Operating Lease Liability", "terseLabel": "Operating lease liabilities", "documentation": "Amount of increase (decrease) in obligation for operating lease." } } }, "auth_ref": [ "r622", "r632" ] }, "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearTwo", "crdr": "credit", "calculation": { "http://www.pdf.com/role/DisclosureLeasesMaturityOfOperatingLeaseLiabilitiesDetails": { "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureLeasesMaturityOfOperatingLeaseLiabilitiesDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo", "terseLabel": "2024", "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in second fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)." } } }, "auth_ref": [ "r416" ] }, "us-gaap_OtherNoncashIncomeExpense": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "OtherNoncashIncomeExpense", "crdr": "credit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": -1.0, "order": 8.0 } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Other Noncash Income (Expense)", "negatedLabel": "Other", "documentation": "Amount of income (expense) included in net income that results in no cash inflow (outflow), classified as other." } } }, "auth_ref": [ "r99" ] }, "us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "LesseeOperatingLeaseLiabilityMaturityTableTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureLeasesTables" ], "lang": { "en-us": { "role": { "label": "Schedule of Operating Lease Liabilities and Maturities", "documentation": "Tabular disclosure of undiscounted cash flows of lessee's operating lease liability. Includes, but is not limited to, reconciliation of undiscounted cash flows to operating lease liability recognized in statement of financial position." } } }, "auth_ref": [ "r688" ] }, "us-gaap_PropertyPlantAndEquipmentTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "PropertyPlantAndEquipmentTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsTables" ], "lang": { "en-us": { "role": { "label": "Schedule of Property, Plant and Equipment", "documentation": "Tabular disclosure of physical assets used in the normal conduct of business and not intended for resale. Includes, but is not limited to, balances by class of assets, depreciation and depletion expense and method used, including composite depreciation, and accumulated deprecation." } } }, "auth_ref": [ "r7" ] }, "us-gaap_FairValueDisclosuresAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "FairValueDisclosuresAbstract", "lang": { "en-us": { "role": { "label": "FAIR VALUE MEASUREMENTS" } } }, "auth_ref": [] }, "country_CN": { "xbrltype": "domainItemType", "nsuri": "http://xbrl.sec.gov/country/2023", "localname": "CN", "presentation": [ "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationRevenuesByGeographicAreaDetails" ], "lang": { "en-us": { "role": { "label": "CHINA" } } }, "auth_ref": [] }, "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseTableTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsTables" ], "lang": { "en-us": { "role": { "label": "Schedule of Finite-lived Intangible Assets Amortization Expense", "documentation": "Tabular disclosure of amortization expense of assets, excluding financial assets, that lack physical substance, having a limited useful life." } } }, "auth_ref": [] }, "us-gaap_BasisOfPresentationAndSignificantAccountingPoliciesTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "BasisOfPresentationAndSignificantAccountingPoliciesTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureDescriptionOfBusinessAndSummaryOfSignificantAccountingPolicies" ], "lang": { "en-us": { "role": { "label": "Basis of Presentation and Significant Accounting Policies [Text Block]", "terseLabel": "DESCRIPTION OF BUSINESS AND SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES", "documentation": "The entire disclosure for the basis of presentation and significant accounting policies concepts. Basis of presentation describes the underlying basis used to prepare the financial statements (for example, US Generally Accepted Accounting Principles, Other Comprehensive Basis of Accounting, IFRS). Accounting policies describe all significant accounting policies of the reporting entity." } } }, "auth_ref": [ "r100" ] }, "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet", "crdr": "debit", "calculation": { "http://www.pdf.com/role/DisclosureBusinessCombinationFairValuesOfAssetsAcquiredAndLiabilitiesAssumedDetails": { "parentTag": null, "weight": null, "order": null, "root": true } }, "presentation": [ "http://www.pdf.com/role/DisclosureBusinessCombinationFairValuesOfAssetsAcquiredAndLiabilitiesAssumedDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet", "totalLabel": "Total purchase price allocation", "documentation": "Amount recognized for assets, including goodwill, in excess of (less than) the aggregate liabilities assumed." } } }, "auth_ref": [ "r67" ] }, "us-gaap_EffectiveIncomeTaxRateContinuingOperations": { "xbrltype": "percentItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "EffectiveIncomeTaxRateContinuingOperations", "presentation": [ "http://www.pdf.com/role/DisclosureIncomeTaxesDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_EffectiveIncomeTaxRateContinuingOperations", "terseLabel": "Effective Income Tax Rate Reconciliation, Percent, Total", "documentation": "Percentage of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations." } } }, "auth_ref": [ "r361" ] }, "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod": { "xbrltype": "durationItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansOtherDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod", "terseLabel": "Stock Option Expiration Period", "documentation": "Period from grant date that an equity-based award expires, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days." } } }, "auth_ref": [ "r600" ] }, "us-gaap_ScheduleOfAssumptionsForFairValueAsOfBalanceSheetDateOfInterestsContinuedToBeHeldByTransferorServicingAssetsOrServicingLiabilitiesTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ScheduleOfAssumptionsForFairValueAsOfBalanceSheetDateOfInterestsContinuedToBeHeldByTransferorServicingAssetsOrServicingLiabilitiesTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureLeasesTables" ], "lang": { "en-us": { "role": { "label": "Schedule of Assumptions for Fair Value as of Balance Sheet Date of Assets or Liabilities that relate to Transferor's Continuing Involvement [Table Text Block]", "terseLabel": "Schedule of Supplemental Operating Lease Information", "documentation": "Tabular disclosure of all information related to the key inputs and assumptions (including, at a minimum, but not limited to, and if applicable, quantitative information about discount rates, expected prepayments including the expected weighted-average life of prepayable financial assets, and anticipated credit losses) used in measuring the fair value of assets or liabilities that relate to the transferor's continuing involvement with transferred financial assets, as of the balance sheet date." } } }, "auth_ref": [ "r695" ] }, "us-gaap_NumberOfReportableSegments": { "xbrltype": "integerItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "NumberOfReportableSegments", "presentation": [ "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationOtherDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_NumberOfReportableSegments", "terseLabel": "Number of Reportable Segments", "documentation": "Number of segments reported by the entity. A reportable segment is a component of an entity for which there is an accounting requirement to report separate financial information on that component in the entity's financial statements." } } }, "auth_ref": [ "r641" ] }, "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2": { "xbrltype": "durationItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansStockOptionsActivityDetails" ], "lang": { "en-us": { "role": { "label": "Outstanding, weighted average remaining contractual (Year)", "terseLabel": "Options Outstanding, Weighted Average Remaining Contractual Term", "documentation": "Weighted average remaining contractual term for option awards outstanding, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days." } } }, "auth_ref": [ "r114" ] }, "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1": { "xbrltype": "durationItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansStockOptionsActivityDetails" ], "lang": { "en-us": { "role": { "label": "Exercisable, weighted average remaining contractual term (Year)", "terseLabel": "Options Exercisable, Weighted Average Remaining Contractual Term", "documentation": "Weighted average remaining contractual term for vested portions of options outstanding and currently exercisable or convertible, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days." } } }, "auth_ref": [ "r58" ] }, "dei_Security12bTitle": { "xbrltype": "securityTitleItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "Security12bTitle", "presentation": [ "http://www.pdf.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Title of 12(b) Security", "documentation": "Title of a 12(b) registered security." } } }, "auth_ref": [ "r612" ] }, "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1": { "xbrltype": "durationItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansStockOptionsActivityDetails" ], "lang": { "en-us": { "role": { "label": "Vested and expected to vest, weighted average remaining contractual term (Year)", "terseLabel": "Options Vested and Expected to Vest, Weighted Average Remaining Contractual Term", "documentation": "Weighted average remaining contractual term for fully vested and expected to vest options outstanding, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days. Includes, but is not limited to, unvested options for which requisite service period has not been rendered but that are expected to vest based on achievement of performance condition, if forfeitures are recognized when they occur." } } }, "auth_ref": [ "r336" ] }, "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1": { "xbrltype": "durationItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansValuationAssumptionsForEsppDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1", "terseLabel": "Expected life (in years)", "documentation": "Expected term of award under share-based payment arrangement, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days." } } }, "auth_ref": [ "r340" ] }, "us-gaap_IncreaseDecreaseInIncomeTaxes": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "IncreaseDecreaseInIncomeTaxes", "crdr": "debit", "presentation": [ "http://www.pdf.com/role/DisclosureIncomeTaxesDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_IncreaseDecreaseInIncomeTaxes", "terseLabel": "Increase (Decrease) in Income Taxes", "documentation": "The increase (decrease) during the reporting period in the amounts payable to taxing authorities for taxes that are based on the reporting entity's earnings, net of amounts receivable from taxing authorities for refunds of overpayments or recoveries of income taxes, and in deferred and other tax liabilities and assets." } } }, "auth_ref": [ "r632" ] }, "us-gaap_CompensationAndRetirementDisclosureAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "CompensationAndRetirementDisclosureAbstract", "lang": { "en-us": { "role": { "label": "EMPLOYEE BENEFIT PLANS" } } }, "auth_ref": [] }, "us-gaap_EarningsPerShareBasic": { "xbrltype": "perShareItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "EarningsPerShareBasic", "presentation": [ "http://www.pdf.com/role/DisclosureNetIncomeLossPerShareCalculationOfEarningsPerShareDetails", "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveLoss" ], "lang": { "en-us": { "role": { "label": "Basic (in dollars per share)", "terseLabel": "Basic", "documentation": "The amount of net income (loss) for the period per each share of common stock or unit outstanding during the reporting period." } } }, "auth_ref": [ "r164", "r177", "r178", "r179", "r180", "r181", "r187", "r189", "r191", "r192", "r193", "r197", "r396", "r397", "r448", "r464", "r581" ] }, "us-gaap_IncreaseDecreaseInEmployeeRelatedLiabilities": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "IncreaseDecreaseInEmployeeRelatedLiabilities", "crdr": "debit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0, "order": 14.0 } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "us-gaap_IncreaseDecreaseInEmployeeRelatedLiabilities", "terseLabel": "Accrued compensation and related benefits", "documentation": "The increase (decrease) during the reporting period in the aggregate amount of obligations related to services received from employees, such as accrued salaries and bonuses, payroll taxes and fringe benefits." } } }, "auth_ref": [ "r5" ] }, "us-gaap_FinancialInstrumentsDisclosureTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "FinancialInstrumentsDisclosureTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureFairValueMeasurements" ], "lang": { "en-us": { "role": { "label": "Financial Instruments Disclosure [Text Block]", "terseLabel": "FAIR VALUE MEASUREMENTS", "documentation": "The entire disclosure for financial instruments. This disclosure includes, but is not limited to, fair value measurements of short and long term marketable securities, international currencies forward contracts, and auction rate securities. Financial instruments may include hedging and non-hedging currency exchange instruments, derivatives, securitizations and securities available for sale at fair value. Also included are investment results, realized and unrealized gains and losses as well as impairments and risk management disclosures." } } }, "auth_ref": [] }, "us-gaap_SellingGeneralAndAdministrativeExpensesMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "SellingGeneralAndAdministrativeExpensesMember", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansAllocationOfRecognizedPeriodCostsDetails", "http://www.pdf.com/role/DisclosureLeasesOtherDetails" ], "lang": { "en-us": { "role": { "label": "Selling, General, and Administrative", "documentation": "Primary financial statement caption encompassing selling, general and administrative expense." } } }, "auth_ref": [] }, "us-gaap_SharePrice": { "xbrltype": "perShareItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "SharePrice", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansOtherDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_SharePrice", "terseLabel": "Common Stock, Closing Share Price", "documentation": "Price of a single share of a number of saleable stocks of a company." } } }, "auth_ref": [] }, "us-gaap_DepreciationAndAmortization": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "DepreciationAndAmortization", "crdr": "debit", "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_DepreciationAndAmortization", "terseLabel": "Depreciation, Depletion and Amortization, Nonproduction, Total", "documentation": "The current period expense charged against earnings on long-lived, physical assets not used in production, and which are not intended for resale, to allocate or recognize the cost of such assets over their useful lives; or to record the reduction in book value of an intangible asset over the benefit period of such asset; or to reflect consumption during the period of an asset that is not used in production." } } }, "auth_ref": [ "r6", "r54" ] }, "us-gaap_NumberOfOperatingSegments": { "xbrltype": "integerItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "NumberOfOperatingSegments", "presentation": [ "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationOtherDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_NumberOfOperatingSegments", "terseLabel": "Number of Operating Segments", "documentation": "Number of operating segments. An operating segment is a component of an enterprise: (a) that engages in business activities from which it may earn revenues and incur expenses (including revenues and expenses relating to transactions with other components of the same enterprise), (b) whose operating results are regularly reviewed by the enterprise's chief operating decision maker to make decisions about resources to be allocated to the segment and assess its performance, and (c) for which discrete financial information is available. An operating segment may engage in business activities for which it has yet to earn revenues, for example, start-up operations may be operating segments before earning revenues." } } }, "auth_ref": [ "r641" ] }, "us-gaap_CompensationAndEmployeeBenefitPlansTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "CompensationAndEmployeeBenefitPlansTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlans" ], "lang": { "en-us": { "role": { "label": "Compensation and Employee Benefit Plans [Text Block]", "terseLabel": "EMPLOYEE BENEFIT PLANS", "documentation": "The entire disclosure for an entity's employee compensation and benefit plans, including, but not limited to, postemployment and postretirement benefit plans, defined benefit pension plans, defined contribution plans, non-qualified and supplemental benefit plans, deferred compensation, share-based compensation, life insurance, severance, health care, unemployment and other benefit plans." } } }, "auth_ref": [ "r110", "r111", "r112", "r113" ] }, "us-gaap_CustomerConcentrationRiskMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "CustomerConcentrationRiskMember", "presentation": [ "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationRevenuePercentageByMajorCustomersDetails" ], "lang": { "en-us": { "role": { "label": "Customer Concentration Risk", "documentation": "Reflects the percentage that revenues in the period from one or more significant customers is to net revenues, as defined by the entity, such as total net revenues, product line revenues, segment revenues. The risk is the materially adverse effects of loss of a significant customer." } } }, "auth_ref": [ "r39", "r225" ] }, "dei_TradingSymbol": { "xbrltype": "tradingSymbolItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "TradingSymbol", "presentation": [ "http://www.pdf.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Trading Symbol", "documentation": "Trading symbol of an instrument as listed on an exchange." } } }, "auth_ref": [] }, "dei_SecurityExchangeName": { "xbrltype": "edgarExchangeCodeItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "SecurityExchangeName", "presentation": [ "http://www.pdf.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Security Exchange Name", "documentation": "Name of the Exchange on which a security is registered." } } }, "auth_ref": [ "r614" ] }, "us-gaap_StatementLineItems": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "StatementLineItems", "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsDetails", "http://www.pdf.com/role/DisclosureBalanceSheetComponentsIntangibleAssetsDetails", "http://www.pdf.com/role/DisclosureBalanceSheetComponentsPropertyAndEquipmentDetails", "http://www.pdf.com/role/DisclosureCommitmentsAndContingenciesDetails", "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansAllocationOfRecognizedPeriodCostsDetails", "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNonvestedRestrictedStockUnitsActivityDetails", "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansOtherDetails", "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansStockOptionsActivityDetails", "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansValuationAssumptionsForEsppDetails", "http://www.pdf.com/role/DisclosureFairValueMeasurementsFairValueAssetsMeasuredOnRecurringBasisDetails", "http://www.pdf.com/role/DisclosureLeasesOtherDetails", "http://www.pdf.com/role/DisclosureNetIncomeLossPerShareAntiDilutiveSecuritiesDetails", "http://www.pdf.com/role/DisclosureRevenueFromContractWithCustomersAdditionalInformationDetails", "http://www.pdf.com/role/DisclosureRevenueFromContractWithCustomersDetails", "http://www.pdf.com/role/DisclosureRevenueFromContractWithCustomersDisaggregationOfRevenueDetails", "http://www.pdf.com/role/DisclosureStockholdersEquityDetails", "http://www.pdf.com/role/DisclosureStrategicPartnershipAgreementWithAdvantestAndRelatedPartyTransactionsDetails", "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveLoss", "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfStockholdersEquity" ], "lang": { "en-us": { "role": { "label": "Statement [Line Items]", "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table." } } }, "auth_ref": [ "r172", "r173", "r174", "r198", "r430", "r480", "r489", "r495", "r496", "r497", "r498", "r499", "r500", "r503", "r506", "r507", "r508", "r509", "r510", "r512", "r513", "r514", "r515", "r517", "r518", "r519", "r520", "r521", "r523", "r525", "r526", "r530", "r531", "r532", "r533", "r534", "r535", "r536", "r537", "r538", "r539", "r540", "r541", "r544", "r608" ] }, "us-gaap_AvailableForSaleSecuritiesDebtSecurities": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AvailableForSaleSecuritiesDebtSecurities", "crdr": "debit", "calculation": { "http://www.pdf.com/role/DisclosureFairValueMeasurementsFairValueAssetsMeasuredOnRecurringBasisDetails": { "parentTag": "pdfs_CashCashEquivalentsShortTermInvestmentsFairValueDisclosure", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureFairValueMeasurementsFairValueAssetsMeasuredOnRecurringBasisDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_AvailableForSaleSecuritiesDebtSecurities", "verboseLabel": "Short-term investments (available-for-sale debt securities)", "documentation": "Amount of investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale)." } } }, "auth_ref": [ "r232", "r237", "r446", "r642" ] }, "us-gaap_NoncurrentAssets": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "NoncurrentAssets", "crdr": "debit", "presentation": [ "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationLongLivedAssetsByGeographicAreaDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_NoncurrentAssets", "terseLabel": "Long-lived assets, net", "documentation": "Long-lived assets other than financial instruments, long-term customer relationships of a financial institution, mortgage and other servicing rights, deferred policy acquisition costs, and deferred tax assets." } } }, "auth_ref": [ "r224" ] }, "us-gaap_SeriesOfIndividuallyImmaterialBusinessAcquisitionsMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "SeriesOfIndividuallyImmaterialBusinessAcquisitionsMember", "presentation": [ "http://www.pdf.com/role/DisclosureBusinessCombinationFairValuesOfAssetsAcquiredAndLiabilitiesAssumedDetails", "http://www.pdf.com/role/DisclosureBusinessCombinationOtherDetails" ], "lang": { "en-us": { "role": { "label": "Series of Individually Immaterial Business Acquisitions", "terseLabel": "Lantern Machinery Analytics, Inc.", "documentation": "Represents the aggregation and reporting of combined amounts of individually immaterial business combinations that were completed during the period." } } }, "auth_ref": [ "r65" ] }, "us-gaap_IncomeTaxDisclosureTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "IncomeTaxDisclosureTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureIncomeTaxes" ], "lang": { "en-us": { "role": { "label": "Income Tax Disclosure [Text Block]", "terseLabel": "INCOME TAXES", "documentation": "The entire disclosure for income taxes. Disclosures may include net deferred tax liability or asset recognized in an enterprise's statement of financial position, net change during the year in the total valuation allowance, approximate tax effect of each type of temporary difference and carryforward that gives rise to a significant portion of deferred tax liabilities and deferred tax assets, utilization of a tax carryback, and tax uncertainties information." } } }, "auth_ref": [ "r171", "r356", "r362", "r366", "r368", "r371", "r375", "r376", "r377", "r483" ] }, "us-gaap_Liabilities": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "Liabilities", "crdr": "credit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets": { "parentTag": "us-gaap_LiabilitiesAndStockholdersEquity", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "us-gaap_Liabilities", "totalLabel": "Total liabilities", "documentation": "Sum of the carrying amounts as of the balance sheet date of all liabilities that are recognized. Liabilities are probable future sacrifices of economic benefits arising from present obligations of an entity to transfer assets or provide services to other entities in the future." } } }, "auth_ref": [ "r16", "r170", "r233", "r256", "r257", "r258", "r259", "r260", "r261", "r262", "r263", "r264", "r383", "r386", "r387", "r399", "r501", "r582", "r611", "r653", "r690", "r691" ] }, "us-gaap_EmployeeRelatedLiabilitiesCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "EmployeeRelatedLiabilitiesCurrent", "crdr": "credit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets": { "parentTag": "us-gaap_LiabilitiesCurrent", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Accrued compensation and related benefits", "documentation": "Total of the carrying values as of the balance sheet date of obligations incurred through that date and payable for obligations related to services received from employees, such as accrued salaries and bonuses, payroll taxes and fringe benefits. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer)." } } }, "auth_ref": [ "r17" ] }, "us-gaap_OtherLiabilitiesNoncurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "OtherLiabilitiesNoncurrent", "crdr": "credit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets": { "parentTag": "us-gaap_Liabilities", "weight": 1.0, "order": 3.0 } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "us-gaap_OtherLiabilitiesNoncurrent", "terseLabel": "Other non-current liabilities", "documentation": "Amount of liabilities classified as other, due after one year or the normal operating cycle, if longer." } } }, "auth_ref": [ "r19" ] }, "us-gaap_StockRepurchasedDuringPeriodValue": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "StockRepurchasedDuringPeriodValue", "crdr": "debit", "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfStockholdersEquity" ], "lang": { "en-us": { "role": { "label": "Stock Repurchased During Period, Value", "negatedLabel": "Repurchase of common stock", "documentation": "Equity impact of the value of stock that has been repurchased during the period and has not been retired and is not held in treasury. Some state laws may mandate the circumstances under which an entity may acquire its own stock and prescribe the accounting treatment therefore. This element is used when state law does not recognize treasury stock." } } }, "auth_ref": [ "r10", "r80", "r81", "r108", "r488", "r544", "r561", "r610" ] }, "dei_EntityTaxIdentificationNumber": { "xbrltype": "employerIdItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "EntityTaxIdentificationNumber", "presentation": [ "http://www.pdf.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Entity Tax Identification Number", "documentation": "The Tax Identification Number (TIN), also known as an Employer Identification Number (EIN), is a unique 9-digit value assigned by the IRS." } } }, "auth_ref": [ "r613" ] }, "us-gaap_CommonStockCapitalSharesReservedForFutureIssuance": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "CommonStockCapitalSharesReservedForFutureIssuance", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansOtherDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_CommonStockCapitalSharesReservedForFutureIssuance", "terseLabel": "ESPP, Common Shares Reserved for Future Issuance", "documentation": "Aggregate number of common shares reserved for future issuance." } } }, "auth_ref": [ "r21" ] }, "us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "FiniteLivedIntangibleAssetsByMajorClassAxis", "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsIntangibleAssetsDetails", "http://www.pdf.com/role/DisclosureBusinessCombinationFairValuesOfAssetsAcquiredAndLiabilitiesAssumedDetails" ], "lang": { "en-us": { "role": { "label": "Finite-Lived Intangible Assets by Major Class [Axis]", "documentation": "Information by major type or class of finite-lived intangible assets." } } }, "auth_ref": [ "r244", "r245", "r246", "r247", "r431", "r432" ] }, "us-gaap_PaymentsToAcquireBusinessesGross": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "PaymentsToAcquireBusinessesGross", "crdr": "credit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities", "weight": -1.0, "order": 5.0 } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Payments to Acquire Businesses, Gross", "negatedLabel": "Payment for business acquisition, net of cash acquired", "documentation": "The cash outflow associated with the acquisition of business during the period. The cash portion only of the acquisition price." } } }, "auth_ref": [ "r28", "r380" ] }, "us-gaap_StockholdersEquityNumberOfSharesParValueAndOtherDisclosuresAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "StockholdersEquityNumberOfSharesParValueAndOtherDisclosuresAbstract", "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Stockholders' equity:" } } }, "auth_ref": [] }, "us-gaap_ContractWithCustomerLiabilityRevenueRecognized": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ContractWithCustomerLiabilityRevenueRecognized", "crdr": "credit", "presentation": [ "http://www.pdf.com/role/DisclosureRevenueFromContractWithCustomersDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_ContractWithCustomerLiabilityRevenueRecognized", "terseLabel": "Contract with Customer, Liability, Revenue Recognized", "documentation": "Amount of revenue recognized that was previously included in balance of obligation to transfer good or service to customer for which consideration from customer has been received or is due." } } }, "auth_ref": [ "r303" ] }, "us-gaap_PatentsMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "PatentsMember", "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsIntangibleAssetsDetails" ], "lang": { "en-us": { "role": { "label": "Patents", "documentation": "Exclusive legal right granted by the government to the owner of the patent to exploit an invention or a process for a period of time specified by law." } } }, "auth_ref": [ "r118" ] }, "dei_EntityIncorporationStateCountryCode": { "xbrltype": "edgarStateCountryItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "EntityIncorporationStateCountryCode", "presentation": [ "http://www.pdf.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Entity Incorporation, State or Country Code", "documentation": "Two-character EDGAR code representing the state or country of incorporation." } } }, "auth_ref": [] }, "dei_CurrentFiscalYearEndDate": { "xbrltype": "gMonthDayItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "CurrentFiscalYearEndDate", "presentation": [ "http://www.pdf.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Current Fiscal Year End Date", "documentation": "End date of current fiscal year in the format --MM-DD." } } }, "auth_ref": [] }, "us-gaap_LiabilitiesAndStockholdersEquity": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "LiabilitiesAndStockholdersEquity", "crdr": "credit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets": { "parentTag": null, "weight": null, "order": null, "root": true } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "us-gaap_LiabilitiesAndStockholdersEquity", "totalLabel": "Total liabilities and stockholders' equity", "documentation": "Amount of liabilities and equity items, including the portion of equity attributable to noncontrolling interests, if any." } } }, "auth_ref": [ "r86", "r122", "r457", "r604", "r634", "r645", "r685" ] }, "us-gaap_EmployeeStockOwnershipPlanESOPPolicy": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "EmployeeStockOwnershipPlanESOPPolicy", "presentation": [ "http://www.pdf.com/role/DisclosureSignificantAccountingPoliciesPolicies" ], "lang": { "en-us": { "role": { "label": "Employee Stock Ownership Plan (ESOP), Policy [Policy Text Block]", "terseLabel": "Employee Stock Purchase Plan, Policy", "documentation": "Disclosure of accounting policy for ESOP transactions, including the method of measuring compensation, the classification of dividends on ESOP shares, and the treatment of ESOP shares for EPS computations. If the employer has both old ESOP shares for which it does not adopt new guidance and new ESOP shares for which new guidance is required, these disclosures are required for both blocks of shares." } } }, "auth_ref": [ "r61" ] }, "srt_ProductOrServiceAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/srt/2023", "localname": "ProductOrServiceAxis", "presentation": [ "http://www.pdf.com/role/DisclosureRevenueFromContractWithCustomersAdditionalInformationDetails", "http://www.pdf.com/role/DisclosureStrategicPartnershipAgreementWithAdvantestAndRelatedPartyTransactionsDetails", "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveLoss" ], "lang": { "en-us": { "role": { "label": "Product and Service [Axis]" } } }, "auth_ref": [ "r221", "r430", "r466", "r467", "r468", "r469", "r470", "r471", "r578", "r589", "r605", "r623", "r651", "r652", "r656", "r701" ] }, "us-gaap_ConcentrationRiskBenchmarkDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ConcentrationRiskBenchmarkDomain", "presentation": [ "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationRevenuePercentageByMajorCustomersDetails", "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationRevenuesByGeographicAreaDetails", "http://www.pdf.com/role/DisclosureRevenueFromContractWithCustomersDetails" ], "lang": { "en-us": { "role": { "label": "Concentration Risk Benchmark [Domain]", "documentation": "The denominator in a calculation of a disclosed concentration risk percentage." } } }, "auth_ref": [ "r38", "r41", "r75", "r76", "r225", "r564" ] }, "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssetsAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssetsAbstract", "presentation": [ "http://www.pdf.com/role/DisclosureBusinessCombinationFairValuesOfAssetsAcquiredAndLiabilitiesAssumedDetails" ], "lang": { "en-us": { "role": { "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Assets [Abstract]", "terseLabel": "Assets" } } }, "auth_ref": [] }, "us-gaap_FurnitureAndFixturesMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "FurnitureAndFixturesMember", "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsPropertyAndEquipmentDetails" ], "lang": { "en-us": { "role": { "label": "Furniture, Fixtures and Equipment", "documentation": "Equipment commonly used in offices and stores that have no permanent connection to the structure of a building or utilities. Examples include, but are not limited to, desks, chairs, tables, and bookcases." } } }, "auth_ref": [] }, "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedLiabilitiesAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedLiabilitiesAbstract", "presentation": [ "http://www.pdf.com/role/DisclosureBusinessCombinationFairValuesOfAssetsAcquiredAndLiabilitiesAssumedDetails" ], "lang": { "en-us": { "role": { "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Liabilities [Abstract]", "terseLabel": "Liabilities" } } }, "auth_ref": [] }, "us-gaap_ConcentrationRiskByBenchmarkAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ConcentrationRiskByBenchmarkAxis", "presentation": [ "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationRevenuePercentageByMajorCustomersDetails", "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationRevenuesByGeographicAreaDetails", "http://www.pdf.com/role/DisclosureRevenueFromContractWithCustomersDetails" ], "lang": { "en-us": { "role": { "label": "Concentration Risk Benchmark [Axis]", "documentation": "Information by benchmark of concentration risk." } } }, "auth_ref": [ "r38", "r41", "r75", "r76", "r225", "r479", "r564" ] }, "srt_ProductsAndServicesDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/srt/2023", "localname": "ProductsAndServicesDomain", "presentation": [ "http://www.pdf.com/role/DisclosureRevenueFromContractWithCustomersAdditionalInformationDetails", "http://www.pdf.com/role/DisclosureStrategicPartnershipAgreementWithAdvantestAndRelatedPartyTransactionsDetails", "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveLoss" ], "lang": { "en-us": { "role": { "label": "Product and Service [Domain]" } } }, "auth_ref": [ "r221", "r430", "r466", "r467", "r468", "r469", "r470", "r471", "r578", "r589", "r605", "r623", "r651", "r652", "r656", "r701" ] }, "us-gaap_ContractWithCustomerAssetNetCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ContractWithCustomerAssetNetCurrent", "crdr": "debit", "presentation": [ "http://www.pdf.com/role/DisclosureRevenueFromContractWithCustomersDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_ContractWithCustomerAssetNetCurrent", "terseLabel": "Contract with Customer, Asset, after Allowance for Credit Loss, Current, Total", "documentation": "Amount, after allowance for credit loss, of right to consideration in exchange for good or service transferred to customer when right is conditioned on something other than passage of time, classified as current." } } }, "auth_ref": [ "r280", "r282", "r302" ] }, "us-gaap_StockRepurchasedDuringPeriodShares": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "StockRepurchasedDuringPeriodShares", "presentation": [ "http://www.pdf.com/role/DisclosureStockholdersEquityDetails", "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfStockholdersEquity" ], "lang": { "en-us": { "role": { "label": "Stock Repurchased During Period, Shares", "terseLabel": "Repurchase of common stock (in shares)", "verboseLabel": "Common stock repurchased", "documentation": "Number of shares that have been repurchased during the period and have not been retired and are not held in treasury. Some state laws may govern the circumstances under which an entity may acquire its own stock and prescribe the accounting treatment therefore. This element is used when state law does not recognize treasury stock." } } }, "auth_ref": [ "r10", "r80", "r81", "r108", "r481", "r544", "r561" ] }, "us-gaap_CustomerRelationshipsMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "CustomerRelationshipsMember", "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsIntangibleAssetsDetails", "http://www.pdf.com/role/DisclosureBusinessCombinationFairValuesOfAssetsAcquiredAndLiabilitiesAssumedDetails" ], "lang": { "en-us": { "role": { "label": "Customer Relationships", "documentation": "Customer relationship that exists between an entity and its customer, for example, but not limited to, tenant relationships." } } }, "auth_ref": [ "r70" ] }, "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities", "crdr": "credit", "calculation": { "http://www.pdf.com/role/DisclosureBusinessCombinationFairValuesOfAssetsAcquiredAndLiabilitiesAssumedDetails": { "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedLiabilities", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureBusinessCombinationFairValuesOfAssetsAcquiredAndLiabilitiesAssumedDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities", "terseLabel": "Deferred tax liabilities", "documentation": "Amount of deferred tax liability attributable to taxable temporary differences assumed at the acquisition date." } } }, "auth_ref": [ "r67" ] }, "us-gaap_RevenueFromContractWithCustomerAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "RevenueFromContractWithCustomerAbstract", "lang": { "en-us": { "role": { "label": "REVENUE FROM CONTRACT WITH CUSTOMERS" } } }, "auth_ref": [] }, "us-gaap_RevenueFromContractWithCustomerTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "RevenueFromContractWithCustomerTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureRevenueFromContractWithCustomers" ], "lang": { "en-us": { "role": { "label": "Revenue from Contract with Customer [Text Block]", "terseLabel": "REVENUE FROM CONTRACT WITH CUSTOMERS", "documentation": "The entire disclosure of revenue from contract with customer to transfer good or service and to transfer nonfinancial asset. Includes, but is not limited to, disaggregation of revenue, credit loss recognized from contract with customer, judgment and change in judgment related to contract with customer, and asset recognized from cost incurred to obtain or fulfill contract with customer. Excludes insurance and lease contracts." } } }, "auth_ref": [ "r139", "r283", "r284", "r285", "r286", "r287", "r288", "r290", "r291", "r304" ] }, "us-gaap_AssetsCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AssetsCurrent", "crdr": "debit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets": { "parentTag": "us-gaap_Assets", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "us-gaap_AssetsCurrent", "totalLabel": "Total current assets", "documentation": "Sum of the carrying amounts as of the balance sheet date of all assets that are expected to be realized in cash, sold, or consumed within one year (or the normal operating cycle, if longer). Assets are probable future economic benefits obtained or controlled by an entity as a result of past transactions or events." } } }, "auth_ref": [ "r142", "r154", "r170", "r233", "r256", "r257", "r258", "r259", "r260", "r261", "r262", "r263", "r264", "r382", "r386", "r399", "r604", "r653", "r654", "r690" ] }, "dei_EntityCurrentReportingStatus": { "xbrltype": "yesNoItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "EntityCurrentReportingStatus", "presentation": [ "http://www.pdf.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Entity Current Reporting Status", "documentation": "Indicate 'Yes' or 'No' whether registrants (1) have filed all reports required to be filed by Section 13 or 15(d) of the Securities Exchange Act of 1934 during the preceding 12 months (or for such shorter period that registrants were required to file such reports), and (2) have been subject to such filing requirements for the past 90 days. This information should be based on the registrant's current or most recent filing containing the related disclosure." } } }, "auth_ref": [] }, "dei_EntityShellCompany": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "EntityShellCompany", "presentation": [ "http://www.pdf.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Entity Shell Company", "documentation": "Boolean flag that is true when the registrant is a shell company as defined in Rule 12b-2 of the Exchange Act." } } }, "auth_ref": [ "r613" ] }, "country_US": { "xbrltype": "domainItemType", "nsuri": "http://xbrl.sec.gov/country/2023", "localname": "US", "presentation": [ "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationLongLivedAssetsByGeographicAreaDetails", "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationRevenuesByGeographicAreaDetails" ], "lang": { "en-us": { "role": { "label": "UNITED STATES" } } }, "auth_ref": [] }, "us-gaap_AssetsCurrentAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AssetsCurrentAbstract", "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Current assets:" } } }, "auth_ref": [] }, "us-gaap_LiabilitiesCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "LiabilitiesCurrent", "crdr": "credit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets": { "parentTag": "us-gaap_Liabilities", "weight": 1.0, "order": 4.0 } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "us-gaap_LiabilitiesCurrent", "totalLabel": "Total current liabilities", "documentation": "Total obligations incurred as part of normal operations that are expected to be paid during the following twelve months or within one business cycle, if longer." } } }, "auth_ref": [ "r18", "r143", "r170", "r233", "r256", "r257", "r258", "r259", "r260", "r261", "r262", "r263", "r264", "r383", "r386", "r387", "r399", "r604", "r653", "r690", "r691" ] }, "dei_EntityFilerCategory": { "xbrltype": "filerCategoryItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "EntityFilerCategory", "presentation": [ "http://www.pdf.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Entity Filer Category", "documentation": "Indicate whether the registrant is one of the following: Large Accelerated Filer, Accelerated Filer, Non-accelerated Filer. Definitions of these categories are stated in Rule 12b-2 of the Exchange Act. This information should be based on the registrant's current or most recent filing containing the related disclosure." } } }, "auth_ref": [ "r613" ] }, "us-gaap_FairValueMeasurementsFairValueHierarchyDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "FairValueMeasurementsFairValueHierarchyDomain", "presentation": [ "http://www.pdf.com/role/DisclosureFairValueMeasurementsFairValueAssetsMeasuredOnRecurringBasisDetails" ], "lang": { "en-us": { "role": { "label": "Fair Value Hierarchy and NAV [Domain]", "documentation": "Categories used to prioritize the inputs to valuation techniques to measure fair value." } } }, "auth_ref": [ "r265", "r306", "r307", "r308", "r309", "r310", "r311", "r424", "r425", "r426", "r586", "r587", "r593", "r594", "r595" ] }, "dei_EntitySmallBusiness": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "EntitySmallBusiness", "presentation": [ "http://www.pdf.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Entity Small Business", "documentation": "Indicates that the company is a Smaller Reporting Company (SRC)." } } }, "auth_ref": [ "r613" ] }, "us-gaap_CapitalizedContractCostAmortization": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "CapitalizedContractCostAmortization", "crdr": "debit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0, "order": 5.0 } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "us-gaap_CapitalizedContractCostAmortization", "verboseLabel": "Amortization of costs capitalized to obtain revenue contracts", "documentation": "Amount of amortization expense for asset recognized from cost incurred to obtain or fulfill contract with customer." } } }, "auth_ref": [ "r239" ] }, "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect", "crdr": "debit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows": { "parentTag": null, "weight": null, "order": null, "root": true } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect", "totalLabel": "Net change in cash and cash equivalents", "documentation": "Amount of increase (decrease) in cash, cash equivalents, and cash and cash equivalents restricted to withdrawal or usage; including effect from exchange rate change. Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits. Cash equivalents include, but are not limited to, short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates." } } }, "auth_ref": [ "r1", "r97" ] }, "us-gaap_USGovernmentCorporationsAndAgenciesSecuritiesMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "USGovernmentCorporationsAndAgenciesSecuritiesMember", "presentation": [ "http://www.pdf.com/role/DisclosureFairValueMeasurementsFairValueAssetsMeasuredOnRecurringBasisDetails" ], "lang": { "en-us": { "role": { "label": "US Government Securities", "documentation": "This category includes information about debt issued by US Government Corporations and Agencies. Investments in such US Government Corporations may include debt securities issued by the Government National Mortgage Association (Ginnie Mae) and by the Federal National Mortgage Association (Fannie Mae) and the Federal Home Loan Mortgage Corporation (Freddie Mac)." } } }, "auth_ref": [ "r700" ] }, "us-gaap_EmployeeStockOptionMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "EmployeeStockOptionMember", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansOtherDetails", "http://www.pdf.com/role/DisclosureNetIncomeLossPerShareAntiDilutiveSecuritiesDetails" ], "lang": { "en-us": { "role": { "label": "Stock Options", "documentation": "Share-based payment arrangement granting right, subject to vesting and other restrictions, to purchase or sell certain number of shares at predetermined price for specified period of time." } } }, "auth_ref": [] }, "dei_EntityEmergingGrowthCompany": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "EntityEmergingGrowthCompany", "presentation": [ "http://www.pdf.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Entity Emerging Growth Company", "documentation": "Indicate if registrant meets the emerging growth company criteria." } } }, "auth_ref": [ "r613" ] }, "us-gaap_LiabilitiesCurrentAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "LiabilitiesCurrentAbstract", "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Current liabilities:" } } }, "auth_ref": [] }, "us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations", "crdr": "debit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows": { "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect", "weight": 1.0, "order": 4.0 } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Effect of exchange rate changes on cash and cash equivalents", "documentation": "Amount of increase (decrease) from effect of exchange rate changes on cash and cash equivalents, and cash and cash equivalents restricted to withdrawal or usage; held in foreign currencies; including, but not limited to, disposal group and discontinued operations. Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits. Cash equivalents include, but are not limited to, short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates." } } }, "auth_ref": [ "r686" ] }, "us-gaap_AcceleratedShareRepurchasesFinalPricePaidPerShare": { "xbrltype": "perShareItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AcceleratedShareRepurchasesFinalPricePaidPerShare", "presentation": [ "http://www.pdf.com/role/DisclosureStockholdersEquityDetails" ], "lang": { "en-us": { "role": { "label": "Accelerated Share Repurchases, Final Price Paid Per Share", "terseLabel": "Repurchase of common stock, weighted-average price per share", "documentation": "Final price paid per share for the purchase of the targeted number of shares, determined by an average market price over a fixed period of time." } } }, "auth_ref": [ "r109" ] }, "pdfs_AdvancesForPurchaseOfFixedAssetsTransferredFromPrepaidAssetsToPropertyAndEquipment": { "xbrltype": "monetaryItemType", "nsuri": "http://www.pdf.com/20230930", "localname": "AdvancesForPurchaseOfFixedAssetsTransferredFromPrepaidAssetsToPropertyAndEquipment", "crdr": "debit", "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "documentation": "Represents advances for purchase of fixed assets transferred from prepaid assets to property and equipment.", "label": "Advances For Purchase Of Fixed Assets Transferred From Prepaid Assets To Property And Equipment", "terseLabel": "Advances for purchase of fixed assets transferred from prepaid assets to property and equipment" } } }, "auth_ref": [] }, "pdfs_NumberOfFinanceLeases": { "xbrltype": "integerItemType", "nsuri": "http://www.pdf.com/20230930", "localname": "NumberOfFinanceLeases", "presentation": [ "http://www.pdf.com/role/DisclosureLeasesOtherDetails" ], "lang": { "en-us": { "role": { "documentation": "Number of finance leases as of balance sheet date.", "label": "Number Of Finance Leases", "terseLabel": "Number of finance leases" } } }, "auth_ref": [] }, "us-gaap_StatementEquityComponentsAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "StatementEquityComponentsAxis", "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfStockholdersEquity" ], "lang": { "en-us": { "role": { "label": "Equity Components [Axis]", "documentation": "Information by component of equity." } } }, "auth_ref": [ "r10", "r23", "r140", "r160", "r161", "r162", "r172", "r173", "r174", "r176", "r182", "r184", "r198", "r234", "r235", "r279", "r347", "r348", "r349", "r369", "r370", "r388", "r389", "r390", "r391", "r392", "r393", "r395", "r400", "r401", "r402", "r403", "r404", "r405", "r417", "r473", "r474", "r475", "r488", "r544" ] }, "us-gaap_FiniteLivedIntangibleAssetUsefulLife": { "xbrltype": "durationItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "FiniteLivedIntangibleAssetUsefulLife", "presentation": [ "http://www.pdf.com/role/DisclosureBusinessCombinationFairValuesOfAssetsAcquiredAndLiabilitiesAssumedDetails" ], "lang": { "en-us": { "role": { "label": "Finite-lived intangible assets, amortization period (Year)", "terseLabel": "Intangible asset amortization period", "documentation": "Useful life of finite-lived intangible assets, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days." } } }, "auth_ref": [] }, "us-gaap_TableTextBlock": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "TableTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureBusinessCombinationTables" ], "lang": { "en-us": { "role": { "label": "us-gaap_TableTextBlock", "terseLabel": "Notes Tables" } } }, "auth_ref": [] }, "pdfs_CustomerCMember": { "xbrltype": "domainItemType", "nsuri": "http://www.pdf.com/20230930", "localname": "CustomerCMember", "presentation": [ "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationRevenuePercentageByMajorCustomersDetails" ], "lang": { "en-us": { "role": { "documentation": "Information pertaining to customer C.", "label": "Customer C" } } }, "auth_ref": [] }, "us-gaap_AdditionalPaidInCapitalMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AdditionalPaidInCapitalMember", "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfStockholdersEquity" ], "lang": { "en-us": { "role": { "label": "Additional Paid-in Capital", "documentation": "Excess of issue price over par or stated value of the entity's capital stock and amounts received from other transactions involving the entity's stock or stockholders." } } }, "auth_ref": [ "r347", "r348", "r349", "r488", "r636", "r637", "r638", "r684", "r704" ] }, "us-gaap_StockIssuedDuringPeriodSharesRestrictedStockAwardGross": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "StockIssuedDuringPeriodSharesRestrictedStockAwardGross", "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfStockholdersEquity" ], "lang": { "en-us": { "role": { "label": "Vesting of restricted stock units (in shares)", "documentation": "Total number of shares issued during the period, including shares forfeited, as a result of Restricted Stock Awards." } } }, "auth_ref": [ "r10", "r108" ] }, "us-gaap_RetainedEarningsMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "RetainedEarningsMember", "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfStockholdersEquity" ], "lang": { "en-us": { "role": { "label": "Accumulated Deficit", "documentation": "Accumulated undistributed earnings (deficit)." } } }, "auth_ref": [ "r140", "r172", "r173", "r174", "r176", "r182", "r184", "r234", "r235", "r347", "r348", "r349", "r369", "r370", "r388", "r390", "r391", "r393", "r395", "r473", "r475", "r488", "r704" ] }, "pdfs_ShareBasedCompensationArrangementByShareBasedPaymentAwardOfferingPeriod": { "xbrltype": "durationItemType", "nsuri": "http://www.pdf.com/20230930", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOfferingPeriod", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansOtherDetails" ], "lang": { "en-us": { "role": { "documentation": "Period from grant date that an equity-based award is offered, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Offering Period", "terseLabel": "ESPP, Share Offering Period Duration" } } }, "auth_ref": [] }, "us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife": { "xbrltype": "durationItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife", "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsDetails", "http://www.pdf.com/role/DisclosureBalanceSheetComponentsIntangibleAssetsDetails" ], "lang": { "en-us": { "role": { "label": "Intangible asset amortization period", "terseLabel": "Weighted-average amortization period intangible assets", "documentation": "Weighted average amortization period of finite-lived intangible assets acquired either individually or as part of a group of assets, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days." } } }, "auth_ref": [ "r102" ] }, "us-gaap_StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansOtherDetails", "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfStockholdersEquity" ], "lang": { "en-us": { "role": { "label": "Issuance of common stock in connection with employee stock purchase plan (in shares)", "terseLabel": "ESPP, Shares Issued During Period", "documentation": "Number of shares issued during the period as a result of an employee stock purchase plan." } } }, "auth_ref": [ "r10", "r80", "r81", "r108" ] }, "us-gaap_BusinessCombinationDisclosureTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "BusinessCombinationDisclosureTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureBusinessCombination" ], "lang": { "en-us": { "role": { "label": "Business Combination Disclosure [Text Block]", "terseLabel": "BUSINESS COMBINATION", "documentation": "The entire disclosure for a business combination (or series of individually immaterial business combinations) completed during the period, including background, timing, and recognized assets and liabilities. The disclosure may include leverage buyout transactions (as applicable)." } } }, "auth_ref": [ "r117", "r379" ] }, "us-gaap_PropertyPlantAndEquipmentGross": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "PropertyPlantAndEquipmentGross", "crdr": "debit", "calculation": { "http://www.pdf.com/role/DisclosureBalanceSheetComponentsPropertyAndEquipmentDetails": { "parentTag": "us-gaap_PropertyPlantAndEquipmentNet", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsPropertyAndEquipmentDetails" ], "lang": { "en-us": { "role": { "label": "Property and equipment, gross", "documentation": "Amount before accumulated depreciation, depletion and amortization of physical assets used in the normal conduct of business and not intended for resale. Examples include, but are not limited to, land, buildings, machinery and equipment, office equipment, and furniture and fixtures." } } }, "auth_ref": [ "r105", "r145", "r459" ] }, "pdfs_NumberOfRevenueSources": { "xbrltype": "integerItemType", "nsuri": "http://www.pdf.com/20230930", "localname": "NumberOfRevenueSources", "presentation": [ "http://www.pdf.com/role/DisclosureRevenueFromContractWithCustomersDetails" ], "lang": { "en-us": { "role": { "documentation": "Represents information pertaining to number of sources where the company is deriving revenue.", "label": "Number of Revenue Sources", "terseLabel": "Number of revenue sources" } } }, "auth_ref": [] }, "us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureBusinessCombinationTables" ], "lang": { "en-us": { "role": { "label": "Schedule of Business Acquisitions, by Acquisition [Table Text Block]", "terseLabel": "Schedule of allocated purchase price for business acquisition", "documentation": "Tabular disclosure of a material business combination completed during the period, including background, timing, and recognized assets and liabilities. This table does not include leveraged buyouts." } } }, "auth_ref": [ "r63", "r65" ] }, "us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "StockIssuedDuringPeriodSharesStockOptionsExercised", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansStockOptionsActivityDetails", "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfStockholdersEquity" ], "lang": { "en-us": { "role": { "label": "Issuance of common stock in connection with exercise of options (in shares)", "negatedLabel": "Options Exercised", "documentation": "Number of share options (or share units) exercised during the current period." } } }, "auth_ref": [ "r10", "r80", "r81", "r108", "r325" ] }, "pdfs_UnrecognizedTaxBenefitsInDeferredTaxAssets": { "xbrltype": "monetaryItemType", "nsuri": "http://www.pdf.com/20230930", "localname": "UnrecognizedTaxBenefitsInDeferredTaxAssets", "crdr": "debit", "presentation": [ "http://www.pdf.com/role/DisclosureIncomeTaxesDetails" ], "lang": { "en-us": { "role": { "documentation": "Unrecognized tax benefits in deferred tax assets.", "label": "pdfs_UnrecognizedTaxBenefitsInDeferredTaxAssets", "terseLabel": "Unrecognized Tax Benefits In Deferred Tax Assets" } } }, "auth_ref": [] }, "us-gaap_PaymentsToAcquirePropertyPlantAndEquipment": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "PaymentsToAcquirePropertyPlantAndEquipment", "crdr": "credit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities", "weight": -1.0, "order": 2.0 } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "us-gaap_PaymentsToAcquirePropertyPlantAndEquipment", "negatedLabel": "Purchases of property and equipment", "documentation": "The cash outflow associated with the acquisition of long-lived, physical assets that are used in the normal conduct of business to produce goods and services and not intended for resale; includes cash outflows to pay for construction of self-constructed assets." } } }, "auth_ref": [ "r96" ] }, "pdfs_RestOfTheWorldMember": { "xbrltype": "domainItemType", "nsuri": "http://www.pdf.com/20230930", "localname": "RestOfTheWorldMember", "presentation": [ "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationLongLivedAssetsByGeographicAreaDetails", "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationRevenuesByGeographicAreaDetails" ], "lang": { "en-us": { "role": { "documentation": "Information pertaining to the rest of the world.", "label": "Rest of the World" } } }, "auth_ref": [] }, "us-gaap_PropertyPlantAndEquipmentNet": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "PropertyPlantAndEquipmentNet", "crdr": "debit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets": { "parentTag": "us-gaap_Assets", "weight": 1.0, "order": 2.0 }, "http://www.pdf.com/role/DisclosureBalanceSheetComponentsPropertyAndEquipmentDetails": { "parentTag": null, "weight": null, "order": null, "root": true } }, "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsPropertyAndEquipmentDetails", "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Property and equipment, net", "totalLabel": "Total", "documentation": "Amount after accumulated depreciation, depletion and amortization of physical assets used in the normal conduct of business to produce goods and services and not intended for resale. Examples include, but are not limited to, land, buildings, machinery and equipment, office equipment, and furniture and fixtures." } } }, "auth_ref": [ "r7", "r450", "r459", "r604" ] }, "pdfs_LaboratoryAndTestEquipmentMember": { "xbrltype": "domainItemType", "nsuri": "http://www.pdf.com/20230930", "localname": "LaboratoryAndTestEquipmentMember", "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsPropertyAndEquipmentDetails" ], "lang": { "en-us": { "role": { "documentation": "Information pertaining to laboratory and test equipment.", "label": "Laboratory and Other Equipment" } } }, "auth_ref": [] }, "us-gaap_EquityComponentDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "EquityComponentDomain", "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfStockholdersEquity" ], "lang": { "en-us": { "role": { "label": "Equity Component [Domain]", "documentation": "Components of equity are the parts of the total Equity balance including that which is allocated to common, preferred, treasury stock, retained earnings, etc." } } }, "auth_ref": [ "r10", "r140", "r160", "r161", "r162", "r172", "r173", "r174", "r176", "r182", "r184", "r198", "r234", "r235", "r279", "r347", "r348", "r349", "r369", "r370", "r388", "r389", "r390", "r391", "r392", "r393", "r395", "r400", "r401", "r402", "r403", "r404", "r405", "r417", "r473", "r474", "r475", "r488", "r544" ] }, "us-gaap_RelatedPartyTransactionsAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "RelatedPartyTransactionsAbstract", "lang": { "en-us": { "role": { "label": "STRATEGIC PARTNERSHIP AGREEMENT WITH ADVANTEST AND RELATED PARTY TRANSACTIONS" } } }, "auth_ref": [] }, "us-gaap_TreasuryStockSharesAcquired": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "TreasuryStockSharesAcquired", "presentation": [ "http://www.pdf.com/role/DisclosureStockholdersEquityDetails", "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfStockholdersEquity" ], "lang": { "en-us": { "role": { "label": "Purchases of treasury stock in connection with tax withholdings on restricted stock grants (in shares)", "terseLabel": "Treasury Stock, Shares, Acquired (in shares)", "documentation": "Number of shares that have been repurchased during the period and are being held in treasury." } } }, "auth_ref": [ "r10", "r81", "r108" ] }, "pdfs_TermOfProductWarranty": { "xbrltype": "durationItemType", "nsuri": "http://www.pdf.com/20230930", "localname": "TermOfProductWarranty", "presentation": [ "http://www.pdf.com/role/DisclosureCommitmentsAndContingenciesDetails" ], "lang": { "en-us": { "role": { "documentation": "Represents information pertaining to product warranty period following initial delivery.", "label": "Term of Product Warranty", "terseLabel": "Term of Product Warranty" } } }, "auth_ref": [] }, "us-gaap_AccumulatedOtherComprehensiveIncomeMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AccumulatedOtherComprehensiveIncomeMember", "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfStockholdersEquity" ], "lang": { "en-us": { "role": { "label": "Accumulated Other Comprehensive Loss", "documentation": "Accumulated increase (decrease) in equity from transactions and other events and circumstances from non-owner sources, attributable to the parent. Excludes net income (loss), and accumulated changes in equity from transactions resulting from investments by owners and distributions to owners." } } }, "auth_ref": [ "r2", "r9", "r25", "r389", "r392", "r417", "r473", "r474", "r629", "r630", "r631", "r636", "r637", "r638" ] }, "pdfs_EmployeeStockPurchasePlanMember": { "xbrltype": "domainItemType", "nsuri": "http://www.pdf.com/20230930", "localname": "EmployeeStockPurchasePlanMember", "presentation": [ "http://www.pdf.com/role/DisclosureNetIncomeLossPerShareAntiDilutiveSecuritiesDetails" ], "lang": { "en-us": { "role": { "documentation": "Enables employees to purchase their company's common stock, often at a discount from the market price.", "label": "Employee Stock Purchase Plans" } } }, "auth_ref": [] }, "pdfs_EmployeeStockPurchasePlanWeightedAveragePurchasePriceOfSharesPurchased": { "xbrltype": "perShareItemType", "nsuri": "http://www.pdf.com/20230930", "localname": "EmployeeStockPurchasePlanWeightedAveragePurchasePriceOfSharesPurchased", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansOtherDetails" ], "lang": { "en-us": { "role": { "documentation": "Employee stock purchase plan weighted average purchase price of shares purchased.", "label": "pdfs_EmployeeStockPurchasePlanWeightedAveragePurchasePriceOfSharesPurchased", "terseLabel": "ESPP, Weighted Average Purchase Price" } } }, "auth_ref": [] }, "us-gaap_IncomeTaxesPaid": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "IncomeTaxesPaid", "crdr": "credit", "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Cash paid during the period for taxes", "documentation": "The amount of cash paid during the current period to foreign, federal, state, and local authorities as taxes on income." } } }, "auth_ref": [ "r30", "r32" ] }, "us-gaap_CashAndCashEquivalentsAtCarryingValue": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "CashAndCashEquivalentsAtCarryingValue", "crdr": "debit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets": { "parentTag": "us-gaap_AssetsCurrent", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Cash and cash equivalents", "documentation": "Amount of currency on hand as well as demand deposits with banks or financial institutions. Includes other kinds of accounts that have the general characteristics of demand deposits. Also includes short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates. Excludes cash and cash equivalents within disposal group and discontinued operation." } } }, "auth_ref": [ "r31", "r144", "r580" ] }, "us-gaap_IntangibleAssetsNetExcludingGoodwill": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "IntangibleAssetsNetExcludingGoodwill", "crdr": "debit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets": { "parentTag": "us-gaap_Assets", "weight": 1.0, "order": 5.0 }, "http://www.pdf.com/role/DisclosureNote5BalanceSheetComponentsIntangibleAssetDetailsCalc3": { "parentTag": null, "weight": null, "order": null, "root": true } }, "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsIntangibleAssetsDetails", "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Intangible assets, net", "totalLabel": "Net Carrying Amount, Total", "documentation": "Sum of the carrying amounts of all intangible assets, excluding goodwill, as of the balance sheet date, net of accumulated amortization and impairment charges." } } }, "auth_ref": [ "r48", "r51" ] }, "us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "PaymentsRelatedToTaxWithholdingForShareBasedCompensation", "crdr": "credit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities", "weight": -1.0, "order": 3.0 } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation", "negatedLabel": "Payments for taxes related to net share settlement of equity awards", "documentation": "Amount of cash outflow to satisfy grantee's tax withholding obligation for award under share-based payment arrangement." } } }, "auth_ref": [ "r165" ] }, "pdfs_IntegratedYieldRampMember": { "xbrltype": "domainItemType", "nsuri": "http://www.pdf.com/20230930", "localname": "IntegratedYieldRampMember", "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveLoss" ], "lang": { "en-us": { "role": { "documentation": "Information pertaining to Integrated yield ramp.", "label": "Integrated Yield Ramp" } } }, "auth_ref": [] }, "pdfs_FinitelivedIntangibleAssetExpectedAmortizationAfterYearFour": { "xbrltype": "monetaryItemType", "nsuri": "http://www.pdf.com/20230930", "localname": "FinitelivedIntangibleAssetExpectedAmortizationAfterYearFour", "crdr": "debit", "calculation": { "http://www.pdf.com/role/DisclosureBalanceSheetComponentsAnnualAmortizationOfIdentifiableIntangibleAssetsDetails": { "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet", "weight": 1.0, "order": 6.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsAnnualAmortizationOfIdentifiableIntangibleAssetsDetails" ], "lang": { "en-us": { "role": { "documentation": "Amount of amortization for asset, excluding financial asset and goodwill, lacking physical substance with finite life expected to be recognized after fourth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).", "label": "pdfs_FinitelivedIntangibleAssetExpectedAmortizationAfterYearFour", "terseLabel": "2028 and thereafter" } } }, "auth_ref": [] }, "us-gaap_TrademarksAndTradeNamesMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "TrademarksAndTradeNamesMember", "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsIntangibleAssetsDetails" ], "lang": { "en-us": { "role": { "label": "Tradename and Trademarks", "documentation": "Rights acquired through registration of a trademark to gain or protect exclusive use of a business name, symbol or other device or style, or rights either acquired through registration of a business name to gain or protect exclusive use thereof." } } }, "auth_ref": [ "r68" ] }, "us-gaap_UnbilledReceivablesCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "UnbilledReceivablesCurrent", "crdr": "debit", "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_UnbilledReceivablesCurrent", "terseLabel": "Unbilled Receivables, Current", "documentation": "Amount received for services rendered and products shipped, but not yet billed, for non-contractual agreements due within one year or the normal operating cycle, if longer." } } }, "auth_ref": [] }, "pdfs_ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesReservedDecreaseRate": { "xbrltype": "sharesItemType", "nsuri": "http://www.pdf.com/20230930", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesReservedDecreaseRate", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansOtherDetails" ], "lang": { "en-us": { "role": { "documentation": "The reduction rate in the number of shares reserved under the option plan attributable to awards other than options or stock appreciation rights.", "label": "pdfs_ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesReservedDecreaseRate", "terseLabel": "Stock Incentive Plans, Decrease in Share Reservation Rate" } } }, "auth_ref": [] }, "us-gaap_OtherNoncurrentAssetsMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "OtherNoncurrentAssetsMember", "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsDetails", "http://www.pdf.com/role/DisclosureRevenueFromContractWithCustomersDetails" ], "lang": { "en-us": { "role": { "label": "Other Non-current Assets", "documentation": "Primary financial statement caption encompassing other noncurrent assets." } } }, "auth_ref": [] }, "us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "WeightedAverageNumberOfDilutedSharesOutstanding", "calculation": { "http://www.pdf.com/role/DisclosureNetIncomeLossPerShareCalculationOfEarningsPerShareDetails": { "parentTag": null, "weight": null, "order": null, "root": true } }, "presentation": [ "http://www.pdf.com/role/DisclosureNetIncomeLossPerShareCalculationOfEarningsPerShareDetails", "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveLoss" ], "lang": { "en-us": { "role": { "label": "us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding", "totalLabel": "Diluted weighted-average shares outstanding (in shares)", "verboseLabel": "Diluted", "documentation": "The average number of shares or units issued and outstanding that are used in calculating diluted EPS or earnings per unit (EPU), determined based on the timing of issuance of shares or units in the period." } } }, "auth_ref": [ "r188", "r193" ] }, "pdfs_OutsideOfThe20112001OrIDSPlansMember": { "xbrltype": "domainItemType", "nsuri": "http://www.pdf.com/20230930", "localname": "OutsideOfThe20112001OrIDSPlansMember", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansOtherDetails" ], "lang": { "en-us": { "role": { "documentation": "Information pertaining to the outside of the 2011, 2001 or IDS Plan.", "label": "Shares Outside of the 2001, 2011 or IDS Plans" } } }, "auth_ref": [] }, "us-gaap_CashAndCashEquivalentsFairValueDisclosure": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "CashAndCashEquivalentsFairValueDisclosure", "crdr": "debit", "calculation": { "http://www.pdf.com/role/DisclosureFairValueMeasurementsFairValueAssetsMeasuredOnRecurringBasisDetails": { "parentTag": "pdfs_CashCashEquivalentsShortTermInvestmentsFairValueDisclosure", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureFairValueMeasurementsFairValueAssetsMeasuredOnRecurringBasisDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_CashAndCashEquivalentsFairValueDisclosure", "verboseLabel": "Cash equivalents", "documentation": "Fair value portion of currency on hand as well as demand deposits with banks or financial institutions. Includes other kinds of accounts that have the general characteristics of demand deposits. Also includes short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates." } } }, "auth_ref": [] }, "us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "WeightedAverageNumberDilutedSharesOutstandingAdjustment", "calculation": { "http://www.pdf.com/role/DisclosureNetIncomeLossPerShareCalculationOfEarningsPerShareDetails": { "parentTag": "us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureNetIncomeLossPerShareCalculationOfEarningsPerShareDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment", "terseLabel": "Effect of dilutive stock options, unvested restricted stock units, and shares of common stock expected to be issued under Employee Purchase Plan", "documentation": "The sum of dilutive potential common shares or units used in the calculation of the diluted per-share or per-unit computation." } } }, "auth_ref": [ "r640" ] }, "pdfs_OperatingLeaseLiabilityAmountRelatedToExtensionOfLeaseTerm": { "xbrltype": "monetaryItemType", "nsuri": "http://www.pdf.com/20230930", "localname": "OperatingLeaseLiabilityAmountRelatedToExtensionOfLeaseTerm", "crdr": "credit", "presentation": [ "http://www.pdf.com/role/DisclosureLeasesOtherDetails" ], "lang": { "en-us": { "role": { "documentation": "Amount of the operating lease liability related to an option to extend the lease term that is reasonably certain to be exercised.", "label": "pdfs_OperatingLeaseLiabilityAmountRelatedToExtensionOfLeaseTerm", "terseLabel": "Operating Lease, Liability, Amount Related to Extension of Lease Term" } } }, "auth_ref": [] }, "us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansTables" ], "lang": { "en-us": { "role": { "label": "Schedule of Share-based Payment Arrangement, Expensed and Capitalized Amounts", "documentation": "Tabular disclosure of allocation of amount expensed and capitalized for award under share-based payment arrangement to statement of income or comprehensive income and statement of financial position. Includes, but is not limited to, corresponding line item in financial statement." } } }, "auth_ref": [ "r60" ] }, "us-gaap_OtherNoncurrentLiabilitiesMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "OtherNoncurrentLiabilitiesMember", "presentation": [ "http://www.pdf.com/role/DisclosureRevenueFromContractWithCustomersDetails" ], "lang": { "en-us": { "role": { "label": "Non-current Liabilities", "documentation": "Primary financial statement caption encompassing other noncurrent liabilities." } } }, "auth_ref": [] }, "us-gaap_FiniteLivedIntangibleAssetsNet": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "FiniteLivedIntangibleAssetsNet", "crdr": "debit", "calculation": { "http://www.pdf.com/role/DisclosureNote5BalanceSheetComponentsIntangibleAssetDetailsCalc3": { "parentTag": "us-gaap_IntangibleAssetsNetExcludingGoodwill", "weight": 1.0, "order": 1.0 }, "http://www.pdf.com/role/DisclosureBalanceSheetComponentsAnnualAmortizationOfIdentifiableIntangibleAssetsDetails": { "parentTag": null, "weight": null, "order": null, "root": true }, "http://www.pdf.com/role/DisclosureNote5BalanceSheetComponentsIntangibleAssetDetailsCalc2": { "parentTag": null, "weight": null, "order": null, "root": true } }, "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsAnnualAmortizationOfIdentifiableIntangibleAssetsDetails", "http://www.pdf.com/role/DisclosureBalanceSheetComponentsIntangibleAssetsDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_FiniteLivedIntangibleAssetsNet", "totalLabel": "Total future amortization expense", "documentation": "Amount after amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life." } } }, "auth_ref": [ "r103", "r431" ] }, "us-gaap_GoodwillImpairmentLoss": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "GoodwillImpairmentLoss", "crdr": "debit", "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsDetails" ], "lang": { "en-us": { "role": { "label": "Goodwill, Impairment Loss", "verboseLabel": "Impairment of goodwill", "documentation": "Amount of loss from the write-down of an asset representing the future economic benefits arising from other assets acquired in a business combination that are not individually identified and separately recognized." } } }, "auth_ref": [ "r6", "r241", "r242", "r243", "r585" ] }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue": { "xbrltype": "perShareItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNonvestedRestrictedStockUnitsActivityDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue", "verboseLabel": "RSUs Forfeited, Weighted Average Grant Date Fair Value", "documentation": "Weighted average fair value as of the grant date of equity-based award plans other than stock (unit) option plans that were not exercised or put into effect as a result of the occurrence of a terminating event." } } }, "auth_ref": [ "r333" ] }, "us-gaap_ScheduleOfRevenueFromExternalCustomersAttributedToForeignCountriesByGeographicAreaTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ScheduleOfRevenueFromExternalCustomersAttributedToForeignCountriesByGeographicAreaTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationTables" ], "lang": { "en-us": { "role": { "label": "Schedule of Revenue from External Customers Attributed to Foreign Countries by Geographic Area", "documentation": "Tabular disclosure of the names of foreign countries from which revenue is material and the amount of revenue from external customers attributed to those countries. An entity may also provide subtotals of geographic information about groups of countries." } } }, "auth_ref": [ "r46", "r91" ] }, "pdfs_PercentOfRevenue": { "xbrltype": "percentItemType", "nsuri": "http://www.pdf.com/20230930", "localname": "PercentOfRevenue", "presentation": [ "http://www.pdf.com/role/DisclosureRevenueFromContractWithCustomersDisaggregationOfRevenueDetails" ], "lang": { "en-us": { "role": { "documentation": "The percent of revenue.", "label": "Percent of revenues" } } }, "auth_ref": [] }, "us-gaap_WeightedAverageNumberOfSharesOutstandingBasic": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "WeightedAverageNumberOfSharesOutstandingBasic", "calculation": { "http://www.pdf.com/role/DisclosureNetIncomeLossPerShareCalculationOfEarningsPerShareDetails": { "parentTag": "us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureNetIncomeLossPerShareCalculationOfEarningsPerShareDetails", "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveLoss" ], "lang": { "en-us": { "role": { "label": "us-gaap_WeightedAverageNumberOfSharesOutstandingBasic", "terseLabel": "Basic weighted-average shares outstanding (in shares)", "verboseLabel": "Basic", "documentation": "Number of [basic] shares or units, after adjustment for contingently issuable shares or units and other shares or units not deemed outstanding, determined by relating the portion of time within a reporting period that common shares or units have been outstanding to the total time in that period." } } }, "auth_ref": [ "r187", "r193" ] }, "us-gaap_Goodwill": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "Goodwill", "crdr": "debit", "calculation": { "http://www.pdf.com/role/DisclosureBusinessCombinationFairValuesOfAssetsAcquiredAndLiabilitiesAssumedDetails": { "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssets", "weight": 1.0, "order": 3.0 }, "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets": { "parentTag": "us-gaap_Assets", "weight": 1.0, "order": 4.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsDetails", "http://www.pdf.com/role/DisclosureBusinessCombinationFairValuesOfAssetsAcquiredAndLiabilitiesAssumedDetails", "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Goodwill", "terseLabel": "Goodwill", "documentation": "Amount after accumulated impairment loss of an asset representing future economic benefits arising from other assets acquired in a business combination that are not individually identified and separately recognized." } } }, "auth_ref": [ "r147", "r240", "r445", "r585", "r604", "r646", "r647" ] }, "us-gaap_FiniteLivedIntangibleAssetsGross": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "FiniteLivedIntangibleAssetsGross", "crdr": "debit", "calculation": { "http://www.pdf.com/role/DisclosureNote5BalanceSheetComponentsIntangibleAssetDetailsCalc2": { "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsIntangibleAssetsDetails" ], "lang": { "en-us": { "role": { "label": "Gross Carrying Amount", "documentation": "Amount before amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life." } } }, "auth_ref": [ "r103", "r432" ] }, "us-gaap_MoneyMarketFundsMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "MoneyMarketFundsMember", "presentation": [ "http://www.pdf.com/role/DisclosureFairValueMeasurementsFairValueAssetsMeasuredOnRecurringBasisDetails" ], "lang": { "en-us": { "role": { "label": "Money Market Mutual Funds", "documentation": "Fund that invests in short-term money-market instruments, for example, but not limited to, commercial paper, banker's acceptances, repurchase agreements, government securities, certificates of deposit, and other highly liquid securities." } } }, "auth_ref": [ "r657" ] }, "us-gaap_CapitalExpendituresIncurredButNotYetPaid": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "CapitalExpendituresIncurredButNotYetPaid", "crdr": "credit", "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Property and equipment received and accrued in accounts payable and accrued and other liabilities", "documentation": "Future cash outflow to pay for purchases of fixed assets that have occurred." } } }, "auth_ref": [ "r33", "r34", "r35" ] }, "us-gaap_ScheduleOfEntityWideDisclosureOnGeographicAreasLongLivedAssetsInIndividualForeignCountriesByCountryTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ScheduleOfEntityWideDisclosureOnGeographicAreasLongLivedAssetsInIndividualForeignCountriesByCountryTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationTables" ], "lang": { "en-us": { "role": { "label": "Schedule of Disclosure on Geographic Areas, Long-Lived Assets in Individual Foreign Countries by Country", "documentation": "Tabular disclosure of the names of foreign countries in which material long-lived assets other than financial instruments, long-term customer relationships of a financial institution, mortgage and other servicing rights, deferred policy acquisition costs, and deferred tax assets are located, and amount of such long-lived assets located in that country or foreign geographic area." } } }, "auth_ref": [ "r47" ] }, "pdfs_The2020StockRepurchaseProgramMember": { "xbrltype": "domainItemType", "nsuri": "http://www.pdf.com/20230930", "localname": "The2020StockRepurchaseProgramMember", "presentation": [ "http://www.pdf.com/role/DisclosureStockholdersEquityDetails" ], "lang": { "en-us": { "role": { "documentation": "Information pertaining to the 2020 Stock Repurchase Program.", "label": "2020 Stock Repurchase Program" } } }, "auth_ref": [] }, "us-gaap_PropertyPlantAndEquipmentTypeDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "PropertyPlantAndEquipmentTypeDomain", "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsPropertyAndEquipmentDetails" ], "lang": { "en-us": { "role": { "label": "Long-Lived Tangible Asset [Domain]", "documentation": "Listing of long-lived, physical assets that are used in the normal conduct of business to produce goods and services and not intended for resale. Examples include land, buildings, machinery and equipment, and other types of furniture and equipment including, but not limited to, office equipment, furniture and fixtures, and computer equipment and software." } } }, "auth_ref": [ "r105" ] }, "us-gaap_NetIncomeLoss": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "NetIncomeLoss", "crdr": "credit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveLoss": { "parentTag": "us-gaap_ComprehensiveIncomeNetOfTax", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureNetIncomeLossPerShareCalculationOfEarningsPerShareDetails", "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveLoss" ], "lang": { "en-us": { "role": { "label": "us-gaap_NetIncomeLoss", "totalLabel": "Net income (loss)", "verboseLabel": "Net loss", "documentation": "The portion of profit or loss for the period, net of income taxes, which is attributable to the parent." } } }, "auth_ref": [ "r90", "r99", "r126", "r141", "r155", "r158", "r162", "r170", "r175", "r177", "r178", "r179", "r180", "r183", "r184", "r190", "r203", "r211", "r216", "r219", "r233", "r256", "r257", "r258", "r259", "r260", "r261", "r262", "r263", "r264", "r397", "r399", "r462", "r524", "r542", "r543", "r583", "r609", "r653" ] }, "pdfs_SoftwareLicenseAndRelatedServicesAgreementMember": { "xbrltype": "domainItemType", "nsuri": "http://www.pdf.com/20230930", "localname": "SoftwareLicenseAndRelatedServicesAgreementMember", "presentation": [ "http://www.pdf.com/role/DisclosureRevenueFromContractWithCustomersAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "documentation": "Information pertaining to software license and related services.", "label": "Software License and Related Services Agreement [Member]" } } }, "auth_ref": [] }, "pdfs_ShorttermAndVariableLeaseCost": { "xbrltype": "monetaryItemType", "nsuri": "http://www.pdf.com/20230930", "localname": "ShorttermAndVariableLeaseCost", "crdr": "debit", "calculation": { "http://www.pdf.com/role/DisclosureLeasesLeaseCostDetails": { "parentTag": "us-gaap_LeaseCost", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureLeasesLeaseCostDetails" ], "lang": { "en-us": { "role": { "documentation": "Amount of short-term lease cost, excluding expense for lease with term of one month or less and amount of variable lease cost, excluded from lease liability, recognized when obligation for payment is incurred for finance and operating leases.", "label": "Short-term lease and variable lease expense" } } }, "auth_ref": [] }, "pdfs_SharesPreviouslyIssuedUnderThe2001PlanMember": { "xbrltype": "domainItemType", "nsuri": "http://www.pdf.com/20230930", "localname": "SharesPreviouslyIssuedUnderThe2001PlanMember", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansOtherDetails" ], "lang": { "en-us": { "role": { "documentation": "Shares previously issued under the 2001 plan member.", "label": "Shares Previously Issued Under the 2001 Stock Plan" } } }, "auth_ref": [] }, "pdfs_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccruedInLongTermLiabilities": { "xbrltype": "monetaryItemType", "nsuri": "http://www.pdf.com/20230930", "localname": "UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccruedInLongTermLiabilities", "crdr": "credit", "presentation": [ "http://www.pdf.com/role/DisclosureIncomeTaxesDetails" ], "lang": { "en-us": { "role": { "documentation": "Amount accrued for interest on an underpayment of income taxes and penalties related to a tax position claimed or expected to be claimed in the tax return which have been recorded as part of the long-term liabilities in the balance sheet.", "label": "pdfs_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccruedInLongTermLiabilities", "terseLabel": "Unrecognized tax benefits including income tax penalties and interest accrued in long term liabilities" } } }, "auth_ref": [] }, "us-gaap_LeaseCostTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "LeaseCostTableTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureLeasesTables" ], "lang": { "en-us": { "role": { "label": "Schedule of Lease Expenses", "documentation": "Tabular disclosure of lessee's lease cost. Includes, but is not limited to, interest expense for finance lease, amortization of right-of-use asset for finance lease, operating lease cost, short-term lease cost, variable lease cost and sublease income." } } }, "auth_ref": [ "r687" ] }, "us-gaap_NoncompeteAgreementsMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "NoncompeteAgreementsMember", "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsIntangibleAssetsDetails" ], "lang": { "en-us": { "role": { "label": "Noncompete Agreements", "documentation": "Agreement in which one party agrees not to pursue a similar trade in competition with another party." } } }, "auth_ref": [ "r69" ] }, "us-gaap_PrepaidExpensesAndOtherCurrentAssetsMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "PrepaidExpensesAndOtherCurrentAssetsMember", "presentation": [ "http://www.pdf.com/role/DisclosureRevenueFromContractWithCustomersDetails" ], "lang": { "en-us": { "role": { "label": "Prepaid Expenses and Other Current Assets", "documentation": "Primary financial statement caption encompassing prepaid expenses and other current assets." } } }, "auth_ref": [] }, "us-gaap_CommonStockSharesAuthorized": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "CommonStockSharesAuthorized", "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheetsParentheticals" ], "lang": { "en-us": { "role": { "label": "Common stock, shares authorized (in shares)", "documentation": "The maximum number of common shares permitted to be issued by an entity's charter and bylaws." } } }, "auth_ref": [ "r81", "r503" ] }, "us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AllowanceForDoubtfulAccountsReceivableCurrent", "crdr": "credit", "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheetsParentheticals" ], "lang": { "en-us": { "role": { "label": "Accounts receivable, allowance for doubtful accounts", "terseLabel": "Accounts receivable, net of allowance for credit losses", "documentation": "Amount of allowance for credit loss on accounts receivable, classified as current." } } }, "auth_ref": [ "r153", "r230", "r236" ] }, "pdfs_TestEquipmentMember": { "xbrltype": "domainItemType", "nsuri": "http://www.pdf.com/20230930", "localname": "TestEquipmentMember", "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsPropertyAndEquipmentDetails" ], "lang": { "en-us": { "role": { "documentation": "Test equipment member.", "label": "Test Equipment" } } }, "auth_ref": [] }, "us-gaap_StatementTable": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "StatementTable", "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsDetails", "http://www.pdf.com/role/DisclosureBalanceSheetComponentsIntangibleAssetsDetails", "http://www.pdf.com/role/DisclosureBalanceSheetComponentsPropertyAndEquipmentDetails", "http://www.pdf.com/role/DisclosureCommitmentsAndContingenciesDetails", "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansAllocationOfRecognizedPeriodCostsDetails", "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNonvestedRestrictedStockUnitsActivityDetails", "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansOtherDetails", "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansStockOptionsActivityDetails", "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansValuationAssumptionsForEsppDetails", "http://www.pdf.com/role/DisclosureFairValueMeasurementsFairValueAssetsMeasuredOnRecurringBasisDetails", "http://www.pdf.com/role/DisclosureLeasesOtherDetails", "http://www.pdf.com/role/DisclosureNetIncomeLossPerShareAntiDilutiveSecuritiesDetails", "http://www.pdf.com/role/DisclosureRevenueFromContractWithCustomersAdditionalInformationDetails", "http://www.pdf.com/role/DisclosureRevenueFromContractWithCustomersDetails", "http://www.pdf.com/role/DisclosureRevenueFromContractWithCustomersDisaggregationOfRevenueDetails", "http://www.pdf.com/role/DisclosureStockholdersEquityDetails", "http://www.pdf.com/role/DisclosureStrategicPartnershipAgreementWithAdvantestAndRelatedPartyTransactionsDetails", "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveLoss", "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfStockholdersEquity" ], "lang": { "en-us": { "role": { "label": "Statement [Table]", "documentation": "Schedule reflecting a Statement of Income, Statement of Cash Flows, Statement of Financial Position, Statement of Shareholders' Equity and Other Comprehensive Income, or other statement as needed." } } }, "auth_ref": [ "r172", "r173", "r174", "r198", "r430", "r480", "r489", "r495", "r496", "r497", "r498", "r499", "r500", "r503", "r506", "r507", "r508", "r509", "r510", "r512", "r513", "r514", "r515", "r517", "r518", "r519", "r520", "r521", "r523", "r525", "r526", "r530", "r531", "r532", "r533", "r534", "r535", "r536", "r537", "r538", "r539", "r540", "r541", "r544", "r608" ] }, "pdfs_UnbilledReceivablesNotExpectedToBeBilledAndCollectedInNextTwelveMonths": { "xbrltype": "monetaryItemType", "nsuri": "http://www.pdf.com/20230930", "localname": "UnbilledReceivablesNotExpectedToBeBilledAndCollectedInNextTwelveMonths", "crdr": "debit", "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsDetails" ], "lang": { "en-us": { "role": { "documentation": "Amount of receivables under long-term contracts that have not been billed and were not billable that are expected to be collected after the next fiscal year. Excludes interim and annual periods when interim periods are reported on a rolling approach, from latest balance sheet date.", "label": "pdfs_UnbilledReceivablesNotExpectedToBeBilledAndCollectedInNextTwelveMonths", "terseLabel": "Unbilled Receivables, Not Expected to be Billed and Collected in Next Twelve Months" } } }, "auth_ref": [] }, "us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent", "crdr": "credit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveLoss": { "parentTag": "us-gaap_ComprehensiveIncomeNetOfTax", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveLoss" ], "lang": { "en-us": { "role": { "label": "us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent", "totalLabel": "Total other comprehensive (loss)", "documentation": "Amount after tax of other comprehensive income (loss) attributable to parent entity." } } }, "auth_ref": [ "r4", "r8", "r119", "r156", "r159" ] }, "pdfs_TwentyElevenStockIncentivePlanMember": { "xbrltype": "domainItemType", "nsuri": "http://www.pdf.com/20230930", "localname": "TwentyElevenStockIncentivePlanMember", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansOtherDetails" ], "lang": { "en-us": { "role": { "documentation": "Twenty eleven stock incentive plan member.", "label": "2011 Stock Incentive Plan" } } }, "auth_ref": [] }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansStockOptionsActivityDetails" ], "lang": { "en-us": { "role": { "label": "Vested and expected to vest (in shares)", "terseLabel": "Options Vested and Expected to Vest", "documentation": "Number of fully vested and expected to vest options outstanding that can be converted into shares under option plan. Includes, but is not limited to, unvested options for which requisite service period has not been rendered but that are expected to vest based on achievement of performance condition, if forfeitures are recognized when they occur." } } }, "auth_ref": [ "r336" ] }, "us-gaap_BalanceSheetLocationAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "BalanceSheetLocationAxis", "presentation": [ "http://www.pdf.com/role/DisclosureRevenueFromContractWithCustomersDetails" ], "lang": { "en-us": { "role": { "label": "Balance Sheet Location [Axis]", "documentation": "Information by location on balance sheet (statement of financial position)." } } }, "auth_ref": [] }, "us-gaap_DisaggregationOfRevenueTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "DisaggregationOfRevenueTableTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureRevenueFromContractWithCustomersTables" ], "lang": { "en-us": { "role": { "label": "Schedule of Disaggregation of Revenue", "documentation": "Tabular disclosure of disaggregation of revenue into categories depicting how nature, amount, timing, and uncertainty of revenue and cash flows are affected by economic factor." } } }, "auth_ref": [ "r656" ] }, "us-gaap_StockRepurchaseProgramAuthorizedAmount1": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "StockRepurchaseProgramAuthorizedAmount1", "crdr": "credit", "presentation": [ "http://www.pdf.com/role/DisclosureStockholdersEquityDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_StockRepurchaseProgramAuthorizedAmount1", "terseLabel": "Stock Repurchase Program, Authorized Amount", "documentation": "Amount of stock repurchase plan authorized." } } }, "auth_ref": [] }, "us-gaap_IncreaseDecreaseInContractWithCustomerLiability": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "IncreaseDecreaseInContractWithCustomerLiability", "crdr": "debit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0, "order": 16.0 } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "us-gaap_IncreaseDecreaseInContractWithCustomerLiability", "terseLabel": "Deferred revenues", "documentation": "Amount of increase (decrease) in obligation to transfer good or service to customer for which consideration has been received or is receivable." } } }, "auth_ref": [ "r429", "r632" ] }, "us-gaap_ProfitLoss": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ProfitLoss", "crdr": "credit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Net Income (Loss), Including Portion Attributable to Noncontrolling Interest", "verboseLabel": "Net income (loss)", "documentation": "The consolidated profit or loss for the period, net of income taxes, including the portion attributable to the noncontrolling interest." } } }, "auth_ref": [ "r141", "r155", "r158", "r166", "r170", "r175", "r183", "r184", "r203", "r211", "r216", "r219", "r233", "r256", "r257", "r258", "r259", "r260", "r261", "r262", "r263", "r264", "r381", "r384", "r385", "r397", "r399", "r449", "r461", "r487", "r524", "r542", "r543", "r583", "r601", "r602", "r610", "r631", "r653" ] }, "us-gaap_TradeAndOtherAccountsReceivablePolicy": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "TradeAndOtherAccountsReceivablePolicy", "presentation": [ "http://www.pdf.com/role/DisclosureSignificantAccountingPoliciesPolicies" ], "lang": { "en-us": { "role": { "label": "Accounts Receivable, Policy", "documentation": "Disclosure of accounting policy for accounts receivable." } } }, "auth_ref": [ "r127", "r128", "r129", "r228", "r229", "r231" ] }, "us-gaap_EarningsPerShareTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "EarningsPerShareTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureNetIncomeLossPerShare" ], "lang": { "en-us": { "role": { "label": "Earnings Per Share [Text Block]", "terseLabel": "NET INCOME (LOSS) PER SHARE", "documentation": "The entire disclosure for earnings per share." } } }, "auth_ref": [ "r186", "r194", "r195", "r196" ] }, "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssets": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssets", "crdr": "debit", "calculation": { "http://www.pdf.com/role/DisclosureBusinessCombinationFairValuesOfAssetsAcquiredAndLiabilitiesAssumedDetails": { "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureBusinessCombinationFairValuesOfAssetsAcquiredAndLiabilitiesAssumedDetails" ], "lang": { "en-us": { "role": { "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Assets", "totalLabel": "Total assets acquired", "documentation": "Amount of assets acquired at the acquisition date." } } }, "auth_ref": [ "r67" ] }, "srt_NameOfMajorCustomerDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/srt/2023", "localname": "NameOfMajorCustomerDomain", "presentation": [ "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationRevenuePercentageByMajorCustomersDetails", "http://www.pdf.com/role/DisclosureRevenueFromContractWithCustomersAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Customer [Domain]" } } }, "auth_ref": [ "r225", "r591", "r656", "r701", "r702" ] }, "us-gaap_ComprehensiveIncomeNetOfTax": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ComprehensiveIncomeNetOfTax", "crdr": "credit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveLoss": { "parentTag": null, "weight": null, "order": null, "root": true } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveLoss", "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfStockholdersEquity" ], "lang": { "en-us": { "role": { "label": "Comprehensive loss", "terseLabel": "Comprehensive income (loss)", "totalLabel": "Comprehensive income (loss)", "documentation": "Amount after tax of increase (decrease) in equity from transactions and other events and circumstances from net income and other comprehensive income, attributable to parent entity. Excludes changes in equity resulting from investments by owners and distributions to owners." } } }, "auth_ref": [ "r26", "r157", "r159", "r163", "r447", "r463" ] }, "dei_EntityInteractiveDataCurrent": { "xbrltype": "yesNoItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "EntityInteractiveDataCurrent", "presentation": [ "http://www.pdf.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Entity Interactive Data Current", "documentation": "Boolean flag that is true when the registrant has submitted electronically every Interactive Data File required to be submitted pursuant to Rule 405 of Regulation S-T during the preceding 12 months (or for such shorter period that the registrant was required to submit such files)." } } }, "auth_ref": [ "r617" ] }, "us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsTables" ], "lang": { "en-us": { "role": { "label": "Schedule of Finite-Lived Intangible Assets, Future Amortization Expense", "documentation": "Tabular disclosure of the amount of amortization expense expected to be recorded in succeeding fiscal years for finite-lived intangible assets." } } }, "auth_ref": [ "r52" ] }, "us-gaap_TransferredOverTimeMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "TransferredOverTimeMember", "presentation": [ "http://www.pdf.com/role/DisclosureRevenueFromContractWithCustomersDisaggregationOfRevenueDetails" ], "lang": { "en-us": { "role": { "label": "Transferred over Time [Member]", "documentation": "Contract with customer in which good or service is transferred over time." } } }, "auth_ref": [ "r592" ] }, "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents", "crdr": "debit", "presentation": [ "http://www.pdf.com/role/DisclosureBusinessCombinationFairValuesOfAssetsAcquiredAndLiabilitiesAssumedDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents", "verboseLabel": "Cash assumed", "documentation": "Amount of currency on hand as well as demand deposits with banks or financial institutions, acquired at the acquisition date. Includes other kinds of accounts that have the general characteristics of demand deposits. Also includes short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates." } } }, "auth_ref": [ "r67" ] }, "us-gaap_ShortTermInvestments": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ShortTermInvestments", "crdr": "debit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets": { "parentTag": "us-gaap_AssetsCurrent", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Short-term investments", "documentation": "Amount of investments including trading securities, available-for-sale securities, held-to-maturity securities, and short-term investments classified as other and current." } } }, "auth_ref": [ "r123", "r124", "r627" ] }, "us-gaap_WeightedAverageNumberOfSharesOutstandingBasicAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "WeightedAverageNumberOfSharesOutstandingBasicAbstract", "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveLoss" ], "lang": { "en-us": { "role": { "label": "Weighted Average Number of Shares Outstanding, Basic [Abstract]", "terseLabel": "Weighted average common shares used to calculate net income (loss) per share:" } } }, "auth_ref": [] }, "us-gaap_ConcentrationRiskByTypeAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ConcentrationRiskByTypeAxis", "presentation": [ "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationRevenuePercentageByMajorCustomersDetails", "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationRevenuesByGeographicAreaDetails", "http://www.pdf.com/role/DisclosureRevenueFromContractWithCustomersDetails" ], "lang": { "en-us": { "role": { "label": "Concentration Risk Type [Axis]", "documentation": "Information by type of concentration risk, for example, but not limited to, asset, liability, net assets, geographic, customer, employees, supplier, lender." } } }, "auth_ref": [ "r38", "r41", "r75", "r76", "r225", "r564", "r621" ] }, "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedLiabilities": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedLiabilities", "crdr": "credit", "calculation": { "http://www.pdf.com/role/DisclosureBusinessCombinationFairValuesOfAssetsAcquiredAndLiabilitiesAssumedDetails": { "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet", "weight": -1.0, "order": 2.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureBusinessCombinationFairValuesOfAssetsAcquiredAndLiabilitiesAssumedDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedLiabilities", "totalLabel": "Total liabilities assumed", "documentation": "Amount of liabilities assumed at the acquisition date." } } }, "auth_ref": [ "r67" ] }, "us-gaap_ComputerEquipmentMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ComputerEquipmentMember", "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsPropertyAndEquipmentDetails" ], "lang": { "en-us": { "role": { "label": "Computer Equipment", "documentation": "Long lived, depreciable assets that are used in the creation, maintenance and utilization of information systems." } } }, "auth_ref": [] }, "us-gaap_ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansTables" ], "lang": { "en-us": { "role": { "label": "Schedule of Share-based Payment Arrangement, Restricted Stock Unit Activity", "documentation": "Tabular disclosure of the number and weighted-average grant date fair value for restricted stock units that were outstanding at the beginning and end of the year, and the number of restricted stock units that were granted, vested, or forfeited during the year." } } }, "auth_ref": [ "r59" ] }, "us-gaap_AccruedIncomeTaxesNoncurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AccruedIncomeTaxesNoncurrent", "crdr": "credit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets": { "parentTag": "us-gaap_Liabilities", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Long-term income taxes payable", "documentation": "Carrying amount as of the balance sheet date of the unpaid sum of the known and estimated amounts payable to satisfy all domestic and foreign income tax obligations due beyond one year or the operating cycle, whichever is longer. Alternate captions include income taxes payable, noncurrent." } } }, "auth_ref": [ "r79", "r121" ] }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansOtherDetails", "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansStockOptionsActivityDetails" ], "lang": { "en-us": { "role": { "label": "Options Granted", "terseLabel": "Stock Incentive Plans, Stock Options and Awards Granted", "documentation": "Gross number of share options (or share units) granted during the period." } } }, "auth_ref": [ "r324" ] }, "us-gaap_ShareRepurchaseProgramAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ShareRepurchaseProgramAxis", "presentation": [ "http://www.pdf.com/role/DisclosureStockholdersEquityDetails" ], "lang": { "en-us": { "role": { "label": "Share Repurchase Program [Axis]", "documentation": "Information by share repurchase program." } } }, "auth_ref": [] }, "us-gaap_OtherReceivables": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "OtherReceivables", "crdr": "debit", "presentation": [ "http://www.pdf.com/role/DisclosureStrategicPartnershipAgreementWithAdvantestAndRelatedPartyTransactionsDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_RelatedPartyTransactionDueFromToRelatedParty", "terseLabel": "Related party receivables", "documentation": "Amount due from parties in nontrade transactions, classified as other." } } }, "auth_ref": [ "r151", "r511" ] }, "us-gaap_ResearchAndDevelopmentExpenseMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ResearchAndDevelopmentExpenseMember", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansAllocationOfRecognizedPeriodCostsDetails" ], "lang": { "en-us": { "role": { "label": "Research and Development", "documentation": "Primary financial statement caption in which the reported facts about research and development expense have been included." } } }, "auth_ref": [] }, "us-gaap_RevenueRemainingPerformanceObligation": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "RevenueRemainingPerformanceObligation", "crdr": "credit", "presentation": [ "http://www.pdf.com/role/DisclosureRevenueFromContractWithCustomersDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_RevenueRemainingPerformanceObligation", "terseLabel": "Revenue, Remaining Performance Obligation, Amount", "documentation": "Amount of transaction price allocated to performance obligation that has not been recognized as revenue." } } }, "auth_ref": [ "r135" ] }, "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable", "crdr": "credit", "calculation": { "http://www.pdf.com/role/DisclosureBusinessCombinationFairValuesOfAssetsAcquiredAndLiabilitiesAssumedDetails": { "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedLiabilities", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureBusinessCombinationFairValuesOfAssetsAcquiredAndLiabilitiesAssumedDetails" ], "lang": { "en-us": { "role": { "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Current Liabilities, Accounts Payable", "terseLabel": "Accounts payable and accrued expenses", "documentation": "Amount of liabilities incurred for goods and services received that are used in an entity's business and related party payables, assumed at the acquisition date." } } }, "auth_ref": [ "r67" ] }, "us-gaap_TimingOfTransferOfGoodOrServiceAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "TimingOfTransferOfGoodOrServiceAxis", "presentation": [ "http://www.pdf.com/role/DisclosureRevenueFromContractWithCustomersDisaggregationOfRevenueDetails" ], "lang": { "en-us": { "role": { "label": "Timing of Transfer of Good or Service [Axis]", "documentation": "Information by timing of transfer of good or service to customer." } } }, "auth_ref": [ "r592", "r656" ] }, "us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansTables" ], "lang": { "en-us": { "role": { "label": "Schedule of Share-based Payment Arrangement, Options Activity - Additional Information", "documentation": "Tabular disclosure for stock option plans. Includes, but is not limited to, outstanding awards at beginning and end of year, grants, exercises, forfeitures, and weighted-average grant date fair value." } } }, "auth_ref": [ "r12", "r13", "r59" ] }, "us-gaap_TimingOfTransferOfGoodOrServiceDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "TimingOfTransferOfGoodOrServiceDomain", "presentation": [ "http://www.pdf.com/role/DisclosureRevenueFromContractWithCustomersDisaggregationOfRevenueDetails" ], "lang": { "en-us": { "role": { "label": "Timing of Transfer of Good or Service [Domain]", "documentation": "Timing of transfer of good or service to customer. Includes, but is not limited to, at point in time or over time." } } }, "auth_ref": [ "r592", "r656" ] }, "us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansTables" ], "lang": { "en-us": { "role": { "label": "Schedule of Share-based Payment Awards, Stock Options, Valuation Assumptions", "documentation": "Tabular disclosure of the significant assumptions used during the year to estimate the fair value of stock options, including, but not limited to: (a) expected term of share options and similar instruments, (b) expected volatility of the entity's shares, (c) expected dividends, (d) risk-free rate(s), and (e) discount for post-vesting restrictions." } } }, "auth_ref": [ "r115" ] }, "us-gaap_NoncashInvestingAndFinancingItemsAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "NoncashInvestingAndFinancingItemsAbstract", "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Supplemental disclosure of noncash information:" } } }, "auth_ref": [] }, "us-gaap_PaymentsToAcquireIntangibleAssets": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "PaymentsToAcquireIntangibleAssets", "crdr": "credit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities", "weight": -1.0, "order": 4.0 } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Payments to Acquire Intangible Assets", "negatedLabel": "Purchase of intangible assets", "documentation": "The cash outflow to acquire asset without physical form usually arising from contractual or other legal rights, excluding goodwill." } } }, "auth_ref": [ "r96" ] }, "us-gaap_ProceedsFromMaturitiesPrepaymentsAndCallsOfShorttermInvestments": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ProceedsFromMaturitiesPrepaymentsAndCallsOfShorttermInvestments", "crdr": "debit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Proceeds from maturities of short-term investments", "terseLabel": "Proceeds from maturities and sales of short-term investments", "documentation": "The cash inflow from maturities, prepayments, calls and collections of all investments, including securities and other assets, having ready marketability and intended by management to be liquidated, if necessary, within the current operating cycle. Includes cash flows from securities classified as trading securities that were acquired for reasons other than sale in the short-term." } } }, "auth_ref": [ "r27", "r95" ] }, "dei_DocumentType": { "xbrltype": "submissionTypeItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "DocumentType", "presentation": [ "http://www.pdf.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Document Type", "documentation": "The type of document being provided (such as 10-K, 10-Q, 485BPOS, etc). The document type is limited to the same value as the supporting SEC submission type, or the word 'Other'." } } }, "auth_ref": [] }, "us-gaap_PlanNameAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "PlanNameAxis", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansOtherDetails", "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansStockOptionsActivityDetails", "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansValuationAssumptionsForEsppDetails" ], "lang": { "en-us": { "role": { "label": "Plan Name [Axis]", "documentation": "Information by plan name for share-based payment arrangement." } } }, "auth_ref": [ "r658", "r659", "r660", "r661", "r662", "r663", "r664", "r665", "r666", "r667", "r668", "r669", "r670", "r671", "r672", "r673", "r674", "r675", "r676", "r677", "r678", "r679", "r680", "r681", "r682", "r683" ] }, "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsOther": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsOther", "crdr": "debit", "calculation": { "http://www.pdf.com/role/DisclosureBusinessCombinationFairValuesOfAssetsAcquiredAndLiabilitiesAssumedDetails": { "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssets", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureBusinessCombinationFairValuesOfAssetsAcquiredAndLiabilitiesAssumedDetails" ], "lang": { "en-us": { "role": { "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Current Assets, Other", "terseLabel": "Fair value of tangible assets (including cash of $265)", "documentation": "Amount of other assets expected to be realized or consumed before one year or the normal operating cycle, if longer, acquired at the acquisition date." } } }, "auth_ref": [ "r67" ] }, "dei_DocumentQuarterlyReport": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "DocumentQuarterlyReport", "presentation": [ "http://www.pdf.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Document Quarterly Report", "documentation": "Boolean flag that is true only for a form used as an quarterly report." } } }, "auth_ref": [ "r615" ] }, "us-gaap_ShareRepurchaseProgramDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ShareRepurchaseProgramDomain", "presentation": [ "http://www.pdf.com/role/DisclosureStockholdersEquityDetails" ], "lang": { "en-us": { "role": { "label": "Share Repurchase Program [Domain]", "documentation": "Name of the share repurchase program." } } }, "auth_ref": [] }, "us-gaap_SalesRevenueNetMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "SalesRevenueNetMember", "presentation": [ "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationRevenuePercentageByMajorCustomersDetails", "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationRevenuesByGeographicAreaDetails", "http://www.pdf.com/role/DisclosureRevenueFromContractWithCustomersDetails" ], "lang": { "en-us": { "role": { "label": "Revenue Benchmark", "documentation": "Revenue from sale of product and rendering of service and other sources of income, when it serves as benchmark in concentration of risk calculation." } } }, "auth_ref": [ "r225", "r620" ] }, "us-gaap_PlanNameDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "PlanNameDomain", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansOtherDetails", "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansStockOptionsActivityDetails", "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansValuationAssumptionsForEsppDetails" ], "lang": { "en-us": { "role": { "label": "Plan Name [Domain]", "documentation": "Plan name for share-based payment arrangement." } } }, "auth_ref": [ "r658", "r659", "r660", "r661", "r662", "r663", "r664", "r665", "r666", "r667", "r668", "r669", "r670", "r671", "r672", "r673", "r674", "r675", "r676", "r677", "r678", "r679", "r680", "r681", "r682", "r683" ] }, "us-gaap_AccountingPoliciesAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AccountingPoliciesAbstract", "lang": { "en-us": { "role": { "label": "BASIS OF PRESENTATION AND SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES" } } }, "auth_ref": [] }, "us-gaap_InvestmentIncomeInterest": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "InvestmentIncomeInterest", "crdr": "credit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveLoss": { "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest", "weight": 1.0, "order": 6.0 } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveLoss" ], "lang": { "en-us": { "role": { "label": "Investment Income, Interest", "negatedLabel": "Interest and other expense (income), net", "documentation": "Amount before accretion (amortization) of purchase discount (premium) of interest income on nonoperating securities." } } }, "auth_ref": [ "r94", "r206" ] }, "dei_DocumentTransitionReport": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "DocumentTransitionReport", "presentation": [ "http://www.pdf.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Document Transition Report", "documentation": "Boolean flag that is true only for a form used as a transition report." } } }, "auth_ref": [ "r616" ] }, "us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AccumulatedOtherComprehensiveIncomeLossNetOfTax", "crdr": "credit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets": { "parentTag": "us-gaap_StockholdersEquity", "weight": 1.0, "order": 5.0 } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Accumulated other comprehensive loss", "documentation": "Amount, after tax, of accumulated increase (decrease) in equity from transaction and other event and circumstance from nonowner source." } } }, "auth_ref": [ "r24", "r25", "r87", "r152", "r455", "r477", "r478" ] }, "us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "LesseeOperatingLeaseLiabilityUndiscountedExcessAmount", "crdr": "credit", "calculation": { "http://www.pdf.com/role/DisclosureNote7LeasesMaturityOfOperatingLeaseLiabilitiesDetailsCalc2": { "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureLeasesMaturityOfOperatingLeaseLiabilitiesDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount", "negatedLabel": "Less: Interest (2)", "documentation": "Amount of lessee's undiscounted obligation for lease payments in excess of discounted obligation for lease payments for operating lease." } } }, "auth_ref": [ "r416" ] }, "us-gaap_StockRepurchaseProgramPeriodInForce1": { "xbrltype": "durationItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "StockRepurchaseProgramPeriodInForce1", "presentation": [ "http://www.pdf.com/role/DisclosureStockholdersEquityDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_StockRepurchaseProgramPeriodInForce1", "terseLabel": "Stock Repurchase Program, Period in Force (Year)", "documentation": "Period which shares may be purchased under a stock repurchase plan authorized by an entity's Board of Directors, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days." } } }, "auth_ref": [] }, "us-gaap_AwardTypeAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AwardTypeAxis", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNonvestedRestrictedStockUnitsActivityDetails", "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansOtherDetails" ], "lang": { "en-us": { "role": { "label": "Award Type [Axis]", "documentation": "Information by type of award under share-based payment arrangement." } } }, "auth_ref": [ "r316", "r317", "r318", "r320", "r321", "r322", "r323", "r324", "r325", "r326", "r327", "r328", "r329", "r330", "r331", "r332", "r333", "r334", "r335", "r336", "r337", "r340", "r341", "r342", "r343", "r344" ] }, "us-gaap_SharesOutstanding": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "SharesOutstanding", "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfStockholdersEquity" ], "lang": { "en-us": { "role": { "label": "us-gaap_SharesOutstanding", "periodEndLabel": "Balances (in shares)", "periodStartLabel": "Balances (in shares)", "documentation": "Number of shares issued which are neither cancelled nor held in the treasury." } } }, "auth_ref": [] }, "pdfs_ThresholdPaymentPeriodOfMajorityOfPurchaseObligation": { "xbrltype": "durationItemType", "nsuri": "http://www.pdf.com/20230930", "localname": "ThresholdPaymentPeriodOfMajorityOfPurchaseObligation", "presentation": [ "http://www.pdf.com/role/DisclosureCommitmentsAndContingenciesDetails" ], "lang": { "en-us": { "role": { "documentation": "Threshold payment period for majority of purchase obligation.", "label": "Threshold Payment Period Of Majority Of Purchase Obligation", "terseLabel": "Period over which the majority of purchase obligations become due" } } }, "auth_ref": [] }, "pdfs_PrepaymentsToAcquirePropertyPlantAndEquipment": { "xbrltype": "monetaryItemType", "nsuri": "http://www.pdf.com/20230930", "localname": "PrepaymentsToAcquirePropertyPlantAndEquipment", "crdr": "credit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities", "weight": -1.0, "order": 3.0 } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "documentation": "The cash outflow associated with the prepayment for acquisition of long-lived, physical assets that are used in the normal conduct of business to produce goods and services and not intended for resale; includes cash outflows to pay for construction of self-constructed assets.", "label": "Prepayments To Acquire Property Plant And Equipment", "negatedLabel": "Prepayment for the purchase of property and equipment" } } }, "auth_ref": [] }, "us-gaap_AdjustmentsToAdditionalPaidInCapitalShareBasedCompensationStockOptionsRequisiteServicePeriodRecognition": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AdjustmentsToAdditionalPaidInCapitalShareBasedCompensationStockOptionsRequisiteServicePeriodRecognition", "crdr": "credit", "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfStockholdersEquity" ], "lang": { "en-us": { "role": { "label": "Stock-based compensation expense", "documentation": "Amount of increase to additional paid-in capital (APIC) for recognition of cost for option under share-based payment arrangement." } } }, "auth_ref": [] }, "us-gaap_CommonStockValue": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "CommonStockValue", "crdr": "credit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets": { "parentTag": "us-gaap_StockholdersEquity", "weight": 1.0, "order": 3.0 } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Common stock, $0.00015 par value, 70,000 shares authorized; shares issued 48,613 and 47,414, respectively; shares outstanding 37,431 and 37,411, respectively", "terseLabel": "Common stock, $0.00015 par value, 70,000 shares authorized; shares issued 49,694 and 48,613, respectively; shares outstanding 38,245 and 37,431, respectively", "documentation": "Aggregate par or stated value of issued nonredeemable common stock (or common stock redeemable solely at the option of the issuer). This item includes treasury stock repurchased by the entity. Note: elements for number of nonredeemable common shares, par value and other disclosure concepts are in another section within stockholders' equity." } } }, "auth_ref": [ "r81", "r454", "r604" ] }, "us-gaap_OperatingLeaseLiability": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "OperatingLeaseLiability", "crdr": "credit", "calculation": { "http://www.pdf.com/role/DisclosureNote7LeasesMaturityOfOperatingLeaseLiabilitiesDetailsCalc2": { "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureLeasesMaturityOfOperatingLeaseLiabilitiesDetails" ], "lang": { "en-us": { "role": { "label": "Present value of future minimum lease payments under operating lease liabilities (3)", "documentation": "Present value of lessee's discounted obligation for lease payments from operating lease." } } }, "auth_ref": [ "r408" ] }, "us-gaap_CommonStockSharesOutstanding": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "CommonStockSharesOutstanding", "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheetsParentheticals" ], "lang": { "en-us": { "role": { "label": "Common stock, shares outstanding (in shares)", "documentation": "Number of shares of common stock outstanding. Common stock represent the ownership interest in a corporation." } } }, "auth_ref": [ "r10", "r81", "r503", "r522", "r704", "r705" ] }, "pdfs_StockRepurchaseProgram2022Member": { "xbrltype": "domainItemType", "nsuri": "http://www.pdf.com/20230930", "localname": "StockRepurchaseProgram2022Member", "presentation": [ "http://www.pdf.com/role/DisclosureStockholdersEquityDetails" ], "lang": { "en-us": { "role": { "documentation": "Represent information pertaining to the 2022 Stock repurchase program.", "label": "2022 Stock Repurchase Program" } } }, "auth_ref": [] }, "us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "FiniteLivedIntangibleAssetsAccumulatedAmortization", "crdr": "credit", "calculation": { "http://www.pdf.com/role/DisclosureNote5BalanceSheetComponentsIntangibleAssetDetailsCalc2": { "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet", "weight": -1.0, "order": 1.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsIntangibleAssetsDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization", "negatedLabel": "Accumulated Amortization", "documentation": "Accumulated amount of amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life." } } }, "auth_ref": [ "r148", "r246" ] }, "us-gaap_SupplementalBalanceSheetDisclosuresTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "SupplementalBalanceSheetDisclosuresTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponents" ], "lang": { "en-us": { "role": { "label": "Supplemental Balance Sheet Disclosures [Text Block]", "terseLabel": "BALANCE SHEET COMPONENTS", "documentation": "The entire disclosure for supplemental balance sheet disclosures, including descriptions and amounts for assets, liabilities, and equity." } } }, "auth_ref": [ "r625" ] }, "pdfs_LeaseTerminationGain": { "xbrltype": "monetaryItemType", "nsuri": "http://www.pdf.com/20230930", "localname": "LeaseTerminationGain", "crdr": "credit", "presentation": [ "http://www.pdf.com/role/DisclosureLeasesOtherDetails" ], "lang": { "en-us": { "role": { "documentation": "Gain realized from the termination of lease contract.", "label": "Lease termination gain" } } }, "auth_ref": [] }, "us-gaap_CommonStockParOrStatedValuePerShare": { "xbrltype": "perShareItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "CommonStockParOrStatedValuePerShare", "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheetsParentheticals" ], "lang": { "en-us": { "role": { "label": "Common stock, par value (in dollars per share)", "documentation": "Face amount or stated value per share of common stock." } } }, "auth_ref": [ "r81" ] }, "pdfs_PracticalExpedientPolicyTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://www.pdf.com/20230930", "localname": "PracticalExpedientPolicyTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureSignificantAccountingPoliciesPolicies" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of accounting policy for practical expedient usage when revenue generating arrangements contain significant financing components.", "label": "Practical Expedient [Policy Text Block]", "terseLabel": "Practical Expedient, Policy" } } }, "auth_ref": [] }, "us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment", "crdr": "credit", "calculation": { "http://www.pdf.com/role/DisclosureBalanceSheetComponentsPropertyAndEquipmentDetails": { "parentTag": "us-gaap_PropertyPlantAndEquipmentNet", "weight": -1.0, "order": 2.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsPropertyAndEquipmentDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment", "negatedLabel": "Less: accumulated depreciation and amortization", "documentation": "Amount of accumulated depreciation, depletion and amortization for physical assets used in the normal conduct of business to produce goods and services." } } }, "auth_ref": [ "r55", "r146", "r458" ] }, "us-gaap_OperatingLeaseLiabilityCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "OperatingLeaseLiabilityCurrent", "crdr": "credit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets": { "parentTag": "us-gaap_LiabilitiesCurrent", "weight": 1.0, "order": 4.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureLeasesOtherDetails", "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Operating lease liabilities - current portion", "terseLabel": "Operating Lease, Liability, Current", "documentation": "Present value of lessee's discounted obligation for lease payments from operating lease, classified as current." } } }, "auth_ref": [ "r408" ] }, "pdfs_InProgressDfiSystemAssetsMember": { "xbrltype": "domainItemType", "nsuri": "http://www.pdf.com/20230930", "localname": "InProgressDfiSystemAssetsMember", "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsPropertyAndEquipmentDetails" ], "lang": { "en-us": { "role": { "documentation": "DFI system assets under construction. Includes recently completed structures or modifications to structures that have not been placed into service.", "label": "In-Progress DFI System Assets" } } }, "auth_ref": [] }, "pdfs_InProgressCvSystemAndOtherAssetsMember": { "xbrltype": "domainItemType", "nsuri": "http://www.pdf.com/20230930", "localname": "InProgressCvSystemAndOtherAssetsMember", "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsPropertyAndEquipmentDetails" ], "lang": { "en-us": { "role": { "documentation": "CV system and other assets under construction. Includes recently completed structures or modifications to structures that have not been placed into service.", "label": "In-Progress CV System and Other Assets" } } }, "auth_ref": [] }, "us-gaap_LeasesAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "LeasesAbstract", "lang": { "en-us": { "role": { "label": "LEASES" } } }, "auth_ref": [] }, "us-gaap_BalanceSheetLocationDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "BalanceSheetLocationDomain", "presentation": [ "http://www.pdf.com/role/DisclosureRevenueFromContractWithCustomersDetails" ], "lang": { "en-us": { "role": { "label": "Balance Sheet Location [Domain]", "documentation": "Location in the balance sheet (statement of financial position)." } } }, "auth_ref": [ "r71", "r72" ] }, "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest", "crdr": "credit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveLoss": { "parentTag": "us-gaap_NetIncomeLoss", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveLoss" ], "lang": { "en-us": { "role": { "label": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest", "totalLabel": "Income (loss) before income tax expense (benefit)", "documentation": "Amount of income (loss) from continuing operations, including income (loss) from equity method investments, before deduction of income tax expense (benefit), and income (loss) attributable to noncontrolling interest." } } }, "auth_ref": [ "r0", "r89", "r125", "r203", "r211", "r216", "r219", "r449", "r460", "r583" ] }, "us-gaap_AccruedLiabilitiesCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AccruedLiabilitiesCurrent", "crdr": "credit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets": { "parentTag": "us-gaap_LiabilitiesCurrent", "weight": 1.0, "order": 3.0 } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Accrued and other current liabilities", "documentation": "Carrying value as of the balance sheet date of obligations incurred and payable, pertaining to costs that are statutory in nature, are incurred on contractual obligations, or accumulate over time and for which invoices have not yet been received or will not be rendered. Examples include taxes, interest, rent and utilities. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer)." } } }, "auth_ref": [ "r17" ] }, "us-gaap_ProceedsFromStockPlans": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ProceedsFromStockPlans", "crdr": "debit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Proceeds from employee stock purchase plan", "documentation": "The cash inflow associated with the amount received from the stock plan during the period." } } }, "auth_ref": [ "r3" ] }, "us-gaap_CostOfSalesMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "CostOfSalesMember", "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsDetails", "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansAllocationOfRecognizedPeriodCostsDetails" ], "lang": { "en-us": { "role": { "label": "Costs of Revenues", "documentation": "Primary financial statement caption encompassing cost of sales." } } }, "auth_ref": [] }, "us-gaap_ResearchAndDevelopmentExpense": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ResearchAndDevelopmentExpense", "crdr": "debit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveLoss": { "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest", "weight": -1.0, "order": 3.0 } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveLoss" ], "lang": { "en-us": { "role": { "label": "Research and development", "documentation": "The aggregate costs incurred (1) in a planned search or critical investigation aimed at discovery of new knowledge with the hope that such knowledge will be useful in developing a new product or service, a new process or technique, or in bringing about a significant improvement to an existing product or process; or (2) to translate research findings or other knowledge into a plan or design for a new product or process or for a significant improvement to an existing product or process whether intended for sale or the entity's use, during the reporting period charged to research and development projects, including the costs of developing computer software up to the point in time of achieving technological feasibility, and costs allocated in accounting for a business combination to in-process projects deemed to have no alternative future use." } } }, "auth_ref": [ "r78", "r355", "r699" ] }, "pdfs_PeriodOverWhichDeferredRevenuesAreRecognized": { "xbrltype": "durationItemType", "nsuri": "http://www.pdf.com/20230930", "localname": "PeriodOverWhichDeferredRevenuesAreRecognized", "presentation": [ "http://www.pdf.com/role/DisclosureRevenueFromContractWithCustomersDetails" ], "lang": { "en-us": { "role": { "documentation": "Period in which deferred revenue is recognized as revenue, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days.", "label": "Short-term deferred revenue" } } }, "auth_ref": [] }, "pdfs_StockIncentivePlansCommonSharesReservedForFutureIssuance": { "xbrltype": "sharesItemType", "nsuri": "http://www.pdf.com/20230930", "localname": "StockIncentivePlansCommonSharesReservedForFutureIssuance", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansOtherDetails" ], "lang": { "en-us": { "role": { "documentation": "Aggregate number of common shares reserved for future issuance.", "label": "Stock Incentive Plans, Common Shares Reserved for Future Issuance" } } }, "auth_ref": [] }, "us-gaap_SoftwareAndSoftwareDevelopmentCostsMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "SoftwareAndSoftwareDevelopmentCostsMember", "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsPropertyAndEquipmentDetails" ], "lang": { "en-us": { "role": { "label": "Software", "documentation": "Purchased software applications and internally developed software for sale, licensing or long-term internal use." } } }, "auth_ref": [] }, "us-gaap_RevenuesAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "RevenuesAbstract", "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveLoss" ], "lang": { "en-us": { "role": { "label": "Revenues:" } } }, "auth_ref": [] }, "pdfs_EmployeeStockPurchasePlanTerm": { "xbrltype": "durationItemType", "nsuri": "http://www.pdf.com/20230930", "localname": "EmployeeStockPurchasePlanTerm", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansOtherDetails" ], "lang": { "en-us": { "role": { "documentation": "Duration of the Company's Employee Stock Purchase Plan, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.", "label": "Employee Stock Purchase Plan Term", "terseLabel": "ESPP, Purchase Plan Term" } } }, "auth_ref": [] }, "us-gaap_TreasuryStockValue": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "TreasuryStockValue", "crdr": "debit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets": { "parentTag": "us-gaap_StockholdersEquity", "weight": -1.0, "order": 2.0 } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "us-gaap_TreasuryStockValue", "negatedLabel": "Treasury stock at cost, 11,449 and 11,182 shares, respectively", "documentation": "The amount allocated to treasury stock. Treasury stock is common and preferred shares of an entity that were issued, repurchased by the entity, and are held in its treasury." } } }, "auth_ref": [ "r22", "r56", "r57" ] }, "us-gaap_PrepaidExpenseAndOtherAssetsCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "PrepaidExpenseAndOtherAssetsCurrent", "crdr": "debit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets": { "parentTag": "us-gaap_AssetsCurrent", "weight": 1.0, "order": 4.0 } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Prepaid expenses and other current assets", "documentation": "Amount of asset related to consideration paid in advance for costs that provide economic benefits in future periods, and amount of other assets that are expected to be realized or consumed within one year or the normal operating cycle, if longer." } } }, "auth_ref": [ "r628" ] }, "pdfs_AmortizationPeriodOfIntangibleAssets": { "xbrltype": "durationItemType", "nsuri": "http://www.pdf.com/20230930", "localname": "AmortizationPeriodOfIntangibleAssets", "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsIntangibleAssetsDetails" ], "lang": { "en-us": { "role": { "documentation": "Amortization period of finite-lived intangible assets acquired either individually or as part of a group of assets, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.", "label": "Amortization Period of Intangible Assets", "terseLabel": "Amortization Period (Year)" } } }, "auth_ref": [] }, "pdfs_PeriodOverWhichUnbilledReceivablesAreBilledAndCollected": { "xbrltype": "durationItemType", "nsuri": "http://www.pdf.com/20230930", "localname": "PeriodOverWhichUnbilledReceivablesAreBilledAndCollected", "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsDetails" ], "lang": { "en-us": { "role": { "documentation": "Period in unbilled amounts included in accounts receivable are expected to be billed and collected, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days.", "label": "Period over which current unbilled receivables are billed and collected" } } }, "auth_ref": [] }, "us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "PaymentsToAcquireBusinessesNetOfCashAcquired", "crdr": "credit", "presentation": [ "http://www.pdf.com/role/DisclosureBusinessCombinationOtherDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired", "terseLabel": "Consideration to acquire business, net of cash acquired", "documentation": "The cash outflow associated with the acquisition of a business, net of the cash acquired from the purchase." } } }, "auth_ref": [ "r28" ] }, "pdfs_DeferredContractRevenues": { "xbrltype": "monetaryItemType", "nsuri": "http://www.pdf.com/20230930", "localname": "DeferredContractRevenues", "crdr": "credit", "presentation": [ "http://www.pdf.com/role/DisclosureStrategicPartnershipAgreementWithAdvantestAndRelatedPartyTransactionsDetails" ], "lang": { "en-us": { "role": { "documentation": "Amount of deferred income and obligation to transfer product and service to customer for which consideration has been received or is receivable, classified as noncurrent.", "label": "Deferred Contract Revenues", "terseLabel": "Deferred revenue" } } }, "auth_ref": [] }, "us-gaap_OperatingLeaseLiabilityNoncurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "OperatingLeaseLiabilityNoncurrent", "crdr": "credit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets": { "parentTag": "us-gaap_Liabilities", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Non-current operating lease liabilities", "terseLabel": "Non-current portion of operating lease liabilities", "documentation": "Present value of lessee's discounted obligation for lease payments from operating lease, classified as noncurrent." } } }, "auth_ref": [ "r408" ] }, "us-gaap_SellingGeneralAndAdministrativeExpense": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "SellingGeneralAndAdministrativeExpense", "crdr": "debit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveLoss": { "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest", "weight": -1.0, "order": 4.0 } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveLoss" ], "lang": { "en-us": { "role": { "label": "Selling, general and administrative", "documentation": "The aggregate total costs related to selling a firm's product and services, as well as all other general and administrative expenses. Direct selling expenses (for example, credit, warranty, and advertising) are expenses that can be directly linked to the sale of specific products. Indirect selling expenses are expenses that cannot be directly linked to the sale of specific products, for example telephone expenses, Internet, and postal charges. General and administrative expenses include salaries of non-sales personnel, rent, utilities, communication, etc." } } }, "auth_ref": [ "r93" ] }, "us-gaap_CommitmentsAndContingencies": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "CommitmentsAndContingencies", "crdr": "credit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets": { "parentTag": "us-gaap_LiabilitiesAndStockholdersEquity", "weight": 1.0, "order": 3.0 } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Commitments and contingencies (Note 13)", "terseLabel": "Commitments and contingencies (Note 12)", "documentation": "Represents the caption on the face of the balance sheet to indicate that the entity has entered into (1) purchase or supply arrangements that will require expending a portion of its resources to meet the terms thereof, and (2) is exposed to potential losses or, less frequently, gains, arising from (a) possible claims against a company's resources due to future performance under contract terms, and (b) possible losses or likely gains from uncertainties that will ultimately be resolved when one or more future events that are deemed likely to occur do occur or fail to occur." } } }, "auth_ref": [ "r20", "r77", "r452", "r502" ] }, "pdfs_The2010PurchasePlanMember": { "xbrltype": "domainItemType", "nsuri": "http://www.pdf.com/20230930", "localname": "The2010PurchasePlanMember", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansOtherDetails" ], "lang": { "en-us": { "role": { "documentation": "Information pertaining to the 2010 purchase plan.", "label": "2010 Stock Purchase Plan" } } }, "auth_ref": [] }, "us-gaap_IncomeStatementLocationAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "IncomeStatementLocationAxis", "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsDetails", "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansAllocationOfRecognizedPeriodCostsDetails", "http://www.pdf.com/role/DisclosureLeasesOtherDetails" ], "lang": { "en-us": { "role": { "label": "Income Statement Location [Axis]", "documentation": "Information by location in the income statement." } } }, "auth_ref": [ "r248", "r249", "r529" ] }, "dei_EntityRegistrantName": { "xbrltype": "normalizedStringItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "EntityRegistrantName", "presentation": [ "http://www.pdf.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Entity Registrant Name", "documentation": "The exact name of the entity filing the report as specified in its charter, which is required by forms filed with the SEC." } } }, "auth_ref": [ "r613" ] }, "pdfs_RevenueRecognitionSignificantJudgementsPolicyTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://www.pdf.com/20230930", "localname": "RevenueRecognitionSignificantJudgementsPolicyTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureSignificantAccountingPoliciesPolicies" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of accounting policy where significant judgements are used to recognize revenues in accordance with ASC 606. Includes revenue from contract with customer and from other sources.", "label": "Revenue Recognition, Significant Judgements [Policy Text Block]", "terseLabel": "Significant Judgements, Policy" } } }, "auth_ref": [] }, "us-gaap_IncomeStatementLocationDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "IncomeStatementLocationDomain", "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsDetails", "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansAllocationOfRecognizedPeriodCostsDetails", "http://www.pdf.com/role/DisclosureLeasesOtherDetails" ], "lang": { "en-us": { "role": { "label": "Income Statement Location [Domain]", "documentation": "Location in the income statement." } } }, "auth_ref": [ "r249", "r529" ] }, "pdfs_BalanceSheetDetailsAbstractAbstract": { "xbrltype": "stringItemType", "nsuri": "http://www.pdf.com/20230930", "localname": "BalanceSheetDetailsAbstractAbstract", "lang": { "en-us": { "role": { "documentation": "NA", "label": "BALANCE SHEET COMPONENTS" } } }, "auth_ref": [] }, "pdfs_NoncashFixedAssetsTransferredToSalesTypeLease": { "xbrltype": "monetaryItemType", "nsuri": "http://www.pdf.com/20230930", "localname": "NoncashFixedAssetsTransferredToSalesTypeLease", "crdr": "credit", "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "documentation": "Represents the noncash fixed assets transferred to sales-type lease.", "label": "Noncash Fixed Assets Transferred To Sales Type Lease", "terseLabel": "Property and equipment transferred to sales-type lease" } } }, "auth_ref": [] }, "us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "NetCashProvidedByUsedInOperatingActivitiesAbstract", "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Cash flows from operating activities:" } } }, "auth_ref": [] }, "pdfs_CostsAndExpensesMember": { "xbrltype": "domainItemType", "nsuri": "http://www.pdf.com/20230930", "localname": "CostsAndExpensesMember", "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsDetails" ], "lang": { "en-us": { "role": { "documentation": "Information pertaining to costs and expenses\n.", "label": "Costs and Expenses" } } }, "auth_ref": [] }, "us-gaap_StockIssuedDuringPeriodValueEmployeeStockPurchasePlan": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "StockIssuedDuringPeriodValueEmployeeStockPurchasePlan", "crdr": "credit", "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfStockholdersEquity" ], "lang": { "en-us": { "role": { "label": "Issuance of common stock in connection with employee stock purchase plan", "documentation": "Aggregate change in value for stock issued during the period as a result of employee stock purchase plan." } } }, "auth_ref": [ "r10", "r80", "r81", "r108" ] }, "us-gaap_TreasuryStockCommonMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "TreasuryStockCommonMember", "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfStockholdersEquity" ], "lang": { "en-us": { "role": { "label": "Treasury Stock", "documentation": "Previously issued common shares repurchased by the issuing entity and held in treasury." } } }, "auth_ref": [ "r56" ] }, "pdfs_ShareBasedCompensationArrangementByShareBasedPaymentAwardPurchasePeriod": { "xbrltype": "durationItemType", "nsuri": "http://www.pdf.com/20230930", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardPurchasePeriod", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansOtherDetails" ], "lang": { "en-us": { "role": { "documentation": "Length of purchase periods within each offering period under employee stock purchase plans, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.", "label": "ESPP, Share Purchase Period Duration" } } }, "auth_ref": [] }, "us-gaap_TreasuryStockCommonShares": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "TreasuryStockCommonShares", "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheetsParentheticals" ], "lang": { "en-us": { "role": { "label": "Treasury stock, shares (in shares)", "documentation": "Number of previously issued common shares repurchased by the issuing entity and held in treasury." } } }, "auth_ref": [ "r56" ] }, "pdfs_OperatingLeaseRightOfUseAssetAdjustmentForEarlyTermination": { "xbrltype": "monetaryItemType", "nsuri": "http://www.pdf.com/20230930", "localname": "OperatingLeaseRightOfUseAssetAdjustmentForEarlyTermination", "crdr": "credit", "presentation": [ "http://www.pdf.com/role/DisclosureLeasesOtherDetails" ], "lang": { "en-us": { "role": { "documentation": "Represents operating lease right of use asset adjustment for early lease termination.", "label": "Operating Lease Right Of Use Asset Adjustment For Early Termination", "terseLabel": "Operating lease right of use assets decrease from early lease termination" } } }, "auth_ref": [] }, "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths", "crdr": "debit", "calculation": { "http://www.pdf.com/role/DisclosureBalanceSheetComponentsAnnualAmortizationOfIdentifiableIntangibleAssetsDetails": { "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet", "weight": 1.0, "order": 3.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsAnnualAmortizationOfIdentifiableIntangibleAssetsDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths", "terseLabel": "2024", "documentation": "Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in next fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)." } } }, "auth_ref": [ "r104" ] }, "pdfs_OperatingLeaseLiabilityAdjustmentForEarlyLeaseTermination": { "xbrltype": "monetaryItemType", "nsuri": "http://www.pdf.com/20230930", "localname": "OperatingLeaseLiabilityAdjustmentForEarlyLeaseTermination", "crdr": "debit", "presentation": [ "http://www.pdf.com/role/DisclosureLeasesOtherDetails" ], "lang": { "en-us": { "role": { "documentation": "Represents operating lease liability adjustment for early lease termination.", "label": "Operating Lease Liability Adjustment For Early Lease Termination", "terseLabel": "Operating lease liability decrease from early lease termination" } } }, "auth_ref": [] }, "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo", "crdr": "debit", "calculation": { "http://www.pdf.com/role/DisclosureBalanceSheetComponentsAnnualAmortizationOfIdentifiableIntangibleAssetsDetails": { "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsAnnualAmortizationOfIdentifiableIntangibleAssetsDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo", "terseLabel": "2025", "documentation": "Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in second fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)." } } }, "auth_ref": [ "r104" ] }, "us-gaap_PropertyPlantAndEquipmentByTypeAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "PropertyPlantAndEquipmentByTypeAxis", "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsPropertyAndEquipmentDetails" ], "lang": { "en-us": { "role": { "label": "Long-Lived Tangible Asset [Axis]", "documentation": "Information by type of long-lived, physical assets used to produce goods and services and not intended for resale." } } }, "auth_ref": [ "r7" ] }, "us-gaap_RelatedPartyTransactionsByRelatedPartyAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "RelatedPartyTransactionsByRelatedPartyAxis", "presentation": [ "http://www.pdf.com/role/DisclosureStrategicPartnershipAgreementWithAdvantestAndRelatedPartyTransactionsDetails" ], "lang": { "en-us": { "role": { "label": "Related Party [Axis]", "documentation": "Information by type of related party. Related parties include, but not limited to, affiliates; other entities for which investments are accounted for by the equity method by the entity; trusts for benefit of employees; and principal owners, management, and members of immediate families. It also may include other parties with which the entity may control or can significantly influence the management or operating policies of the other to an extent that one of the transacting parties might be prevented from fully pursuing its own separate interests." } } }, "auth_ref": [ "r312", "r421", "r422", "r433", "r434", "r435", "r436", "r437", "r438", "r439", "r440", "r441", "r442", "r443", "r444", "r496", "r497", "r498", "r499", "r500", "r521", "r523", "r551", "r689" ] }, "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseYearThree", "crdr": "debit", "calculation": { "http://www.pdf.com/role/DisclosureBalanceSheetComponentsAnnualAmortizationOfIdentifiableIntangibleAssetsDetails": { "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet", "weight": 1.0, "order": 5.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsAnnualAmortizationOfIdentifiableIntangibleAssetsDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree", "terseLabel": "2026", "documentation": "Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in third fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)." } } }, "auth_ref": [ "r104" ] }, "pdfs_The2021PurchasePlanMember": { "xbrltype": "domainItemType", "nsuri": "http://www.pdf.com/20230930", "localname": "The2021PurchasePlanMember", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansOtherDetails", "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansValuationAssumptionsForEsppDetails" ], "lang": { "en-us": { "role": { "documentation": "Information pertaining to the 2021 purchase plan.", "label": "2021 Stock Purchase Plan" } } }, "auth_ref": [] }, "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseYearFour", "crdr": "debit", "calculation": { "http://www.pdf.com/role/DisclosureBalanceSheetComponentsAnnualAmortizationOfIdentifiableIntangibleAssetsDetails": { "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet", "weight": 1.0, "order": 4.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsAnnualAmortizationOfIdentifiableIntangibleAssetsDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour", "terseLabel": "2027", "documentation": "Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in fourth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)." } } }, "auth_ref": [ "r104" ] }, "us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "StockIssuedDuringPeriodValueStockOptionsExercised", "crdr": "credit", "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfStockholdersEquity" ], "lang": { "en-us": { "role": { "label": "Issuance of common stock in connection with exercise of options", "documentation": "Value of stock issued as a result of the exercise of stock options." } } }, "auth_ref": [ "r10", "r23", "r108" ] }, "us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent": { "xbrltype": "percentItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "OperatingLeaseWeightedAverageDiscountRatePercent", "presentation": [ "http://www.pdf.com/role/DisclosureLeasesLeaseCostDetails" ], "lang": { "en-us": { "role": { "label": "Weighted average discount rate for operating lease liabilities", "documentation": "Weighted average discount rate for operating lease calculated at point in time." } } }, "auth_ref": [ "r415", "r603" ] }, "dei_EntityCentralIndexKey": { "xbrltype": "centralIndexKeyItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "EntityCentralIndexKey", "presentation": [ "http://www.pdf.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Entity Central Index Key", "documentation": "A unique 10-digit SEC-issued value to identify entities that have filed disclosures with the SEC. It is commonly abbreviated as CIK." } } }, "auth_ref": [ "r613" ] }, "us-gaap_LeaseCost": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "LeaseCost", "crdr": "debit", "calculation": { "http://www.pdf.com/role/DisclosureLeasesLeaseCostDetails": { "parentTag": null, "weight": null, "order": null, "root": true } }, "presentation": [ "http://www.pdf.com/role/DisclosureLeasesLeaseCostDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_LeaseCost", "totalLabel": "Total lease expense", "documentation": "Amount of lease cost recognized by lessee for lease contract." } } }, "auth_ref": [ "r410", "r603" ] }, "us-gaap_ContractWithCustomerPerformanceObligationSatisfiedInPreviousPeriod": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ContractWithCustomerPerformanceObligationSatisfiedInPreviousPeriod", "crdr": "credit", "presentation": [ "http://www.pdf.com/role/DisclosureRevenueFromContractWithCustomersDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_ContractWithCustomerPerformanceObligationSatisfiedInPreviousPeriod", "terseLabel": "Contract with Customer, Performance Obligation Satisfied in Previous Period", "documentation": "Amount of revenue recognized from performance obligation satisfied or partially satisfied in previous reporting periods. Includes, but is not limited to, change in transaction price." } } }, "auth_ref": [ "r289" ] }, "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear", "crdr": "debit", "calculation": { "http://www.pdf.com/role/DisclosureBalanceSheetComponentsAnnualAmortizationOfIdentifiableIntangibleAssetsDetails": { "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsAnnualAmortizationOfIdentifiableIntangibleAssetsDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear", "terseLabel": "2023 (remaining six months)", "documentation": "Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in remainder of current fiscal year." } } }, "auth_ref": [] }, "us-gaap_NetCashProvidedByUsedInFinancingActivities": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "NetCashProvidedByUsedInFinancingActivities", "crdr": "debit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows": { "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect", "weight": 1.0, "order": 3.0 } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "us-gaap_NetCashProvidedByUsedInFinancingActivities", "totalLabel": "Net cash used in financing activities", "documentation": "Amount of cash inflow (outflow) from financing activities, including discontinued operations. Financing activity cash flows include obtaining resources from owners and providing them with a return on, and a return of, their investment; borrowing money and repaying amounts borrowed, or settling the obligation; and obtaining and paying for other resources obtained from creditors on long-term credit." } } }, "auth_ref": [ "r167" ] }, "dei_EntityFileNumber": { "xbrltype": "fileNumberItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "EntityFileNumber", "presentation": [ "http://www.pdf.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Entity File Number", "documentation": "Commission file number. The field allows up to 17 characters. The prefix may contain 1-3 digits, the sequence number may contain 1-8 digits, the optional suffix may contain 1-4 characters, and the fields are separated with a hyphen." } } }, "auth_ref": [] }, "us-gaap_FairValueByAssetClassAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "FairValueByAssetClassAxis", "presentation": [ "http://www.pdf.com/role/DisclosureFairValueMeasurementsFairValueAssetsMeasuredOnRecurringBasisDetails" ], "lang": { "en-us": { "role": { "label": "Asset Class [Axis]", "documentation": "Information by class of asset." } } }, "auth_ref": [ "r73", "r74" ] }, "pdfs_DeferredRevenueAndBillingsInExcessOfRecognizedRevenueMember": { "xbrltype": "domainItemType", "nsuri": "http://www.pdf.com/20230930", "localname": "DeferredRevenueAndBillingsInExcessOfRecognizedRevenueMember", "presentation": [ "http://www.pdf.com/role/DisclosureRevenueFromContractWithCustomersDetails" ], "lang": { "en-us": { "role": { "documentation": "Primary financial statement caption encompassing both Deferred Revenue and Billings in Excess of Recognized Revenue accounts.", "label": "Deferred Revenue and Billings in Excess of Recognized Revenue" } } }, "auth_ref": [] }, "us-gaap_OperatingLeaseCost": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "OperatingLeaseCost", "crdr": "debit", "calculation": { "http://www.pdf.com/role/DisclosureLeasesLeaseCostDetails": { "parentTag": "us-gaap_LeaseCost", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureLeasesLeaseCostDetails" ], "lang": { "en-us": { "role": { "label": "Operating lease expense", "documentation": "Amount of single lease cost, calculated by allocation of remaining cost of lease over remaining lease term. Includes, but is not limited to, single lease cost, after impairment of right-of-use asset, calculated by amortization of remaining right-of-use asset and accretion of lease liability." } } }, "auth_ref": [ "r411", "r603" ] }, "us-gaap_EarningsPerShareDiluted": { "xbrltype": "perShareItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "EarningsPerShareDiluted", "presentation": [ "http://www.pdf.com/role/DisclosureNetIncomeLossPerShareCalculationOfEarningsPerShareDetails", "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveLoss" ], "lang": { "en-us": { "role": { "label": "Diluted (in dollars per share)", "terseLabel": "Diluted", "documentation": "The amount of net income (loss) for the period available to each share of common stock or common unit outstanding during the reporting period and to each share or unit that would have been outstanding assuming the issuance of common shares or units for all dilutive potential common shares or units outstanding during the reporting period." } } }, "auth_ref": [ "r164", "r177", "r178", "r179", "r180", "r181", "r189", "r191", "r192", "r193", "r197", "r396", "r397", "r448", "r464", "r581" ] }, "us-gaap_FairValueByFairValueHierarchyLevelAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "FairValueByFairValueHierarchyLevelAxis", "presentation": [ "http://www.pdf.com/role/DisclosureFairValueMeasurementsFairValueAssetsMeasuredOnRecurringBasisDetails" ], "lang": { "en-us": { "role": { "label": "Fair Value Hierarchy and NAV [Axis]", "documentation": "Information by level within fair value hierarchy and fair value measured at net asset value per share as practical expedient." } } }, "auth_ref": [ "r265", "r306", "r307", "r308", "r309", "r310", "r311", "r398", "r424", "r425", "r426", "r586", "r587", "r593", "r594", "r595" ] }, "us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "NetCashProvidedByUsedInFinancingActivitiesAbstract", "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Cash flows from financing activities:" } } }, "auth_ref": [] }, "pdfs_AdvantestAnalyticsRevenue": { "xbrltype": "monetaryItemType", "nsuri": "http://www.pdf.com/20230930", "localname": "AdvantestAnalyticsRevenue", "crdr": "credit", "presentation": [ "http://www.pdf.com/role/DisclosureStrategicPartnershipAgreementWithAdvantestAndRelatedPartyTransactionsDetails" ], "lang": { "en-us": { "role": { "documentation": "Amount of revenue recognized from the strategic partnership with Advantest.", "label": "Advantest analytics revenue" } } }, "auth_ref": [] }, "us-gaap_SegmentReportingDisclosureTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "SegmentReportingDisclosureTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformation" ], "lang": { "en-us": { "role": { "label": "Segment Reporting Disclosure [Text Block]", "terseLabel": "CUSTOMER AND GEOGRAPHIC INFORMATION", "documentation": "The entire disclosure for reporting segments including data and tables. Reportable segments include those that meet any of the following quantitative thresholds a) it's reported revenue, including sales to external customers and intersegment sales or transfers is 10 percent or more of the combined revenue, internal and external, of all operating segments b) the absolute amount of its reported profit or loss is 10 percent or more of the greater, in absolute amount of 1) the combined reported profit of all operating segments that did not report a loss or 2) the combined reported loss of all operating segments that did report a loss c) its assets are 10 percent or more of the combined assets of all operating segments." } } }, "auth_ref": [ "r199", "r200", "r201", "r202", "r203", "r209", "r213", "r217", "r218", "r219", "r220", "r221", "r222", "r225" ] }, "us-gaap_NetCashProvidedByUsedInInvestingActivities": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "NetCashProvidedByUsedInInvestingActivities", "crdr": "debit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows": { "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "us-gaap_NetCashProvidedByUsedInInvestingActivities", "totalLabel": "Net cash provided by (used in) investing activities", "documentation": "Amount of cash inflow (outflow) from investing activities, including discontinued operations. Investing activity cash flows include making and collecting loans and acquiring and disposing of debt or equity instruments and property, plant, and equipment and other productive assets." } } }, "auth_ref": [ "r167" ] }, "pdfs_NumberOfSixMonthPurchasePeriodsInEachOfferingPeriod": { "xbrltype": "integerItemType", "nsuri": "http://www.pdf.com/20230930", "localname": "NumberOfSixMonthPurchasePeriodsInEachOfferingPeriod", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansOtherDetails" ], "lang": { "en-us": { "role": { "documentation": "Number of six month purchase periods in each offering period under the employee stock plan.", "label": "Number of six month purchase periods in each offering period", "terseLabel": "ESPP, Share Purchase Periods Within Each Offering Period" } } }, "auth_ref": [] }, "us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "NetCashProvidedByUsedInInvestingActivitiesAbstract", "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Cash flows from investing activities:" } } }, "auth_ref": [] }, "us-gaap_NetCashProvidedByUsedInOperatingActivities": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "NetCashProvidedByUsedInOperatingActivities", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows": { "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "totalLabel": "Net cash provided by (used in) operating activities", "documentation": "Amount of cash inflow (outflow) from operating activities, including discontinued operations. Operating activity cash flows include transactions, adjustments, and changes in value not defined as investing or financing activities." } } }, "auth_ref": [ "r97", "r98", "r99" ] }, "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardPurchasePriceOfCommonStockPercent": { "xbrltype": "percentItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardPurchasePriceOfCommonStockPercent", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansOtherDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardPurchasePriceOfCommonStockPercent", "terseLabel": "ESPP, Share Purchase Price (Percentage of Fair Market Value)", "documentation": "Purchase price of common stock expressed as a percentage of its fair value." } } }, "auth_ref": [] }, "us-gaap_LesseeOperatingLeasesTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "LesseeOperatingLeasesTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureLeases" ], "lang": { "en-us": { "role": { "label": "Lessee, Operating Leases [Text Block]", "terseLabel": "LEASES", "documentation": "The entire disclosure for operating leases of lessee. Includes, but is not limited to, description of operating lease and maturity analysis of operating lease liability." } } }, "auth_ref": [ "r406" ] }, "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive", "crdr": "credit", "calculation": { "http://www.pdf.com/role/DisclosureLeasesMaturityOfOperatingLeaseLiabilitiesDetails": { "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue", "weight": 1.0, "order": 6.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureLeasesMaturityOfOperatingLeaseLiabilitiesDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive", "terseLabel": "2028 and thereafter", "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease due after fifth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)." } } }, "auth_ref": [ "r416" ] }, "pdfs_RepurchasesOfCommonStockCost": { "xbrltype": "monetaryItemType", "nsuri": "http://www.pdf.com/20230930", "localname": "RepurchasesOfCommonStockCost", "crdr": "credit", "presentation": [ "http://www.pdf.com/role/DisclosureStockholdersEquityDetails" ], "lang": { "en-us": { "role": { "documentation": "The cash value of reacquired common shares during the period.", "label": "Repurchases of common stock, cost" } } }, "auth_ref": [] }, "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "LesseeOperatingLeaseLiabilityPaymentsDue", "crdr": "credit", "calculation": { "http://www.pdf.com/role/DisclosureLeasesMaturityOfOperatingLeaseLiabilitiesDetails": { "parentTag": null, "weight": null, "order": null, "root": true }, "http://www.pdf.com/role/DisclosureNote7LeasesMaturityOfOperatingLeaseLiabilitiesDetailsCalc2": { "parentTag": null, "weight": null, "order": null, "root": true } }, "presentation": [ "http://www.pdf.com/role/DisclosureCommitmentsAndContingenciesDetails", "http://www.pdf.com/role/DisclosureLeasesMaturityOfOperatingLeaseLiabilitiesDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue", "terseLabel": "Future Lease payments", "totalLabel": "Total future minimum lease payments", "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease." } } }, "auth_ref": [ "r416" ] }, "pdfs_CustomersAccountingFor10PercentOfGrossRevenuesAndReceivablesMember": { "xbrltype": "domainItemType", "nsuri": "http://www.pdf.com/20230930", "localname": "CustomersAccountingFor10PercentOfGrossRevenuesAndReceivablesMember", "presentation": [ "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationRevenuePercentageByMajorCustomersDetails" ], "lang": { "en-us": { "role": { "documentation": "Information pertaining to customers accounting for 10% or more of gross revenues and receivable balances.", "label": "Benchmark Percentage of Gross Revenues and Receivables" } } }, "auth_ref": [] }, "pdfs_EmployeeStockPlansMember": { "xbrltype": "domainItemType", "nsuri": "http://www.pdf.com/20230930", "localname": "EmployeeStockPlansMember", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansOtherDetails", "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansStockOptionsActivityDetails", "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansValuationAssumptionsForEsppDetails" ], "lang": { "en-us": { "role": { "documentation": "Information pertaining to the Company's various stock purchase and stock incentive plans.", "label": "Employee Stock Plans" } } }, "auth_ref": [] }, "dei_EntityCommonStockSharesOutstanding": { "xbrltype": "sharesItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "EntityCommonStockSharesOutstanding", "presentation": [ "http://www.pdf.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Entity Common Stock, Shares Outstanding", "documentation": "Indicate number of shares or other units outstanding of each of registrant's classes of capital or common stock or other ownership interests, if and as stated on cover of related periodic report. Where multiple classes or units exist define each class/interest by adding class of stock items such as Common Class A [Member], Common Class B [Member] or Partnership Interest [Member] onto the Instrument [Domain] of the Entity Listings, Instrument." } } }, "auth_ref": [] }, "us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis", "presentation": [ "http://www.pdf.com/role/DisclosureNetIncomeLossPerShareAntiDilutiveSecuritiesDetails" ], "lang": { "en-us": { "role": { "label": "Antidilutive Securities [Axis]", "documentation": "Information by type of antidilutive security." } } }, "auth_ref": [ "r36" ] }, "us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "RevenuesFromExternalCustomersAndLongLivedAssetsLineItems", "presentation": [ "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationLongLivedAssetsByGeographicAreaDetails", "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationRevenuePercentageByMajorCustomersDetails", "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationRevenuesByGeographicAreaDetails" ], "lang": { "en-us": { "role": { "label": "Revenues from External Customers and Long-Lived Assets [Line Items]", "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table." } } }, "auth_ref": [] }, "us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount", "presentation": [ "http://www.pdf.com/role/DisclosureNetIncomeLossPerShareAntiDilutiveSecuritiesDetails" ], "lang": { "en-us": { "role": { "label": "Anti-dilutive securities (in shares)", "documentation": "Securities (including those issuable pursuant to contingent stock agreements) that could potentially dilute basic earnings per share (EPS) or earnings per unit (EPU) in the future that were not included in the computation of diluted EPS or EPU because to do so would increase EPS or EPU amounts or decrease loss per share or unit amounts for the period presented." } } }, "auth_ref": [ "r194" ] }, "us-gaap_PreferredStockSharesIssued": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "PreferredStockSharesIssued", "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheetsParentheticals" ], "lang": { "en-us": { "role": { "label": "Preferred stock, shares issued (in shares)", "documentation": "Total number of nonredeemable preferred shares (or preferred stock redeemable solely at the option of the issuer) issued to shareholders (includes related preferred shares that were issued, repurchased, and remain in the treasury). May be all or portion of the number of preferred shares authorized. Excludes preferred shares that are classified as debt." } } }, "auth_ref": [ "r80", "r267" ] }, "us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable", "presentation": [ "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationLongLivedAssetsByGeographicAreaDetails", "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationRevenuePercentageByMajorCustomersDetails", "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationRevenuesByGeographicAreaDetails" ], "lang": { "en-us": { "role": { "label": "Schedule of Revenues from External Customers and Long-Lived Assets [Table]", "documentation": "Schedule of material long-lived assets (excluding financial instruments, customer relationships with financial institutions, mortgage and other servicing rights, deferred policy acquisition costs, and deferred taxes assets) located in identified geographic areas and/or the amount of revenue from external customers attributed to that country from which revenue is material. An entity may also provide subtotals of geographic information about groups of countries." } } }, "auth_ref": [ "r45", "r88" ] }, "us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "NewAccountingPronouncementsPolicyPolicyTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureSignificantAccountingPoliciesPolicies" ], "lang": { "en-us": { "role": { "label": "Accounting Standards, Policy", "documentation": "Disclosure of accounting policy pertaining to new accounting pronouncements that may impact the entity's financial reporting. Includes, but is not limited to, quantification of the expected or actual impact." } } }, "auth_ref": [] }, "us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "RevenueFromContractWithCustomerIncludingAssessedTax", "crdr": "credit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveLoss": { "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationRevenuesByGeographicAreaDetails", "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveLoss" ], "lang": { "en-us": { "role": { "label": "Revenues", "documentation": "Amount, including tax collected from customer, of revenue from satisfaction of performance obligation by transferring promised good or service to customer. Tax collected from customer is tax assessed by governmental authority that is both imposed on and concurrent with specific revenue-producing transaction, including, but not limited to, sales, use, value-added and excise." } } }, "auth_ref": [ "r204", "r205", "r210", "r214", "r215", "r221", "r223", "r225", "r300", "r301", "r430" ] }, "us-gaap_IncreaseDecreaseInOtherNoncurrentAssets": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "IncreaseDecreaseInOtherNoncurrentAssets", "crdr": "credit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": -1.0, "order": 12.0 } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "us-gaap_IncreaseDecreaseInOtherNoncurrentAssets", "negatedLabel": "Other non-current assets", "documentation": "Amount of increase (decrease) in noncurrent assets classified as other." } } }, "auth_ref": [ "r632" ] }, "us-gaap_EarningsPerShareAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "EarningsPerShareAbstract", "lang": { "en-us": { "role": { "label": "NET INCOME (LOSS) PER SHARE" } } }, "auth_ref": [] }, "us-gaap_PreferredStockSharesAuthorized": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "PreferredStockSharesAuthorized", "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheetsParentheticals" ], "lang": { "en-us": { "role": { "label": "Preferred stock, shares authorized (in shares)", "documentation": "The maximum number of nonredeemable preferred shares (or preferred stock redeemable solely at the option of the issuer) permitted to be issued by an entity's charter and bylaws." } } }, "auth_ref": [ "r80", "r503" ] }, "us-gaap_PreferredStockSharesOutstanding": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "PreferredStockSharesOutstanding", "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheetsParentheticals" ], "lang": { "en-us": { "role": { "label": "Preferred stock, shares outstanding (in shares)", "documentation": "Aggregate share number for all nonredeemable preferred stock (or preferred stock redeemable solely at the option of the issuer) held by stockholders. Does not include preferred shares that have been repurchased." } } }, "auth_ref": [ "r80", "r503", "r522", "r704", "r705" ] }, "us-gaap_TransferredAtPointInTimeMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "TransferredAtPointInTimeMember", "presentation": [ "http://www.pdf.com/role/DisclosureRevenueFromContractWithCustomersDisaggregationOfRevenueDetails" ], "lang": { "en-us": { "role": { "label": "Transferred at Point in Time [Member]", "documentation": "Contract with customer in which good or service is transferred at point in time." } } }, "auth_ref": [ "r592" ] }, "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1", "crdr": "debit", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansStockOptionsActivityDetails" ], "lang": { "en-us": { "role": { "label": "Exercisable, aggregate intrinsic value", "terseLabel": "Options Exercisable, Aggregate Intrinsic Value", "documentation": "Amount of difference between fair value of the underlying shares reserved for issuance and exercise price of vested portions of options outstanding and currently exercisable." } } }, "auth_ref": [ "r58" ] }, "us-gaap_SupplementalCashFlowInformationAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "SupplementalCashFlowInformationAbstract", "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Supplemental disclosure of cash flow information:" } } }, "auth_ref": [] }, "us-gaap_ConcentrationRiskTypeDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ConcentrationRiskTypeDomain", "presentation": [ "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationRevenuePercentageByMajorCustomersDetails", "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationRevenuesByGeographicAreaDetails", "http://www.pdf.com/role/DisclosureRevenueFromContractWithCustomersDetails" ], "lang": { "en-us": { "role": { "label": "Concentration Risk Type [Domain]", "documentation": "For an entity that discloses a concentration risk as a percentage of some financial balance or benchmark, identifies the type (for example, asset, liability, net assets, geographic, customer, employees, supplier, lender) of the concentration." } } }, "auth_ref": [ "r38", "r41", "r75", "r76", "r225", "r564" ] }, "us-gaap_AccountsReceivableMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AccountsReceivableMember", "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsDetails", "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationRevenuePercentageByMajorCustomersDetails" ], "lang": { "en-us": { "role": { "label": "Accounts Receivable", "documentation": "Due from customers or clients for goods or services that have been delivered or sold." } } }, "auth_ref": [ "r564" ] }, "us-gaap_BusinessCombinationsAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "BusinessCombinationsAbstract", "lang": { "en-us": { "role": { "label": "BUSINESS COMBINATION" } } }, "auth_ref": [] }, "pdfs_IndemnificationsMember": { "xbrltype": "domainItemType", "nsuri": "http://www.pdf.com/20230930", "localname": "IndemnificationsMember", "presentation": [ "http://www.pdf.com/role/DisclosureCommitmentsAndContingenciesDetails" ], "lang": { "en-us": { "role": { "documentation": "Commitments and contingencies pertaining to indemnifications.", "label": "Indemnifications" } } }, "auth_ref": [] }, "us-gaap_PreferredStockParOrStatedValuePerShare": { "xbrltype": "perShareItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "PreferredStockParOrStatedValuePerShare", "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheetsParentheticals" ], "lang": { "en-us": { "role": { "label": "Preferred stock, par value (in dollars per share)", "documentation": "Face amount or stated value per share of preferred stock nonredeemable or redeemable solely at the option of the issuer." } } }, "auth_ref": [ "r80", "r267" ] }, "us-gaap_ScheduleOfRevenueByMajorCustomersByReportingSegmentsTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ScheduleOfRevenueByMajorCustomersByReportingSegmentsTableTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationTables" ], "lang": { "en-us": { "role": { "label": "Schedule of Revenue by Major Customers by Reporting Segments", "documentation": "Tabular disclosure of the extent of the entity's reliance on its major customers, if revenues from transactions with a single external customer amount to 10 percent or more of entity revenues, including the disclosure of that fact, the total amount of revenues from each such customer, and the identity of the reportable segment or segments reporting the revenues. The entity need not disclose the identity of a major customer or the amount of revenues that each segment reports from that customer. For these purposes, a group of companies known to the entity to be under common control is considered a single customer, and the federal government, a state government, a local government such as a county or municipality, or a foreign government is each considered a single customer." } } }, "auth_ref": [] }, "dei_EntityAddressAddressLine1": { "xbrltype": "normalizedStringItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "EntityAddressAddressLine1", "presentation": [ "http://www.pdf.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Entity Address, Address Line One", "documentation": "Address Line 1 such as Attn, Building Name, Street Name" } } }, "auth_ref": [] }, "us-gaap_CostsAndExpensesAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "CostsAndExpensesAbstract", "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveLoss" ], "lang": { "en-us": { "role": { "label": "Costs and Expenses:" } } }, "auth_ref": [] }, "us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureNetIncomeLossPerShareTables" ], "lang": { "en-us": { "role": { "label": "Schedule of Antidilutive Securities Excluded from Computation of Earnings Per Share", "documentation": "Tabular disclosure of securities (including those issuable pursuant to contingent stock agreements) that could potentially dilute basic earnings per share (EPS) in the future that were not included in the computation of diluted EPS because to do so would increase EPS amounts or decrease loss per share amounts for the period presented, by antidilutive securities." } } }, "auth_ref": [ "r36" ] }, "us-gaap_RestrictedStockUnitsRSUMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "RestrictedStockUnitsRSUMember", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNonvestedRestrictedStockUnitsActivityDetails", "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansOtherDetails", "http://www.pdf.com/role/DisclosureNetIncomeLossPerShareAntiDilutiveSecuritiesDetails" ], "lang": { "en-us": { "role": { "label": "Restricted Stock Units (RSUs)", "documentation": "Share instrument which is convertible to stock or an equivalent amount of cash, after a specified period of time or when specified performance conditions are met." } } }, "auth_ref": [] }, "pdfs_PurchaseObligationsMember": { "xbrltype": "domainItemType", "nsuri": "http://www.pdf.com/20230930", "localname": "PurchaseObligationsMember", "presentation": [ "http://www.pdf.com/role/DisclosureCommitmentsAndContingenciesDetails" ], "lang": { "en-us": { "role": { "documentation": "Commitments and contingencies pertaining to purchase obligations.", "label": "Purchase Obligations" } } }, "auth_ref": [] }, "us-gaap_UseOfEstimates": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "UseOfEstimates", "presentation": [ "http://www.pdf.com/role/DisclosureSignificantAccountingPoliciesPolicies" ], "lang": { "en-us": { "role": { "label": "Use of Estimates, Policy", "documentation": "Disclosure of accounting policy for the use of estimates in the preparation of financial statements in conformity with generally accepted accounting principles." } } }, "auth_ref": [ "r42", "r43", "r44", "r131", "r132", "r133", "r134" ] }, "pdfs_AmortizationOfAcquiredIntangibleAssetsTechnology": { "xbrltype": "monetaryItemType", "nsuri": "http://www.pdf.com/20230930", "localname": "AmortizationOfAcquiredIntangibleAssetsTechnology", "crdr": "debit", "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsDetails" ], "lang": { "en-us": { "role": { "documentation": "The aggregate expense charged against earnings to allocate the cost of technology-based intangible assets (nonphysical assets not used in production) in a systematic and rational manner to the periods expected to benefit from such assets. As a noncash expense, this element is added back to net income when calculating cash provided by or used in operations using the indirect method.", "label": "Amortization of acquired intangible assets, technology", "terseLabel": "Amortization of acquired technology included under Costs of revenues" } } }, "auth_ref": [] }, "us-gaap_EarningsPerSharePolicyTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "EarningsPerSharePolicyTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureSignificantAccountingPoliciesPolicies" ], "lang": { "en-us": { "role": { "label": "Net Income (Loss) Per Share, Policy", "documentation": "Disclosure of accounting policy for computing basic and diluted earnings or loss per share for each class of common stock and participating security. Addresses all significant policy factors, including any antidilutive items that have been excluded from the computation and takes into account stock dividends, splits and reverse splits that occur after the balance sheet date of the latest reporting period but before the issuance of the financial statements." } } }, "auth_ref": [ "r36", "r37" ] }, "us-gaap_IncreaseDecreaseInAccountsPayable": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "IncreaseDecreaseInAccountsPayable", "crdr": "debit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0, "order": 13.0 } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "us-gaap_IncreaseDecreaseInAccountsPayable", "terseLabel": "Accounts payable", "documentation": "The increase (decrease) during the reporting period in the aggregate amount of liabilities incurred (and for which invoices have typically been received) and payable to vendors for goods and services received that are used in an entity's business." } } }, "auth_ref": [ "r5" ] }, "us-gaap_BasisOfAccountingPolicyPolicyTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "BasisOfAccountingPolicyPolicyTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureSignificantAccountingPoliciesPolicies" ], "lang": { "en-us": { "role": { "label": "Basis of Presentation, Policy", "documentation": "Disclosure of accounting policy for basis of accounting, or basis of presentation, used to prepare the financial statements (for example, US Generally Accepted Accounting Principles, Other Comprehensive Basis of Accounting, IFRS)." } } }, "auth_ref": [] }, "us-gaap_IncreaseDecreaseInAccruedLiabilities": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "IncreaseDecreaseInAccruedLiabilities", "crdr": "debit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0, "order": 15.0 } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Accrued and other liabilities", "documentation": "The increase (decrease) during the reporting period in the aggregate amount of expenses incurred but not yet paid." } } }, "auth_ref": [ "r5" ] }, "pdfs_IncreaseDecreaseInBillingsInExcessOfRecognizedRevenues": { "xbrltype": "monetaryItemType", "nsuri": "http://www.pdf.com/20230930", "localname": "IncreaseDecreaseInBillingsInExcessOfRecognizedRevenues", "crdr": "debit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0, "order": 17.0 } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "documentation": "The increase (decrease) during the reporting period in the liability reflecting cash payments received before the related costs have been incurred.", "label": "Increase decrease in billings in excess of recognized revenues", "terseLabel": "Billings in excess of recognized revenues" } } }, "auth_ref": [] }, "dei_EntityAddressCityOrTown": { "xbrltype": "normalizedStringItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "EntityAddressCityOrTown", "presentation": [ "http://www.pdf.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Entity Address, City or Town", "documentation": "Name of the City or Town" } } }, "auth_ref": [] }, "pdfs_AdvantestAmericaIncMember": { "xbrltype": "domainItemType", "nsuri": "http://www.pdf.com/20230930", "localname": "AdvantestAmericaIncMember", "presentation": [ "http://www.pdf.com/role/DisclosureRevenueFromContractWithCustomersAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "documentation": "Information pertaining to Advantest America, Inc.", "label": "Advantest America, Inc. [Member]" } } }, "auth_ref": [] }, "pdfs_AmortizationOfAcquiredIntangibleAssetsNet": { "xbrltype": "monetaryItemType", "nsuri": "http://www.pdf.com/20230930", "localname": "AmortizationOfAcquiredIntangibleAssetsNet", "crdr": "debit", "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsDetails" ], "lang": { "en-us": { "role": { "documentation": "The total expense charged against earnings to allocate the cost of intangible assets (nonphysical assets not used in production) in a systematic and rational manner to the periods expected to benefit from such assets. As a noncash expense, this element is added back to net income when calculating cash provided by or used in operations using the indirect method.", "label": "Amortization of acquired intangible assets, net", "totalLabel": "Total amortization of acquired intangible assets" } } }, "auth_ref": [] }, "pdfs_AmortizationOfCapitalizedContractCosts": { "xbrltype": "monetaryItemType", "nsuri": "http://www.pdf.com/20230930", "localname": "AmortizationOfCapitalizedContractCosts", "crdr": "debit", "presentation": [ "http://www.pdf.com/role/DisclosureRevenueFromContractWithCustomersDetails" ], "lang": { "en-us": { "role": { "documentation": "Amount of amortization expense for asset recognized from cost incurred to obtain or fulfill contract with customer.", "label": "Amortization of Capitalized Contract Costs" } } }, "auth_ref": [] }, "pdfs_RevenueFromContractsWithCustomersContractBalancesPolicyTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://www.pdf.com/20230930", "localname": "RevenueFromContractsWithCustomersContractBalancesPolicyTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureSignificantAccountingPoliciesPolicies" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of accounting policy for contract balances to maintain stemming from revenue earned from contracts with customers.", "label": "Revenue from Contracts with Customers Contract Balances [Policy Text Block]", "terseLabel": "Contract Balances" } } }, "auth_ref": [] }, "dei_EntityAddressStateOrProvince": { "xbrltype": "stateOrProvinceItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "EntityAddressStateOrProvince", "presentation": [ "http://www.pdf.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Entity Address, State or Province", "documentation": "Name of the state or province." } } }, "auth_ref": [] }, "pdfs_StockIncentivePlanPolicy": { "xbrltype": "textBlockItemType", "nsuri": "http://www.pdf.com/20230930", "localname": "StockIncentivePlanPolicy", "presentation": [ "http://www.pdf.com/role/DisclosureSignificantAccountingPoliciesPolicies" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of accounting policy for stock incentive plans offered under share-based payment arrangement. Includes, but is not limited to, methodology and assumption used in measuring cost.", "label": "Stock Incentive Plan, Policy" } } }, "auth_ref": [] }, "pdfs_CommonStockOutstandingMember": { "xbrltype": "domainItemType", "nsuri": "http://www.pdf.com/20230930", "localname": "CommonStockOutstandingMember", "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfStockholdersEquity" ], "lang": { "en-us": { "role": { "documentation": "Stock that is subordinate to all other stock of the issuer.", "label": "Common Stock Outstanding" } } }, "auth_ref": [] }, "us-gaap_IncreaseDecreaseInOtherOperatingAssetsAndLiabilitiesNetAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "IncreaseDecreaseInOtherOperatingAssetsAndLiabilitiesNetAbstract", "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Changes in operating assets and liabilities:" } } }, "auth_ref": [] }, "pdfs_ContractWithCustomerLiabilityBillingsInExcessOfRevenueRecognized": { "xbrltype": "monetaryItemType", "nsuri": "http://www.pdf.com/20230930", "localname": "ContractWithCustomerLiabilityBillingsInExcessOfRevenueRecognized", "crdr": "credit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets": { "parentTag": "us-gaap_LiabilitiesCurrent", "weight": 1.0, "order": 6.0 } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "documentation": "Liability attributable to (i) billings in excess of costs under the percentage of completion contract accounting method representing the difference between contractually invoiced amounts (billings) and revenue recognized based, for example, on costs incurred to estimated total costs at period end or (ii) contractually invoiced amounts (billings) in excess of costs incurred and accumulated under the completed contract accounting method that are expected to be realized within one year or one operating cycle, whichever is longer, from the reporting date.", "label": "Billings in excess of recognized revenues" } } }, "auth_ref": [] }, "pdfs_CustomerBMember": { "xbrltype": "domainItemType", "nsuri": "http://www.pdf.com/20230930", "localname": "CustomerBMember", "presentation": [ "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationRevenuePercentageByMajorCustomersDetails" ], "lang": { "en-us": { "role": { "documentation": "Information pertaining to customer B.", "label": "Customer B" } } }, "auth_ref": [] }, "dei_EntityAddressPostalZipCode": { "xbrltype": "normalizedStringItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "EntityAddressPostalZipCode", "presentation": [ "http://www.pdf.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Entity Address, Postal Zip Code", "documentation": "Code for the postal or zip code" } } }, "auth_ref": [] }, "pdfs_CustomerAMember": { "xbrltype": "domainItemType", "nsuri": "http://www.pdf.com/20230930", "localname": "CustomerAMember", "presentation": [ "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationRevenuePercentageByMajorCustomersDetails" ], "lang": { "en-us": { "role": { "documentation": "Information pertaining to customer A.", "label": "Customer A" } } }, "auth_ref": [] }, "us-gaap_FairValueMeasurementPolicyPolicyTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "FairValueMeasurementPolicyPolicyTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureSignificantAccountingPoliciesPolicies" ], "lang": { "en-us": { "role": { "label": "Fair Value Measurement, Policy", "documentation": "Disclosure of accounting policy for fair value measurements of financial and non-financial assets, liabilities and instruments classified in shareholders' equity. Disclosures include, but are not limited to, how an entity that manages a group of financial assets and liabilities on the basis of its net exposure measures the fair value of those assets and liabilities." } } }, "auth_ref": [] }, "us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets", "crdr": "credit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": -1.0, "order": 10.0 } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets", "negatedLabel": "Prepaid expenses and other current assets", "documentation": "Amount of increase (decrease) in prepaid expenses, and assets classified as other." } } }, "auth_ref": [ "r5" ] }, "us-gaap_FairValueInputsLevel1Member": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "FairValueInputsLevel1Member", "presentation": [ "http://www.pdf.com/role/DisclosureFairValueMeasurementsFairValueAssetsMeasuredOnRecurringBasisDetails" ], "lang": { "en-us": { "role": { "label": "Quoted Prices in Active Markets for Identical Assets (level 1)", "documentation": "Quoted prices in active markets for identical assets or liabilities that the reporting entity can access at the measurement date." } } }, "auth_ref": [ "r265", "r306", "r311", "r398", "r424", "r593", "r594", "r595" ] }, "pdfs_CommercialAgreementWithAdvantestMember": { "xbrltype": "domainItemType", "nsuri": "http://www.pdf.com/20230930", "localname": "CommercialAgreementWithAdvantestMember", "presentation": [ "http://www.pdf.com/role/DisclosureStrategicPartnershipAgreementWithAdvantestAndRelatedPartyTransactionsDetails" ], "lang": { "en-us": { "role": { "documentation": "Related to the commercial agreement with Advantest.", "label": "Commercial Agreement With Advantest" } } }, "auth_ref": [] }, "pdfs_CashCashEquivalentsShortTermInvestmentsFairValueDisclosure": { "xbrltype": "monetaryItemType", "nsuri": "http://www.pdf.com/20230930", "localname": "CashCashEquivalentsShortTermInvestmentsFairValueDisclosure", "crdr": "debit", "calculation": { "http://www.pdf.com/role/DisclosureFairValueMeasurementsFairValueAssetsMeasuredOnRecurringBasisDetails": { "parentTag": null, "weight": null, "order": null, "root": true } }, "presentation": [ "http://www.pdf.com/role/DisclosureFairValueMeasurementsFairValueAssetsMeasuredOnRecurringBasisDetails" ], "lang": { "en-us": { "role": { "documentation": "The amount of cash, cash equivalents and short term investments measured at fair value.", "label": "pdfs_CashCashEquivalentsShortTermInvestmentsFairValueDisclosure", "totalLabel": "Total" } } }, "auth_ref": [] }, "us-gaap_AdditionalPaidInCapital": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AdditionalPaidInCapital", "crdr": "credit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets": { "parentTag": "us-gaap_StockholdersEquity", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Additional paid-in-capital", "documentation": "Amount of excess of issue price over par or stated value of stock and from other transaction involving stock or stockholder. Includes, but is not limited to, additional paid-in capital (APIC) for common and preferred stock." } } }, "auth_ref": [ "r82", "r604", "r703" ] }, "us-gaap_PreferredStockValue": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "PreferredStockValue", "crdr": "credit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets": { "parentTag": "us-gaap_StockholdersEquity", "weight": 1.0, "order": 6.0 } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Preferred stock, $0.00015 par value, 5,000 shares authorized, no shares issued and outstanding", "documentation": "Aggregate par or stated value of issued nonredeemable preferred stock (or preferred stock redeemable solely at the option of the issuer). This item includes treasury stock repurchased by the entity. Note: elements for number of nonredeemable preferred shares, par value and other disclosure concepts are in another section within stockholders' equity." } } }, "auth_ref": [ "r80", "r453", "r604" ] }, "pdfs_AnalyticsMember": { "xbrltype": "domainItemType", "nsuri": "http://www.pdf.com/20230930", "localname": "AnalyticsMember", "presentation": [ "http://www.pdf.com/role/DisclosureStrategicPartnershipAgreementWithAdvantestAndRelatedPartyTransactionsDetails", "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveLoss" ], "lang": { "en-us": { "role": { "documentation": "Information pertaining to analytics.", "label": "Analytics" } } }, "auth_ref": [] }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue": { "xbrltype": "perShareItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNonvestedRestrictedStockUnitsActivityDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue", "verboseLabel": "RSUs Granted, Weighted Average Grant Date Fair Value", "documentation": "The weighted average fair value at grant date for nonvested equity-based awards issued during the period on other than stock (or unit) option plans (for example, phantom stock or unit plan, stock or unit appreciation rights plan, performance target plan)." } } }, "auth_ref": [ "r331" ] }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNonvestedRestrictedStockUnitsActivityDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod", "negatedTerseLabel": "RSUs Forfeited", "documentation": "The number of equity-based payment instruments, excluding stock (or unit) options, that were forfeited during the reporting period." } } }, "auth_ref": [ "r333" ] }, "us-gaap_RelatedPartyDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "RelatedPartyDomain", "presentation": [ "http://www.pdf.com/role/DisclosureStrategicPartnershipAgreementWithAdvantestAndRelatedPartyTransactionsDetails" ], "lang": { "en-us": { "role": { "label": "Related Party [Domain]", "documentation": "Related parties include affiliates; other entities for which investments are accounted for by the equity method by the entity; trusts for benefit of employees; and principal owners, management, and members of immediate families. It also may include other parties with which the entity may control or can significantly influence the management or operating policies of the other to an extent that one of the transacting parties might be prevented from fully pursuing its own separate interests." } } }, "auth_ref": [ "r312", "r421", "r422", "r496", "r497", "r498", "r499", "r500", "r521", "r523", "r551" ] }, "us-gaap_CapitalizedContractCostImpairmentLoss": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "CapitalizedContractCostImpairmentLoss", "crdr": "debit", "presentation": [ "http://www.pdf.com/role/DisclosureRevenueFromContractWithCustomersDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_CapitalizedContractCostImpairmentLoss", "terseLabel": "Capitalized Contract Cost, Impairment Loss", "documentation": "Amount of impairment loss for asset recognized from cost incurred to obtain or fulfill contract with customer." } } }, "auth_ref": [ "r239" ] }, "us-gaap_BusinessAcquisitionPercentageOfVotingInterestsAcquired": { "xbrltype": "percentItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "BusinessAcquisitionPercentageOfVotingInterestsAcquired", "presentation": [ "http://www.pdf.com/role/DisclosureBusinessCombinationOtherDetails" ], "lang": { "en-us": { "role": { "label": "Business Acquisition, Percentage of Voting Interests Acquired", "terseLabel": "Equity interest acquired in business combination", "documentation": "Percentage of voting equity interests acquired at the acquisition date in the business combination." } } }, "auth_ref": [ "r64" ] }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNonvestedRestrictedStockUnitsActivityDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod", "terseLabel": "RSUs Granted", "documentation": "The number of grants made during the period on other than stock (or unit) option plans (for example, phantom stock or unit plan, stock or unit appreciation rights plan, performance target plan)." } } }, "auth_ref": [ "r331" ] }, "us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1": { "xbrltype": "durationItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "OperatingLeaseWeightedAverageRemainingLeaseTerm1", "presentation": [ "http://www.pdf.com/role/DisclosureLeasesLeaseCostDetails" ], "lang": { "en-us": { "role": { "label": "Weighted average remaining lease term under operating ROU leases (in years) (Year)", "documentation": "Weighted average remaining lease term for operating lease, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days." } } }, "auth_ref": [ "r414", "r603" ] }, "us-gaap_StatementOfStockholdersEquityAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "StatementOfStockholdersEquityAbstract", "lang": { "en-us": { "role": { "label": "CONDENSED CONSOLIDATED STATEMENTS OF STOCKHOLDERS EQUITY" } } }, "auth_ref": [] }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNonvestedRestrictedStockUnitsActivityDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber", "periodEndLabel": "Non-vested RSUs, Ending Balance", "periodStartLabel": "Non-vested RSUs, Opening Balance", "documentation": "The number of non-vested equity-based payment instruments, excluding stock (or unit) options, that validly exist and are outstanding as of the balance sheet date." } } }, "auth_ref": [ "r328", "r329" ] }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue": { "xbrltype": "perShareItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNonvestedRestrictedStockUnitsActivityDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue", "periodEndLabel": "Non-vested RSUs, Weighted Average Grant Date Fair Value", "periodStartLabel": "Non-vested RSUs, Weighted Average Grant Date Fair Value", "documentation": "Per share or unit weighted-average fair value of nonvested award under share-based payment arrangement. Excludes share and unit options." } } }, "auth_ref": [ "r328", "r329" ] }, "us-gaap_StatementOfCashFlowsAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "StatementOfCashFlowsAbstract", "lang": { "en-us": { "role": { "label": "CONDENSED CONSOLIDATED STATEMENTS OF CASH FLOWS" } } }, "auth_ref": [] }, "us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized", "crdr": "debit", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansOtherDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized", "terseLabel": "Unrecognized Compensation", "documentation": "Amount of cost not yet recognized for nonvested award under share-based payment arrangement." } } }, "auth_ref": [ "r346" ] }, "us-gaap_BusinessAcquisitionAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "BusinessAcquisitionAxis", "presentation": [ "http://www.pdf.com/role/DisclosureBusinessCombinationFairValuesOfAssetsAcquiredAndLiabilitiesAssumedDetails", "http://www.pdf.com/role/DisclosureBusinessCombinationOtherDetails" ], "lang": { "en-us": { "role": { "label": "Business Acquisition [Axis]", "documentation": "Information by business combination or series of individually immaterial business combinations." } } }, "auth_ref": [ "r63", "r65", "r378", "r596", "r597" ] }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNonvestedRestrictedStockUnitsActivityDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod", "negatedTerseLabel": "RSUs Vested", "documentation": "The number of equity-based payment instruments, excluding stock (or unit) options, that vested during the reporting period." } } }, "auth_ref": [ "r332" ] }, "us-gaap_OtherComprehensiveIncomeLossNetOfTaxAttributableToParentAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "OtherComprehensiveIncomeLossNetOfTaxAttributableToParentAbstract", "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveLoss" ], "lang": { "en-us": { "role": { "label": "Other comprehensive income (loss):" } } }, "auth_ref": [] }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue": { "xbrltype": "perShareItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNonvestedRestrictedStockUnitsActivityDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue", "verboseLabel": "RSUs Vested, Weighted Average Grant Date Fair Value", "documentation": "The weighted average fair value as of grant date pertaining to an equity-based award plan other than a stock (or unit) option plan for which the grantee gained the right during the reporting period, by satisfying service and performance requirements, to receive or retain shares or units, other instruments, or cash in accordance with the terms of the arrangement." } } }, "auth_ref": [ "r332" ] }, "us-gaap_BusinessAcquisitionAcquireeDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "BusinessAcquisitionAcquireeDomain", "presentation": [ "http://www.pdf.com/role/DisclosureBusinessCombinationFairValuesOfAssetsAcquiredAndLiabilitiesAssumedDetails", "http://www.pdf.com/role/DisclosureBusinessCombinationOtherDetails" ], "lang": { "en-us": { "role": { "label": "Business Acquisition, Acquiree [Domain]", "documentation": "Identification of the acquiree in a material business combination (or series of individually immaterial business combinations), which may include the name or other type of identification of the acquiree." } } }, "auth_ref": [ "r378", "r596", "r597" ] }, "us-gaap_DeferredIncomeTaxAssetsNet": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "DeferredIncomeTaxAssetsNet", "crdr": "debit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets": { "parentTag": "us-gaap_Assets", "weight": 1.0, "order": 6.0 } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "us-gaap_DeferredIncomeTaxAssetsNet", "terseLabel": "Deferred tax assets, net", "documentation": "Amount, after allocation of valuation allowances and deferred tax liability, of deferred tax asset attributable to deductible differences and carryforwards, with jurisdictional netting." } } }, "auth_ref": [ "r358", "r359" ] }, "us-gaap_RisksAndUncertaintiesAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "RisksAndUncertaintiesAbstract", "lang": { "en-us": { "role": { "label": "CUSTOMER AND GEOGRAPHIC INFORMATION" } } }, "auth_ref": [] }, "us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ScheduleOfBusinessAcquisitionsByAcquisitionTable", "presentation": [ "http://www.pdf.com/role/DisclosureBusinessCombinationFairValuesOfAssetsAcquiredAndLiabilitiesAssumedDetails", "http://www.pdf.com/role/DisclosureBusinessCombinationOtherDetails" ], "lang": { "en-us": { "role": { "label": "Schedule of Business Acquisitions, by Acquisition [Table]", "documentation": "Schedule reflecting each material business combination (or series of individually immaterial business combinations) completed during the period, including background, timing, and recognized assets and liabilities." } } }, "auth_ref": [ "r63", "r65", "r378" ] }, "us-gaap_BusinessAcquisitionLineItems": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "BusinessAcquisitionLineItems", "presentation": [ "http://www.pdf.com/role/DisclosureBusinessCombinationFairValuesOfAssetsAcquiredAndLiabilitiesAssumedDetails", "http://www.pdf.com/role/DisclosureBusinessCombinationOtherDetails" ], "lang": { "en-us": { "role": { "label": "Business Acquisition [Line Items]", "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table." } } }, "auth_ref": [ "r378" ] }, "dei_AmendmentFlag": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "AmendmentFlag", "presentation": [ "http://www.pdf.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Amendment Flag", "documentation": "Boolean flag that is true when the XBRL content amends previously-filed or accepted submission." } } }, "auth_ref": [] }, "us-gaap_CapitalizedContractCostNet": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "CapitalizedContractCostNet", "crdr": "debit", "presentation": [ "http://www.pdf.com/role/DisclosureRevenueFromContractWithCustomersDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_CapitalizedContractCostNet", "terseLabel": "Capitalized Contract Cost, Net, Total", "documentation": "Amount, after accumulated amortization and accumulated impairment loss, of asset recognized from cost incurred to obtain or fulfill contract with customer." } } }, "auth_ref": [ "r238" ] }, "us-gaap_DeferredRevenueCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "DeferredRevenueCurrent", "crdr": "credit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets": { "parentTag": "us-gaap_LiabilitiesCurrent", "weight": 1.0, "order": 5.0 } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Deferred Revenue, Current", "terseLabel": "Deferred revenues - current portion", "documentation": "Amount of deferred income and obligation to transfer product and service to customer for which consideration has been received or is receivable, classified as current." } } }, "auth_ref": [ "r626" ] }, "us-gaap_AdjustmentsNoncashItemsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AdjustmentsNoncashItemsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract", "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Adjustments to reconcile net income (loss) to net cash provided by (used in) operating activities:" } } }, "auth_ref": [] }, "us-gaap_IncomeTaxExpenseBenefit": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "IncomeTaxExpenseBenefit", "crdr": "debit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveLoss": { "parentTag": "us-gaap_NetIncomeLoss", "weight": -1.0, "order": 2.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureIncomeTaxesDetails", "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveLoss" ], "lang": { "en-us": { "role": { "label": "Income tax expense (benefit)", "negatedLabel": "Income tax expense", "terseLabel": "Income Tax Expense (Benefit), Total", "documentation": "Amount of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations." } } }, "auth_ref": [ "r130", "r138", "r183", "r184", "r208", "r360", "r372", "r465" ] }, "us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ShareBasedCompensationOptionAndIncentivePlansPolicy", "presentation": [ "http://www.pdf.com/role/DisclosureSignificantAccountingPoliciesPolicies" ], "lang": { "en-us": { "role": { "label": "Stock-Based Compensation, Policy", "documentation": "Disclosure of accounting policy for award under share-based payment arrangement. Includes, but is not limited to, methodology and assumption used in measuring cost." } } }, "auth_ref": [ "r315", "r319", "r338", "r339", "r340", "r341", "r344", "r350", "r351", "r352", "r353" ] }, "us-gaap_NonUsMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "NonUsMember", "presentation": [ "http://www.pdf.com/role/DisclosureRevenueFromContractWithCustomersDetails" ], "lang": { "en-us": { "role": { "label": "Non-US [Member]", "documentation": "Countries excluding the United States of America (US)." } } }, "auth_ref": [ "r706", "r707", "r708", "r709" ] }, "us-gaap_IncomeStatementAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "IncomeStatementAbstract", "lang": { "en-us": { "role": { "label": "CONDENSED CONSOLIDATED STATEMENTS OF COMPREHENSIVE LOSS" } } }, "auth_ref": [] }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansOtherDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant", "terseLabel": "Stock Incentive Plans, Shares Available for Future Grant", "documentation": "The difference between the maximum number of shares (or other type of equity) authorized for issuance under the plan (including the effects of amendments and adjustments), and the sum of: 1) the number of shares (or other type of equity) already issued upon exercise of options or other equity-based awards under the plan; and 2) shares (or other type of equity) reserved for issuance on granting of outstanding awards, net of cancellations and forfeitures, if applicable." } } }, "auth_ref": [ "r58" ] }, "us-gaap_DeferredTaxAssetsValuationAllowance": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "DeferredTaxAssetsValuationAllowance", "crdr": "credit", "presentation": [ "http://www.pdf.com/role/DisclosureIncomeTaxesDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_DeferredTaxAssetsValuationAllowance", "terseLabel": "Deferred Tax Assets, Valuation Allowance, Total", "documentation": "Amount of deferred tax assets for which it is more likely than not that a tax benefit will not be realized." } } }, "auth_ref": [ "r367" ] }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue", "crdr": "debit", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansOtherDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue", "terseLabel": "Options Exercised in Period, Intrinsic Value", "documentation": "Amount of accumulated difference between fair value of underlying shares on dates of exercise and exercise price on options exercised (or share units converted) into shares." } } }, "auth_ref": [ "r335" ] }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansStockOptionsActivityDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod", "negatedLabel": "Options Expired", "documentation": "Number of options or other stock instruments for which the right to exercise has lapsed under the terms of the plan agreements." } } }, "auth_ref": [ "r327" ] }, "dei_DocumentFiscalYearFocus": { "xbrltype": "gYearItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "DocumentFiscalYearFocus", "presentation": [ "http://www.pdf.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Document Fiscal Year Focus", "documentation": "This is focus fiscal year of the document report in YYYY format. For a 2006 annual report, which may also provide financial information from prior periods, fiscal 2006 should be given as the fiscal year focus. Example: 2006." } } }, "auth_ref": [] }, "us-gaap_TreasuryStockValueAcquiredCostMethod": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "TreasuryStockValueAcquiredCostMethod", "crdr": "debit", "presentation": [ "http://www.pdf.com/role/DisclosureStockholdersEquityDetails", "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfStockholdersEquity" ], "lang": { "en-us": { "role": { "label": "us-gaap_TreasuryStockValueAcquiredCostMethod", "negatedLabel": "Purchases of treasury stock in connection with tax withholdings on restricted stock grants", "terseLabel": "Purchases of treasury stock in connection with tax withholdings on restricted stock grants", "documentation": "Equity impact of the cost of common and preferred stock that were repurchased during the period. Recorded using the cost method." } } }, "auth_ref": [ "r10", "r56", "r108" ] }, "us-gaap_OperatingLeaseRightOfUseAsset": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "OperatingLeaseRightOfUseAsset", "crdr": "debit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets": { "parentTag": "us-gaap_Assets", "weight": 1.0, "order": 3.0 } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Operating lease right-of-use assets, net", "documentation": "Amount of lessee's right to use underlying asset under operating lease." } } }, "auth_ref": [ "r407" ] }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansOtherDetails", "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansStockOptionsActivityDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod", "negatedLabel": "Options Canceled", "terseLabel": "Stock Incentive Plans, Cumulative Share Forfeitures, Expirations and Repurchases", "documentation": "The number of shares under options that were cancelled during the reporting period as a result of occurrence of a terminating event specified in contractual agreements pertaining to the stock option plan." } } }, "auth_ref": [ "r326" ] }, "us-gaap_BusinessCombinationsPolicy": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "BusinessCombinationsPolicy", "presentation": [ "http://www.pdf.com/role/DisclosureSignificantAccountingPoliciesPolicies" ], "lang": { "en-us": { "role": { "label": "Business Combinations, Policy", "documentation": "Disclosure of accounting policy for completed business combinations (purchase method, acquisition method or combination of entities under common control). This accounting policy may include a general discussion of the purchase method or acquisition method of accounting (including for example, the treatment accorded contingent consideration, the identification of assets and liabilities, the purchase price allocation process, how the fair values of acquired assets and liabilities are determined) and the entity's specific application thereof. An entity that acquires another entity in a leveraged buyout transaction generally discloses the accounting policy followed by the acquiring entity in determining the basis used to value its interest in the acquired entity, and the rationale for that accounting policy." } } }, "auth_ref": [ "r62" ] }, "us-gaap_DevelopedTechnologyRightsMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "DevelopedTechnologyRightsMember", "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsIntangibleAssetsDetails", "http://www.pdf.com/role/DisclosureBusinessCombinationFairValuesOfAssetsAcquiredAndLiabilitiesAssumedDetails" ], "lang": { "en-us": { "role": { "label": "Developed Technology Rights", "documentation": "Rights to developed technology, which can include the right to develop, use, market, sell, or offer for sale products, compounds, or intellectual property." } } }, "auth_ref": [ "r118" ] }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue": { "xbrltype": "perShareItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansValuationAssumptionsForEsppDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue", "verboseLabel": "Weighted average fair value of purchase rights granted during the period", "documentation": "The weighted average grant-date fair value of options granted during the reporting period as calculated by applying the disclosed option pricing methodology." } } }, "auth_ref": [ "r334" ] }, "us-gaap_DepreciationDepletionAndAmortization": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "DepreciationDepletionAndAmortization", "crdr": "debit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Depreciation and amortization", "documentation": "The aggregate expense recognized in the current period that allocates the cost of tangible assets, intangible assets, or depleting assets to periods that benefit from use of the assets." } } }, "auth_ref": [ "r6", "r207" ] }, "dei_DocumentFiscalPeriodFocus": { "xbrltype": "fiscalPeriodItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "DocumentFiscalPeriodFocus", "presentation": [ "http://www.pdf.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Document Fiscal Period Focus", "documentation": "Fiscal period values are FY, Q1, Q2, and Q3. 1st, 2nd and 3rd quarter 10-Q or 10-QT statements have value Q1, Q2, and Q3 respectively, with 10-K, 10-KT or other fiscal year statements having FY." } } }, "auth_ref": [] }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue", "crdr": "debit", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansStockOptionsActivityDetails" ], "lang": { "en-us": { "role": { "label": "Outstanding, aggregate intrinsic value", "terseLabel": "Options Outstanding, Aggregate Intrinsic Value", "documentation": "Amount by which the current fair value of the underlying stock exceeds the exercise price of options outstanding." } } }, "auth_ref": [ "r58" ] }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansOtherDetails", "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansStockOptionsActivityDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber", "periodEndLabel": "Options Outstanding, Ending Balance", "periodStartLabel": "Options Outstanding, Beginning Balance", "terseLabel": "Stock Incentive Plans, Stock Option Awards Outstanding", "documentation": "Number of options outstanding, including both vested and non-vested options." } } }, "auth_ref": [ "r320", "r321" ] }, "srt_StatementScenarioAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/srt/2023", "localname": "StatementScenarioAxis", "presentation": [ "http://www.pdf.com/role/DisclosureCommitmentsAndContingenciesDetails", "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationRevenuePercentageByMajorCustomersDetails" ], "lang": { "en-us": { "role": { "label": "Scenario [Axis]" } } }, "auth_ref": [ "r185", "r314", "r618", "r619", "r639" ] }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice": { "xbrltype": "perShareItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansStockOptionsActivityDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice", "periodEndLabel": "Options Outstanding, Weighted Average Exercise Price, Ending Balance", "periodStartLabel": "Options Outstanding, Weighted Average Exercise Price, Beginning Balance", "documentation": "Weighted average price at which grantees can acquire the shares reserved for issuance under the stock option plan." } } }, "auth_ref": [ "r320", "r321" ] }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansStockOptionsActivityDetails" ], "lang": { "en-us": { "role": { "label": "Exercisable (in shares)", "terseLabel": "Options Exercisable", "documentation": "The number of shares into which fully or partially vested stock options outstanding as of the balance sheet date can be currently converted under the option plan." } } }, "auth_ref": [ "r322" ] }, "us-gaap_StatementOfFinancialPositionAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "StatementOfFinancialPositionAbstract", "lang": { "en-us": { "role": { "label": "CONDENSED CONSOLIDATED BALANCE SHEETS" } } }, "auth_ref": [] }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice": { "xbrltype": "perShareItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansStockOptionsActivityDetails" ], "lang": { "en-us": { "role": { "label": "Exercisable, weighted average exercise price (in dollars per share)", "terseLabel": "Options Exercisable, Weighted Average Exercise Price", "documentation": "The weighted-average price as of the balance sheet date at which grantees can acquire the shares reserved for issuance on vested portions of options outstanding and currently exercisable under the stock option plan." } } }, "auth_ref": [ "r322" ] }, "us-gaap_ConcentrationRiskPercentage1": { "xbrltype": "percentItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ConcentrationRiskPercentage1", "presentation": [ "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationRevenuePercentageByMajorCustomersDetails", "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationRevenuesByGeographicAreaDetails", "http://www.pdf.com/role/DisclosureRevenueFromContractWithCustomersDetails" ], "lang": { "en-us": { "role": { "label": "Concentration risk", "terseLabel": "Percentage of Revenues", "documentation": "For an entity that discloses a concentration risk in relation to quantitative amount, which serves as the \"benchmark\" (or denominator) in the equation, this concept represents the concentration percentage derived from the division." } } }, "auth_ref": [ "r38", "r41", "r75", "r76", "r225" ] }, "srt_ScenarioUnspecifiedDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/srt/2023", "localname": "ScenarioUnspecifiedDomain", "presentation": [ "http://www.pdf.com/role/DisclosureCommitmentsAndContingenciesDetails", "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationRevenuePercentageByMajorCustomersDetails" ], "lang": { "en-us": { "role": { "label": "Scenario [Domain]" } } }, "auth_ref": [ "r185", "r314", "r618", "r639" ] }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1": { "xbrltype": "durationItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansOtherDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1", "terseLabel": "Stock Option Vesting Period", "documentation": "Period over which grantee's right to exercise award under share-based payment arrangement is no longer contingent on satisfaction of service or performance condition, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days. Includes, but is not limited to, combination of market, performance or service condition." } } }, "auth_ref": [ "r599" ] }, "us-gaap_OperatingLeaseRightOfUseAssetAmortizationExpense": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "OperatingLeaseRightOfUseAssetAmortizationExpense", "crdr": "debit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0, "order": 11.0 } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Operating Lease, Right-of-Use Asset, Periodic Reduction", "terseLabel": "Operating lease right-of-use assets", "documentation": "Amount of periodic reduction over lease term of carrying amount of right-of-use asset from operating lease." } } }, "auth_ref": [ "r633" ] }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate": { "xbrltype": "percentItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansValuationAssumptionsForEsppDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate", "terseLabel": "Expected dividend", "documentation": "The estimated dividend rate (a percentage of the share price) to be paid (expected dividends) to holders of the underlying shares over the option's term." } } }, "auth_ref": [ "r342" ] }, "us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1": { "xbrltype": "durationItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansOtherDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1", "terseLabel": "Unrecognized Compensation Recognition Period", "documentation": "Weighted-average period over which cost not yet recognized is expected to be recognized for award under share-based payment arrangement, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days." } } }, "auth_ref": [ "r346" ] }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate": { "xbrltype": "percentItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansValuationAssumptionsForEsppDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate", "terseLabel": "Volatility", "documentation": "The estimated measure of the percentage by which a share price is expected to fluctuate during a period. Volatility also may be defined as a probability-weighted measure of the dispersion of returns about the mean. The volatility of a share price is the standard deviation of the continuously compounded rates of return on the share over a specified period. That is the same as the standard deviation of the differences in the natural logarithms of the stock prices plus dividends, if any, over the period." } } }, "auth_ref": [ "r341" ] }, "us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsTables" ], "lang": { "en-us": { "role": { "label": "Schedule of Finite-Lived Intangible Assets, Net", "documentation": "Tabular disclosure of assets, excluding financial assets and goodwill, lacking physical substance with a finite life, by either major class or business segment." } } }, "auth_ref": [ "r50", "r52" ] }, "us-gaap_AllocatedShareBasedCompensationExpense": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AllocatedShareBasedCompensationExpense", "crdr": "debit", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansAllocationOfRecognizedPeriodCostsDetails" ], "lang": { "en-us": { "role": { "label": "Stock-based compensation expenses", "documentation": "Amount of expense for award under share-based payment arrangement. Excludes amount capitalized." } } }, "auth_ref": [ "r345", "r354" ] }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate": { "xbrltype": "percentItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansValuationAssumptionsForEsppDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate", "terseLabel": "Risk-free interest rate", "documentation": "The risk-free interest rate assumption that is used in valuing an option on its own shares." } } }, "auth_ref": [ "r343" ] }, "us-gaap_StockholdersEquityNoteDisclosureTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "StockholdersEquityNoteDisclosureTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureStockholdersEquity" ], "lang": { "en-us": { "role": { "label": "Stockholders' Equity Note Disclosure [Text Block]", "terseLabel": "STOCKHOLDERS' EQUITY", "documentation": "The entire disclosure for equity." } } }, "auth_ref": [ "r107", "r169", "r266", "r268", "r269", "r270", "r271", "r272", "r273", "r274", "r275", "r276", "r277", "r278", "r279", "r394", "r547", "r549", "r562" ] }, "us-gaap_RelatedPartyTransactionsDisclosureTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "RelatedPartyTransactionsDisclosureTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureStrategicPartnershipAgreementWithAdvantestAndRelatedPartyTransactions" ], "lang": { "en-us": { "role": { "label": "Related Party Transactions Disclosure [Text Block]", "terseLabel": "STRATEGIC PARTNERSHIP AGREEMENT WITH ADVANTEST AND RELATED PARTY TRANSACTIONS", "documentation": "The entire disclosure for related party transactions. Examples of related party transactions include transactions between (a) a parent company and its subsidiary; (b) subsidiaries of a common parent; (c) and entity and its principal owners; and (d) affiliates." } } }, "auth_ref": [ "r418", "r419", "r420", "r422", "r423", "r484", "r485", "r486", "r527", "r528", "r529", "r548", "r550" ] }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue", "crdr": "debit", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansStockOptionsActivityDetails" ], "lang": { "en-us": { "role": { "label": "Vested and expected to vest, aggregate intrinsic value", "terseLabel": "Options Vested and Expected to Vest, Aggregate Intrinsic Value", "documentation": "Amount by which current fair value of underlying stock exceeds exercise price of fully vested and expected to vest options outstanding. Includes, but is not limited to, unvested options for which requisite service period has not been rendered but that are expected to vest based on achievement of performance condition, if forfeitures are recognized when they occur." } } }, "auth_ref": [ "r336" ] }, "us-gaap_StockholdersEquityNoteAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "StockholdersEquityNoteAbstract", "lang": { "en-us": { "role": { "label": "STOCKHOLDERS EQUITY" } } }, "auth_ref": [] }, "us-gaap_ContractWithCustomerLiabilityNoncurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ContractWithCustomerLiabilityNoncurrent", "crdr": "credit", "presentation": [ "http://www.pdf.com/role/DisclosureRevenueFromContractWithCustomersDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_ContractWithCustomerLiabilityNoncurrent", "terseLabel": "Contract with Customer, Liability, Noncurrent Revenue Deferred", "documentation": "Amount of obligation to transfer good or service to customer for which consideration has been received or is receivable, classified as noncurrent." } } }, "auth_ref": [ "r280", "r281", "r302" ] }, "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansNonvestedRestrictedStockUnitsActivityDetails", "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansOtherDetails" ], "lang": { "en-us": { "role": { "label": "Award Type [Domain]", "documentation": "Award under share-based payment arrangement." } } }, "auth_ref": [ "r316", "r317", "r318", "r320", "r321", "r322", "r323", "r324", "r325", "r326", "r327", "r328", "r329", "r330", "r331", "r332", "r333", "r334", "r335", "r336", "r337", "r340", "r341", "r342", "r343", "r344" ] }, "us-gaap_DebtSecuritiesAvailableForSaleUnrealizedGainLoss": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "DebtSecuritiesAvailableForSaleUnrealizedGainLoss", "crdr": "credit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveLoss": { "parentTag": "us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveLoss" ], "lang": { "en-us": { "role": { "label": "Debt Securities, Available-for-Sale, Unrealized Gain (Loss)", "terseLabel": "Change in unrealized gain (loss) related to available-for-sale debt securities, net of tax", "documentation": "Amount of unrealized gain (loss) on investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale)." } } }, "auth_ref": [ "r643", "r644" ] }, "dei_DocumentPeriodEndDate": { "xbrltype": "dateItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "DocumentPeriodEndDate", "presentation": [ "http://www.pdf.com/role/DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "label": "Document Period End Date", "documentation": "For the EDGAR submission types of Form 8-K: the date of the report, the date of the earliest event reported; for the EDGAR submission types of Form N-1A: the filing date; for all other submission types: the end of the reporting or transition period. The format of the date is YYYY-MM-DD." } } }, "auth_ref": [] }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice": { "xbrltype": "perShareItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansStockOptionsActivityDetails" ], "lang": { "en-us": { "role": { "label": "Vested and expected to vest, weighted average exercise price (in dollars per share)", "terseLabel": "Options Vested and Expected to Vest, Weighted Average Exercise Price", "documentation": "Weighted-average exercise price, at which grantee can acquire shares reserved for issuance, for fully vested and expected to vest options outstanding. Includes, but is not limited to, unvested options for which requisite service period has not been rendered but that are expected to vest based on achievement of performance condition, if forfeitures are recognized when they occur." } } }, "auth_ref": [ "r336" ] }, "dei_CoverAbstract": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "CoverAbstract", "lang": { "en-us": { "role": { "label": "Document and Entity Information", "documentation": "Cover page." } } }, "auth_ref": [] }, "us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued", "crdr": "credit", "presentation": [ "http://www.pdf.com/role/DisclosureIncomeTaxesDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued", "terseLabel": "Unrecognized tax benefits related to income tax penalties and interest accrued in long-term liabilities", "documentation": "Amount accrued for interest on an underpayment of income taxes and penalties related to a tax position claimed or expected to be claimed in the tax return." } } }, "auth_ref": [ "r363" ] }, "us-gaap_AccountsReceivableNetCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AccountsReceivableNetCurrent", "crdr": "debit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets": { "parentTag": "us-gaap_AssetsCurrent", "weight": 1.0, "order": 3.0 } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Accounts receivable, net", "terseLabel": "Accounts receivable, net of allowance for credit losses of $890 as of September 30, 2023 and December 31, 2022", "documentation": "Amount, after allowance for credit loss, of right to consideration from customer for product sold and service rendered in normal course of business, classified as current." } } }, "auth_ref": [ "r226", "r227" ] }, "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice": { "xbrltype": "perShareItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansStockOptionsActivityDetails" ], "lang": { "en-us": { "role": { "label": "Exercised, weighted average exercise price (in dollars per share)", "terseLabel": "Options Exercised, Weighted Average Exercise Price", "documentation": "Weighted average price at which option holders acquired shares when converting their stock options into shares." } } }, "auth_ref": [ "r325" ] }, "srt_StatementGeographicalAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/srt/2023", "localname": "StatementGeographicalAxis", "presentation": [ "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationLongLivedAssetsByGeographicAreaDetails", "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationRevenuesByGeographicAreaDetails", "http://www.pdf.com/role/DisclosureRevenueFromContractWithCustomersDetails" ], "lang": { "en-us": { "role": { "label": "Geographical [Axis]" } } }, "auth_ref": [ "r223", "r224", "r490", "r491", "r492", "r553", "r555", "r558", "r560", "r563", "r566", "r567", "r568", "r569", "r570", "r571", "r572", "r573", "r574", "r579", "r590", "r607", "r656", "r701" ] }, "us-gaap_CommitmentsAndContingenciesDisclosureTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "CommitmentsAndContingenciesDisclosureTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureCommitmentsAndContingencies" ], "lang": { "en-us": { "role": { "label": "Commitments and Contingencies Disclosure [Text Block]", "terseLabel": "COMMITMENTS AND CONTINGENCIES", "documentation": "The entire disclosure for commitments and contingencies." } } }, "auth_ref": [ "r106", "r250", "r251", "r565", "r650" ] }, "srt_SegmentGeographicalDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/srt/2023", "localname": "SegmentGeographicalDomain", "presentation": [ "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationLongLivedAssetsByGeographicAreaDetails", "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationRevenuesByGeographicAreaDetails", "http://www.pdf.com/role/DisclosureRevenueFromContractWithCustomersDetails" ], "lang": { "en-us": { "role": { "label": "Geographical [Domain]" } } }, "auth_ref": [ "r223", "r224", "r490", "r491", "r492", "r553", "r555", "r558", "r560", "r566", "r567", "r568", "r569", "r570", "r571", "r572", "r573", "r574", "r579", "r590", "r607", "r656", "r701" ] }, "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations", "crdr": "debit", "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations", "periodEndLabel": "Cash and cash equivalents at end of period", "periodStartLabel": "Cash and cash equivalents at beginning of period", "documentation": "Amount of cash and cash equivalents, and cash and cash equivalents restricted to withdrawal or usage; including, but not limited to, disposal group and discontinued operations. Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits. Cash equivalents include, but are not limited to, short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates." } } }, "auth_ref": [ "r31", "r97", "r168" ] }, "us-gaap_PurchaseObligation": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "PurchaseObligation", "crdr": "credit", "presentation": [ "http://www.pdf.com/role/DisclosureCommitmentsAndContingenciesDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_PurchaseObligation", "terseLabel": "Purchase Obligation, Total", "documentation": "Minimum amount of purchase arrangement in which the entity has agreed to expend funds to procure goods or services from a supplier." } } }, "auth_ref": [] }, "us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationByAssetClassDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationByAssetClassDomain", "presentation": [ "http://www.pdf.com/role/DisclosureFairValueMeasurementsFairValueAssetsMeasuredOnRecurringBasisDetails" ], "lang": { "en-us": { "role": { "label": "Asset Class [Domain]", "documentation": "Class of asset." } } }, "auth_ref": [ "r11" ] }, "us-gaap_PaymentsForRepurchaseOfCommonStock": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "PaymentsForRepurchaseOfCommonStock", "crdr": "credit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities", "weight": -1.0, "order": 4.0 } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "us-gaap_PaymentsForRepurchaseOfCommonStock", "negatedLabel": "Repurchases of common stock", "documentation": "The cash outflow to reacquire common stock during the period." } } }, "auth_ref": [ "r29" ] }, "us-gaap_ShareBasedCompensation": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ShareBasedCompensation", "crdr": "debit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0, "order": 3.0 } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "us-gaap_ShareBasedCompensation", "verboseLabel": "Stock-based compensation expense", "documentation": "Amount of noncash expense for share-based payment arrangement." } } }, "auth_ref": [ "r5" ] }, "us-gaap_OtherAssetsNoncurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "OtherAssetsNoncurrent", "crdr": "debit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets": { "parentTag": "us-gaap_Assets", "weight": 1.0, "order": 7.0 } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Other non-current assets", "documentation": "Amount of noncurrent assets classified as other." } } }, "auth_ref": [ "r149" ] }, "us-gaap_AccretionAmortizationOfDiscountsAndPremiumsInvestments": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AccretionAmortizationOfDiscountsAndPremiumsInvestments", "crdr": "credit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": -1.0, "order": 6.0 } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "us-gaap_AccretionAmortizationOfDiscountsAndPremiumsInvestments", "negatedLabel": "Net (accretion of discounts) and amortization of premiums on short-term investments", "documentation": "The sum of the periodic adjustments of the differences between securities' face values and purchase prices that are charged against earnings. This is called accretion if the security was purchased at a discount and amortization if it was purchased at premium. As a noncash item, this element is an adjustment to net income when calculating cash provided by or used in operations using the indirect method." } } }, "auth_ref": [ "r99" ] }, "us-gaap_StockholdersEquity": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "StockholdersEquity", "crdr": "credit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets": { "parentTag": "us-gaap_LiabilitiesAndStockholdersEquity", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets", "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfStockholdersEquity" ], "lang": { "en-us": { "role": { "label": "us-gaap_StockholdersEquity", "periodEndLabel": "Balances", "periodStartLabel": "Balances", "totalLabel": "Total stockholders' equity", "documentation": "Amount of equity (deficit) attributable to parent. Excludes temporary equity and equity attributable to noncontrolling interest." } } }, "auth_ref": [ "r81", "r84", "r85", "r101", "r505", "r522", "r545", "r546", "r604", "r611", "r634", "r645", "r685", "r704" ] }, "us-gaap_CostOfSalesPolicyTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "CostOfSalesPolicyTextBlock", "presentation": [ "http://www.pdf.com/role/DisclosureSignificantAccountingPoliciesPolicies" ], "lang": { "en-us": { "role": { "label": "Cost of Revenues, Policy", "terseLabel": "Costs to obtain or fulfill a contract", "documentation": "Disclosure of accounting policy for cost of product sold and service rendered." } } }, "auth_ref": [ "r624" ] }, "us-gaap_ProceedsFromStockOptionsExercised": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ProceedsFromStockOptionsExercised", "crdr": "debit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Proceeds from exercise of stock options", "documentation": "Amount of cash inflow from exercise of option under share-based payment arrangement." } } }, "auth_ref": [ "r3", "r14" ] }, "srt_RangeAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/srt/2023", "localname": "RangeAxis", "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsIntangibleAssetsDetails", "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansOtherDetails" ], "lang": { "en-us": { "role": { "label": "Statistical Measurement [Axis]" } } }, "auth_ref": [ "r252", "r253", "r254", "r255", "r305", "r313", "r341", "r342", "r343", "r427", "r428", "r472", "r493", "r494", "r552", "r554", "r556", "r557", "r559", "r575", "r576", "r584", "r588", "r598", "r606", "r607", "r649", "r655", "r693", "r694", "r696", "r697", "r698" ] }, "us-gaap_CostOfRevenue": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "CostOfRevenue", "crdr": "debit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveLoss": { "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest", "weight": -1.0, "order": 2.0 } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveLoss" ], "lang": { "en-us": { "role": { "label": "Costs of revenues", "documentation": "The aggregate cost of goods produced and sold and services rendered during the reporting period." } } }, "auth_ref": [ "r92", "r170", "r233", "r256", "r257", "r258", "r259", "r260", "r261", "r262", "r263", "r264", "r399", "r653" ] }, "us-gaap_ImpairmentOfIntangibleAssetsFinitelived": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ImpairmentOfIntangibleAssetsFinitelived", "crdr": "debit", "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_ImpairmentOfIntangibleAssetsFinitelived", "terseLabel": "Impairment of Intangible Assets, Finite-lived", "documentation": "The amount of impairment loss recognized in the period resulting from the write-down of the carrying amount of a finite-lived intangible asset to fair value." } } }, "auth_ref": [ "r633", "r648" ] }, "us-gaap_AmortizationOfIntangibleAssets": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AmortizationOfIntangibleAssets", "crdr": "debit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveLoss": { "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest", "weight": -1.0, "order": 5.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsDetails", "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveLoss" ], "lang": { "en-us": { "role": { "label": "us-gaap_AmortizationOfIntangibleAssets", "terseLabel": "Amortization of acquired intangible assets", "verboseLabel": "Amortization of acquired intangible assets presented separately under Costs and Expenses", "documentation": "The aggregate expense charged against earnings to allocate the cost of intangible assets (nonphysical assets not used in production) in a systematic and rational manner to the periods expected to benefit from such assets. As a noncash expense, this element is added back to net income when calculating cash provided by or used in operations using the indirect method." } } }, "auth_ref": [ "r6", "r49", "r53" ] }, "srt_MaximumMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/srt/2023", "localname": "MaximumMember", "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsIntangibleAssetsDetails", "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansOtherDetails" ], "lang": { "en-us": { "role": { "label": "Maximum" } } }, "auth_ref": [ "r252", "r253", "r254", "r255", "r313", "r428", "r472", "r493", "r494", "r552", "r554", "r556", "r557", "r559", "r575", "r576", "r584", "r588", "r598", "r606", "r655", "r692", "r693", "r694", "r696", "r697", "r698" ] }, "srt_RangeMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/srt/2023", "localname": "RangeMember", "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsIntangibleAssetsDetails", "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansOtherDetails" ], "lang": { "en-us": { "role": { "label": "Statistical Measurement [Domain]" } } }, "auth_ref": [ "r252", "r253", "r254", "r255", "r305", "r313", "r341", "r342", "r343", "r427", "r428", "r472", "r493", "r494", "r552", "r554", "r556", "r557", "r559", "r575", "r576", "r584", "r588", "r598", "r606", "r607", "r649", "r655", "r693", "r694", "r696", "r697", "r698" ] }, "us-gaap_GeographicConcentrationRiskMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "GeographicConcentrationRiskMember", "presentation": [ "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationRevenuesByGeographicAreaDetails", "http://www.pdf.com/role/DisclosureRevenueFromContractWithCustomersDetails" ], "lang": { "en-us": { "role": { "label": "Geographic Concentration Risk", "documentation": "Reflects the percentage that a specified dollar value on the balance sheet or income statement in the period from one or more specified geographic areas is to a corresponding consolidated, segment, or product line amount. Risk is the materially adverse effects of economic decline or antagonistic political actions resulting in loss of assets, sales volume, labor supply, or source of materials and supplies in a US state or a specified country, continent, or region such as EMEA (Europe, Middle East, Africa)." } } }, "auth_ref": [ "r40", "r564" ] }, "us-gaap_AmortizationOfAcquisitionCosts": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AmortizationOfAcquisitionCosts", "crdr": "debit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0, "order": 4.0 } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Amortization of Acquisition Costs", "terseLabel": "Amortization of acquired intangible assets", "documentation": "The amount of expense recognized in the current period that reflects the allocation of capitalized costs associated with acquisition of business. As a noncash expense, this element is added back to net income when calculating cash provided by or used in operations using the indirect method." } } }, "auth_ref": [ "r6", "r49" ] }, "us-gaap_RetainedEarningsAccumulatedDeficit": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "RetainedEarningsAccumulatedDeficit", "crdr": "credit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets": { "parentTag": "us-gaap_StockholdersEquity", "weight": 1.0, "order": 4.0 } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Accumulated deficit", "documentation": "Amount of accumulated undistributed earnings (deficit)." } } }, "auth_ref": [ "r83", "r108", "r456", "r476", "r478", "r482", "r504", "r604" ] }, "srt_MinimumMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/srt/2023", "localname": "MinimumMember", "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsIntangibleAssetsDetails" ], "lang": { "en-us": { "role": { "label": "Minimum" } } }, "auth_ref": [ "r252", "r253", "r254", "r255", "r313", "r428", "r472", "r493", "r494", "r552", "r554", "r556", "r557", "r559", "r575", "r576", "r584", "r588", "r598", "r606", "r655", "r692", "r693", "r694", "r696", "r697", "r698" ] }, "us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis", "presentation": [ "http://www.pdf.com/role/DisclosureRevenueFromContractWithCustomersAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date [Axis]", "documentation": "Start date of time band for expected timing of satisfaction of remaining performance obligation, in YYYY-MM-DD format." } } }, "auth_ref": [ "r136" ] }, "us-gaap_UnrecognizedTaxBenefits": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "UnrecognizedTaxBenefits", "crdr": "credit", "presentation": [ "http://www.pdf.com/role/DisclosureIncomeTaxesDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_UnrecognizedTaxBenefits", "terseLabel": "Unrecognized Tax Benefits, Ending Balance", "documentation": "Amount of unrecognized tax benefits." } } }, "auth_ref": [ "r357", "r364" ] }, "us-gaap_OperatingLeasePayments": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "OperatingLeasePayments", "crdr": "credit", "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Cash paid for amounts included in the measurement of operating lease liabilities", "documentation": "Amount of cash outflow from operating lease, excluding payments to bring another asset to condition and location necessary for its intended use." } } }, "auth_ref": [ "r409", "r412" ] }, "us-gaap_AccountsPayableCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AccountsPayableCurrent", "crdr": "credit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets": { "parentTag": "us-gaap_LiabilitiesCurrent", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "Accounts payable", "documentation": "Carrying value as of the balance sheet date of liabilities incurred (and for which invoices have typically been received) and payable to vendors for goods and services received that are used in an entity's business. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer)." } } }, "auth_ref": [ "r15", "r604" ] }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardMaximumEmployeeSubscriptionRate": { "xbrltype": "percentItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardMaximumEmployeeSubscriptionRate", "presentation": [ "http://www.pdf.com/role/DisclosureEmployeeBenefitPlansOtherDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardMaximumEmployeeSubscriptionRate", "terseLabel": "ESPP, Employee Contribution Rate (Percentage of Compensation)", "documentation": "The highest percentage of annual salary that an employee is permitted to utilize with respect to the plan." } } }, "auth_ref": [ "r58" ] }, "srt_MajorCustomersAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/srt/2023", "localname": "MajorCustomersAxis", "presentation": [ "http://www.pdf.com/role/DisclosureCustomerAndGeographicInformationRevenuePercentageByMajorCustomersDetails", "http://www.pdf.com/role/DisclosureRevenueFromContractWithCustomersAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Customer [Axis]" } } }, "auth_ref": [ "r225", "r591", "r656", "r701", "r702" ] }, "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles", "crdr": "debit", "calculation": { "http://www.pdf.com/role/DisclosureBusinessCombinationFairValuesOfAssetsAcquiredAndLiabilitiesAssumedDetails": { "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssets", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://www.pdf.com/role/DisclosureBusinessCombinationFairValuesOfAssetsAcquiredAndLiabilitiesAssumedDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles", "terseLabel": "Fair value of intangible assets", "documentation": "The amount of identifiable intangible assets recognized as of the acquisition date." } } }, "auth_ref": [ "r66", "r67" ] }, "us-gaap_EarningsPerShareBasicAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "EarningsPerShareBasicAbstract", "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveLoss" ], "lang": { "en-us": { "role": { "label": "Earnings Per Share, Basic [Abstract]", "terseLabel": "Net income (loss) per share:" } } }, "auth_ref": [] }, "us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1": { "xbrltype": "durationItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1", "presentation": [ "http://www.pdf.com/role/DisclosureRevenueFromContractWithCustomersAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1", "terseLabel": "Revenue recognition, expected period to recognize more than half of remaining performance obligations", "documentation": "Period in which remaining performance obligation is expected to be recognized as revenue, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days." } } }, "auth_ref": [ "r136" ] }, "us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability", "crdr": "debit", "presentation": [ "http://www.pdf.com/role/DisclosureLeasesLeaseCostDetails", "http://www.pdf.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" ], "lang": { "en-us": { "role": { "label": "Operating lease ROU assets obtained (in thousands)", "terseLabel": "Operating lease liabilities arising from obtaining right-of-use assets", "documentation": "Amount of increase in right-of-use asset obtained in exchange for operating lease liability." } } }, "auth_ref": [ "r413", "r603" ] }, "us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "FiniteLivedIntangibleAssetsMajorClassNameDomain", "presentation": [ "http://www.pdf.com/role/DisclosureBalanceSheetComponentsIntangibleAssetsDetails", "http://www.pdf.com/role/DisclosureBusinessCombinationFairValuesOfAssetsAcquiredAndLiabilitiesAssumedDetails" ], "lang": { "en-us": { "role": { "label": "Finite-Lived Intangible Assets, Major Class Name [Domain]", "documentation": "The major class of finite-lived intangible asset (for example, patents, trademarks, copyrights, etc.) A major class is composed of intangible assets that can be grouped together because they are similar, either by their nature or by their use in the operations of a company." } } }, "auth_ref": [ "r50", "r52" ] }, "us-gaap_UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate", "crdr": "credit", "presentation": [ "http://www.pdf.com/role/DisclosureIncomeTaxesDetails" ], "lang": { "en-us": { "role": { "label": "us-gaap_UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate", "terseLabel": "Unrecognized Tax Benefits that Would Impact Effective Tax Rate", "documentation": "The total amount of unrecognized tax benefits that, if recognized, would affect the effective tax rate." } } }, "auth_ref": [ "r365" ] }, "us-gaap_CommonStockSharesIssued": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "CommonStockSharesIssued", "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheetsParentheticals" ], "lang": { "en-us": { "role": { "label": "Common stock, shares issued (in shares)", "documentation": "Total number of common shares of an entity that have been sold or granted to shareholders (includes common shares that were issued, repurchased and remain in the treasury). These shares represent capital invested by the firm's shareholders and owners, and may be all or only a portion of the number of shares authorized. Shares issued include shares outstanding and shares held in the treasury." } } }, "auth_ref": [ "r81" ] }, "us-gaap_Assets": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "Assets", "crdr": "debit", "calculation": { "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets": { "parentTag": null, "weight": null, "order": null, "root": true } }, "presentation": [ "http://www.pdf.com/role/StatementCondensedConsolidatedBalanceSheets" ], "lang": { "en-us": { "role": { "label": "us-gaap_Assets", "totalLabel": "Total assets", "documentation": "Sum of the carrying amounts as of the balance sheet date of all assets that are recognized. Assets are probable future economic benefits obtained or controlled by an entity as a result of past transactions or events." } } }, "auth_ref": [ "r120", "r150", "r170", "r203", "r212", "r217", "r233", "r256", "r257", "r258", "r259", "r260", "r261", "r262", "r263", "r264", "r382", "r386", "r399", "r451", "r516", "r604", "r611", "r653", "r654", "r690" ] } } } }, "std_ref": { "r0": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "25", "Paragraph": "1", "SubTopic": "20", "Topic": "940", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481913/940-20-25-1" }, "r1": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "SubTopic": "230", "Topic": "830", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481877/830-230-45-1" }, "r2": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "10A", "SubTopic": "10", "Topic": "220", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482790/220-10-45-10A" }, "r3": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "14", "Subparagraph": "(a)", "SubTopic": "10", "Topic": "230", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-14" }, "r4": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "20", "SubTopic": "10", "Topic": "810", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481231/810-10-45-20" }, "r5": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "28", "Subparagraph": "(a)", "SubTopic": "10", "Topic": "230", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-28" }, "r6": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "28", "Subparagraph": "(b)", "SubTopic": "10", "Topic": "230", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-28" }, "r7": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "SubTopic": "10", "Topic": "360", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482099/360-10-50-1" }, "r8": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1A", "Subparagraph": "(c)(3)", "SubTopic": "10", "Topic": "810", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481203/810-10-50-1A" }, "r9": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1A", "Subparagraph": "(c),(3)", "SubTopic": "10", "Topic": "810", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481203/810-10-50-1A" }, "r10": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "SubTopic": "10", "Topic": "505", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481112/505-10-50-2" }, "r11": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)", "SubTopic": "10", "Topic": "820", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482106/820-10-50-2" }, "r12": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(d)", "SubTopic": "10", "Topic": "718", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r13": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(e)", "SubTopic": "10", "Topic": "718", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r14": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2A", "Subparagraph": "(a)", "SubTopic": "10", "Topic": "718", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2A" }, "r15": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "210", "SubTopic": "10", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02.19(a))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r16": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "210", "SubTopic": "10", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02.19-26)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r17": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "210", "SubTopic": "10", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02.20)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r18": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "210", "SubTopic": "10", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02.21)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r19": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "210", "SubTopic": "10", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02.24)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r20": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "210", "SubTopic": "10", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02.25)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r21": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "210", "SubTopic": "10", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02.29)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r22": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "210", "SubTopic": "10", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02.29,30)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r23": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "210", "SubTopic": "10", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02.29-31)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r24": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "220", "SubTopic": "10", "Section": "45", "Paragraph": "14", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482790/220-10-45-14" }, "r25": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "220", "SubTopic": "10", "Section": "45", "Paragraph": "14A", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482790/220-10-45-14A" }, "r26": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "220", "SubTopic": "10", "Section": "45", "Paragraph": "5", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482790/220-10-45-5" }, "r27": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "230", "SubTopic": "10", "Section": "45", "Paragraph": "12", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-12" }, "r28": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "230", "SubTopic": "10", "Section": "45", "Paragraph": "13", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-13" }, "r29": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "230", "SubTopic": "10", "Section": "45", "Paragraph": "15", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-15" }, "r30": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "230", "SubTopic": "10", "Section": "45", "Paragraph": "25", "Subparagraph": "(f)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-25" }, "r31": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "230", "SubTopic": "10", "Section": "45", "Paragraph": "4", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-4" }, "r32": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "230", "SubTopic": "10", "Section": "50", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482913/230-10-50-2" }, "r33": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "230", "SubTopic": "10", "Section": "50", "Paragraph": "3", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482913/230-10-50-3" }, "r34": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "230", "SubTopic": "10", "Section": "50", "Paragraph": "4", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482913/230-10-50-4" }, "r35": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "230", "SubTopic": "10", "Section": "50", "Paragraph": "5", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482913/230-10-50-5" }, "r36": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "260", "SubTopic": "10", "Section": "50", "Paragraph": "1", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482662/260-10-50-1" }, "r37": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "260", "SubTopic": "10", "Section": "50", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482662/260-10-50-2" }, "r38": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "275", "SubTopic": "10", "Section": "50", "Paragraph": "18", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482861/275-10-50-18" }, "r39": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "275", "SubTopic": "10", "Section": "50", "Paragraph": "18", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482861/275-10-50-18" }, "r40": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "275", "SubTopic": "10", "Section": "50", "Paragraph": "18", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482861/275-10-50-18" }, "r41": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "275", "SubTopic": "10", "Section": "50", "Paragraph": "20", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482861/275-10-50-20" }, "r42": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "275", "SubTopic": "10", "Section": "50", "Paragraph": "4", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482861/275-10-50-4" }, "r43": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "275", "SubTopic": "10", "Section": "50", "Paragraph": "8", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482861/275-10-50-8" }, "r44": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "275", "SubTopic": "10", "Section": "50", "Paragraph": "9", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482861/275-10-50-9" }, "r45": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "280", "SubTopic": "10", "Section": "50", "Paragraph": "41", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-41" }, "r46": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "280", "SubTopic": "10", "Section": "50", "Paragraph": "41", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-41" }, "r47": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "280", "SubTopic": "10", "Section": "50", "Paragraph": "41", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-41" }, "r48": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "350", "SubTopic": "30", "Section": "45", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482686/350-30-45-1" }, "r49": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "350", "SubTopic": "30", "Section": "45", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482686/350-30-45-2" }, "r50": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "350", "SubTopic": "30", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482665/350-30-50-1" }, "r51": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "350", "SubTopic": "30", "Section": "50", "Paragraph": "2", "Subparagraph": "((a)(1),(b))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482665/350-30-50-2" }, "r52": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "350", "SubTopic": "30", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482665/350-30-50-2" }, "r53": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "350", "SubTopic": "30", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482665/350-30-50-2" }, "r54": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "360", "SubTopic": "10", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482099/360-10-50-1" }, "r55": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "360", "SubTopic": "10", "Section": "50", "Paragraph": "1", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482099/360-10-50-1" }, "r56": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "505", "SubTopic": "30", "Section": "45", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481549/505-30-45-1" }, "r57": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "505", "SubTopic": "30", "Section": "50", "Paragraph": "4", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481520/505-30-50-4" }, "r58": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "718", "SubTopic": "10", "Section": "50", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r59": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "718", "SubTopic": "10", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r60": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "718", "SubTopic": "10", "Section": "50", "Paragraph": "2", "Subparagraph": "(h)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r61": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "718", "SubTopic": "40", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480489/718-40-50-1" }, "r62": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "805", "SubTopic": "10", "Section": "05", "Paragraph": "4", "Subparagraph": "(a)-(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479515/805-10-05-4" }, "r63": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "805", "SubTopic": "10", "Section": "50", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479328/805-10-50-2" }, "r64": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "805", "SubTopic": "10", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479328/805-10-50-2" }, "r65": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "805", "SubTopic": "10", "Section": "50", "Paragraph": "3", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479328/805-10-50-3" }, "r66": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "805", "SubTopic": "10", "Section": "55", "Paragraph": "37", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479303/805-10-55-37" }, "r67": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "805", "SubTopic": "20", "Section": "50", "Paragraph": "1", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479907/805-20-50-1" }, "r68": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "805", "SubTopic": "20", "Section": "55", "Paragraph": "14", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479876/805-20-55-14" }, "r69": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "805", "SubTopic": "20", "Section": "55", "Paragraph": "14", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479876/805-20-55-14" }, "r70": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "805", "SubTopic": "20", "Section": "55", "Paragraph": "20", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479876/805-20-55-20" }, "r71": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "815", "SubTopic": "10", "Section": "50", "Paragraph": "4A", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480434/815-10-50-4A" }, "r72": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "815", "SubTopic": "10", "Section": "50", "Paragraph": "4B", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480434/815-10-50-4B" }, "r73": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "820", "SubTopic": "10", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482106/820-10-50-2" }, "r74": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "820", "SubTopic": "10", "Section": "50", "Paragraph": "3", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482106/820-10-50-3" }, "r75": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "825", "SubTopic": "10", "Section": "50", "Paragraph": "20", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482907/825-10-50-20" }, "r76": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "825", "SubTopic": "10", "Section": "50", "Paragraph": "21", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482907/825-10-50-21" }, "r77": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "942", "SubTopic": "210", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.9-03.17)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479853/942-210-S99-1" }, "r78": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "985", "SubTopic": "20", "Section": "50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481283/985-20-50-1" }, "r79": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(24))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r80": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(28))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r81": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(29))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r82": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(30)(a)(1))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r83": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(30)(a)(3))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r84": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(30))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r85": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(31))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r86": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(32))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r87": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "11", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482790/220-10-45-11" }, "r88": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.5-03(1))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483621/220-10-S99-2" }, "r89": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.5-03(10))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483621/220-10-S99-2" }, "r90": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.5-03(20))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483621/220-10-S99-2" }, "r91": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.5-03.1)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483621/220-10-S99-2" }, "r92": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.5-03.2)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483621/220-10-S99-2" }, "r93": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.5-03.4)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483621/220-10-S99-2" }, "r94": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.5-03.7(b))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483621/220-10-S99-2" }, "r95": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "230", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "13", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-13" }, "r96": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "230", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "13", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-13" }, "r97": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "230", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "24", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-24" }, "r98": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "230", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "25", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-25" }, "r99": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "230", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "28", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-28" }, "r100": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "235", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org//235/tableOfContent" }, "r101": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "310", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SAB Topic 4.E)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480418/310-10-S99-2" }, "r102": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482665/350-30-50-1" }, "r103": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482665/350-30-50-2" }, "r104": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482665/350-30-50-2" }, "r105": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "360", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482099/360-10-50-1" }, "r106": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "440", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org//440/tableOfContent" }, "r107": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "505", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org//505/tableOfContent" }, "r108": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "505", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.3-04)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480008/505-10-S99-1" }, "r109": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "505", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "25", "Paragraph": "5", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481138/505-30-25-5" }, "r110": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "710", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org//710/tableOfContent" }, "r111": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "712", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org//712/tableOfContent" }, "r112": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "715", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org//715/tableOfContent" }, "r113": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "718", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org//718/tableOfContent" }, "r114": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "718", "SubTopic": "10", "Subparagraph": "(e)(1)", "Name": "Accounting Standards Codification", "Paragraph": "2", "Section": "50", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r115": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "718", "SubTopic": "10", "Subparagraph": "(f)(2)", "Name": "Accounting Standards Codification", "Paragraph": "2", "Section": "50", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r116": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SAB Topic 6.I.7)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479360/740-10-S99-1" }, "r117": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "805", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org//805/tableOfContent" }, "r118": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "805", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "38", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479876/805-20-55-38" }, "r119": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "810", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "19", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481231/810-10-45-19" }, "r120": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "942", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.9-03(11))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479853/942-210-S99-1" }, "r121": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "942", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.9-03(15)(1))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479853/942-210-S99-1" }, "r122": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "942", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.9-03(23))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479853/942-210-S99-1" }, "r123": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "942", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.9-03(4))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479853/942-210-S99-1" }, "r124": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "942", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.9-03(5))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479853/942-210-S99-1" }, "r125": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "942", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.9-04(15))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483589/942-220-S99-1" }, "r126": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "942", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.9-04(22))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483589/942-220-S99-1" }, "r127": { "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "11B", "Subparagraph": "(b)", "SubTopic": "10", "Topic": "310", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481962/310-10-50-11B" }, "r128": { "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "15", "Subparagraph": "(d)", "SubTopic": "10", "Topic": "310", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481962/310-10-50-15" }, "r129": { "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "SubTopic": "10", "Topic": "310", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481962/310-10-50-6" }, "r130": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "2", "Subparagraph": "(a)", "SubTopic": "20", "Topic": "740", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482659/740-20-45-2" }, "r131": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)", "SubTopic": "10", "Topic": "275", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482861/275-10-50-1" }, "r132": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(c)", "SubTopic": "10", "Topic": "275", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482861/275-10-50-1" }, "r133": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "11", "SubTopic": "10", "Topic": "275", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482861/275-10-50-11" }, "r134": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "12", "SubTopic": "10", "Topic": "275", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482861/275-10-50-12" }, "r135": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "13", "Subparagraph": "(a)", "SubTopic": "10", "Topic": "606", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-13" }, "r136": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "13", "Subparagraph": "(b)(1)", "SubTopic": "10", "Topic": "606", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-13" }, "r137": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "9", "Subparagraph": "(b)", "SubTopic": "10", "Topic": "740", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-9" }, "r138": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.4-08(h))", "SubTopic": "10", "Topic": "235", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480678/235-10-S99-1" }, "r139": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Accounting Standards Codification", "Topic": "606", "Publisher": "FASB", "URI": "https://asc.fasb.org//606/tableOfContent" }, "r140": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "105", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "6", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479343/105-10-65-6" }, "r141": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "205", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483499/205-20-50-7" }, "r142": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483467/210-10-45-1" }, "r143": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "5", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483467/210-10-45-5" }, "r144": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(1))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r145": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(13))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r146": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(14))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r147": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(15))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r148": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(16))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r149": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(17))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r150": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(18))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r151": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(3)(a)(4))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r152": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(30)(a)(4))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r153": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(4))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r154": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(9))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r155": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1A", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482790/220-10-45-1A" }, "r156": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1A", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482790/220-10-45-1A" }, "r157": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1A", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482790/220-10-45-1A" }, "r158": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1B", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482790/220-10-45-1B" }, "r159": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1B", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482790/220-10-45-1B" }, "r160": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482765/220-10-50-4" }, "r161": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482765/220-10-50-5" }, "r162": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482765/220-10-50-6" }, "r163": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.5-03(24))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483621/220-10-S99-2" }, "r164": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.5-03(25))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483621/220-10-S99-2" }, "r165": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "230", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "15", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-15" }, "r166": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "230", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-2" }, "r167": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "230", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "24", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-24" }, "r168": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "230", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "8", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482913/230-10-50-8" }, "r169": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "235", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.4-08(e)(1))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480678/235-10-S99-1" }, "r170": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "235", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.4-08(g)(1)(ii))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480678/235-10-S99-1" }, "r171": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "235", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.4-08(h)(2))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480678/235-10-S99-1" }, "r172": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "23", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483421/250-10-45-23" }, "r173": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "24", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483421/250-10-45-24" }, "r174": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "5", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483421/250-10-45-5" }, "r175": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483443/250-10-50-1" }, "r176": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483443/250-10-50-1" }, "r177": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "11", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483443/250-10-50-11" }, "r178": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "11", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483443/250-10-50-11" }, "r179": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483443/250-10-50-3" }, "r180": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483443/250-10-50-4" }, "r181": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483443/250-10-50-7" }, "r182": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483443/250-10-50-7" }, "r183": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "8", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483443/250-10-50-8" }, "r184": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "9", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483443/250-10-50-9" }, "r185": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "5", "Subparagraph": "(SAB Topic 11.M.Q2)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480530/250-10-S99-5" }, "r186": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "260", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org//260/tableOfContent" }, "r187": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "260", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "10", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482689/260-10-45-10" }, "r188": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "260", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "16", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482689/260-10-45-16" }, "r189": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "260", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482689/260-10-45-2" }, "r190": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "260", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "60B", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482689/260-10-45-60B" }, "r191": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "260", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "60B", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482689/260-10-45-60B" }, "r192": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "260", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "7", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482689/260-10-45-7" }, "r193": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "260", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482662/260-10-50-1" }, "r194": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "260", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482662/260-10-50-1" }, "r195": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "260", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482662/260-10-50-2" }, "r196": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "260", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482662/260-10-50-3" }, "r197": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "260", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "15", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482635/260-10-55-15" }, "r198": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "272", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483014/272-10-45-1" }, "r199": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org//280/tableOfContent" }, "r200": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "15", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-15" }, "r201": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "21", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-21" }, "r202": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "21", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-21" }, "r203": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "22", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-22" }, "r204": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "22", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-22" }, "r205": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "22", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-22" }, "r206": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "22", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-22" }, "r207": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "22", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-22" }, "r208": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "22", "Subparagraph": "(h)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-22" }, "r209": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "26", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-26" }, "r210": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "30", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-30" }, "r211": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "30", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-30" }, "r212": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "30", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-30" }, "r213": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "31", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-31" }, "r214": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "32", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-32" }, "r215": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "32", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-32" }, "r216": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "32", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-32" }, "r217": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "32", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-32" }, "r218": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "32", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-32" }, "r219": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "32", "Subparagraph": "(f)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-32" }, "r220": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "34", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-34" }, "r221": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "40", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-40" }, "r222": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "41", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-41" }, "r223": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "41", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-41" }, "r224": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "41", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-41" }, "r225": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "42", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-42" }, "r226": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "310", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481990/310-10-45-2" }, "r227": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "310", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "9", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481990/310-10-45-9" }, "r228": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "310", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481962/310-10-50-1" }, "r229": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "310", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481962/310-10-50-2" }, "r230": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "310", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481962/310-10-50-4" }, "r231": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "310", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481569/310-20-50-1" }, "r232": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "320", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(aa)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-2" }, "r233": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "323", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481687/323-10-50-3" }, "r234": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "326", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "4", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479654/326-10-65-4" }, "r235": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "326", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "5", "Subparagraph": "(c)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479654/326-10-65-5" }, "r236": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "326", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479344/326-20-45-1" }, "r237": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "326", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479130/326-30-45-1" }, "r238": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "340", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479483/340-40-50-3" }, "r239": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "340", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479483/340-40-50-3" }, "r240": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482598/350-20-45-1" }, "r241": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482598/350-20-45-2" }, "r242": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482573/350-20-50-1" }, "r243": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482573/350-20-50-2" }, "r244": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482665/350-30-50-1" }, "r245": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482665/350-30-50-1" }, "r246": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482665/350-30-50-2" }, "r247": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482665/350-30-50-2" }, "r248": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "360", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482099/360-10-50-3" }, "r249": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "420", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482017/420-10-50-1" }, "r250": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "440", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482648/440-10-50-4" }, "r251": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "440", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482648/440-10-50-4" }, "r252": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "450", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483076/450-20-50-4" }, "r253": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "450", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "9", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483076/450-20-50-9" }, "r254": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "450", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SAB Topic 5.Y.Q2)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480102/450-20-S99-1" }, "r255": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "450", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SAB Topic 5.Y.Q4)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480102/450-20-S99-1" }, "r256": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1A", "Subparagraph": "(SX 210.13-01(a)(4)(i))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480097/470-10-S99-1A" }, "r257": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1A", "Subparagraph": "(SX 210.13-01(a)(4)(iii)(A))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480097/470-10-S99-1A" }, "r258": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1A", "Subparagraph": "(SX 210.13-01(a)(4)(iv))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480097/470-10-S99-1A" }, "r259": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1A", "Subparagraph": "(SX 210.13-01(a)(5))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480097/470-10-S99-1A" }, "r260": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1B", "Subparagraph": "(SX 210.13-02(a)(4)(i))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480097/470-10-S99-1B" }, "r261": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1B", "Subparagraph": "(SX 210.13-02(a)(4)(iii)(A))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480097/470-10-S99-1B" }, "r262": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1B", "Subparagraph": "(SX 210.13-02(a)(4)(iii)(B))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480097/470-10-S99-1B" }, "r263": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1B", "Subparagraph": "(SX 210.13-02(a)(4)(iv))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480097/470-10-S99-1B" }, "r264": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1B", "Subparagraph": "(SX 210.13-02(a)(5))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480097/470-10-S99-1B" }, "r265": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1D", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1D" }, "r266": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "505", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "13", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481112/505-10-50-13" }, "r267": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "505", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "13", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481112/505-10-50-13" }, "r268": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "505", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "13", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481112/505-10-50-13" }, "r269": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "505", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "13", "Subparagraph": "(g)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481112/505-10-50-13" }, "r270": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "505", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "13", "Subparagraph": "(h)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481112/505-10-50-13" }, "r271": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "505", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "13", "Subparagraph": "(i)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481112/505-10-50-13" }, "r272": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "505", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "14", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481112/505-10-50-14" }, "r273": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "505", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "14", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481112/505-10-50-14" }, "r274": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "505", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "14", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481112/505-10-50-14" }, "r275": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "505", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "16", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481112/505-10-50-16" }, "r276": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "505", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "18", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481112/505-10-50-18" }, "r277": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "505", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "18", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481112/505-10-50-18" }, "r278": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "505", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "18", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481112/505-10-50-18" }, "r279": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "505", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.3-04)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480008/505-10-S99-1" }, "r280": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479837/606-10-45-1" }, "r281": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479837/606-10-45-2" }, "r282": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "3", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479837/606-10-45-3" }, "r283": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "10", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-10" }, "r284": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "12", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-12" }, "r285": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "12", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-12" }, "r286": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "12", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-12" }, "r287": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "12", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-12" }, "r288": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "12", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-12" }, "r289": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "12A", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-12A" }, "r290": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "13", "Subparagraph": "(b)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-13" }, "r291": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "15", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-15" }, "r292": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "17", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-17" }, "r293": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "18", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-18" }, "r294": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "18", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-18" }, "r295": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "19", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-19" }, "r296": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "20", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-20" }, "r297": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "20", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-20" }, "r298": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "20", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-20" }, "r299": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "20", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-20" }, "r300": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-4" }, "r301": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-5" }, "r302": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "8", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-8" }, "r303": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "8", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-8" }, "r304": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "9", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-9" }, "r305": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(d)(i)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1" }, "r306": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(d)(iv)(01)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1" }, "r307": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(d)(iv)(02)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1" }, "r308": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(d)(iv)(02)(A)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1" }, "r309": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(d)(iv)(02)(B)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1" }, "r310": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(d)(iv)(02)(C)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1" }, "r311": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(d)(iv)(03)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1" }, "r312": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(n)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1" }, "r313": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "80", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480576/715-80-50-5" }, "r314": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "80", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Subparagraph": "(f)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480576/715-80-50-5" }, "r315": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org//718/tableOfContent" }, "r316": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r317": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r318": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r319": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r320": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(1)(i)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r321": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(1)(ii)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r322": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(1)(iii)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r323": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(1)(iv)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r324": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(1)(iv)(01)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r325": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(1)(iv)(02)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r326": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(1)(iv)(03)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r327": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(1)(iv)(04)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r328": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(2)(i)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r329": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(2)(ii)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r330": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(2)(iii)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r331": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(2)(iii)(01)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r332": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(2)(iii)(02)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r333": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(2)(iii)(03)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r334": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(d)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r335": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(d)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r336": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(e)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r337": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(e)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r338": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(f)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r339": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(f)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r340": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(f)(2)(i)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r341": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(f)(2)(ii)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r342": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(f)(2)(iii)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r343": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(f)(2)(iv)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r344": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(f)(2)(v)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r345": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(h)(1)(i)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r346": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(i)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r347": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "15", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480336/718-10-65-15" }, "r348": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "15", "Subparagraph": "(f)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480336/718-10-65-15" }, "r349": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "15", "Subparagraph": "(f)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480336/718-10-65-15" }, "r350": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SAB Topic 14.C.Q3)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479830/718-10-S99-1" }, "r351": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SAB Topic 14.D.1.Q5)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479830/718-10-S99-1" }, "r352": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SAB Topic 14.D.2.Q6)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479830/718-10-S99-1" }, "r353": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SAB Topic 14.D.3.Q2)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479830/718-10-S99-1" }, "r354": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SAB Topic 14.F)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479830/718-10-S99-1" }, "r355": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "730", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482916/730-10-50-1" }, "r356": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org//740/tableOfContent" }, "r357": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "10B", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482525/740-10-45-10B" }, "r358": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "4", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482525/740-10-45-4" }, "r359": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "6", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482525/740-10-45-6" }, "r360": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "10", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-10" }, "r361": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "12", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-12" }, "r362": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "14", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-14" }, "r363": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "15", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-15" }, "r364": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "15A", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-15A" }, "r365": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "15A", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-15A" }, "r366": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "17", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-17" }, "r367": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-2" }, "r368": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "21", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-21" }, "r369": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "8", "Subparagraph": "(d)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482615/740-10-65-8" }, "r370": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "8", "Subparagraph": "(d)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482615/740-10-65-8" }, "r371": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SAB TOPIC 6.I.5.Q1)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479360/740-10-S99-1" }, "r372": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SAB TOPIC 6.I.7)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479360/740-10-S99-1" }, "r373": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SAB Topic 6.I.Fact.1)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479360/740-10-S99-1" }, "r374": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SAB Topic 6.I.Fact.2)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479360/740-10-S99-1" }, "r375": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SAB Topic 11.C)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479360/740-10-S99-2" }, "r376": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "270", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482526/740-270-50-1" }, "r377": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482603/740-30-50-2" }, "r378": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "805", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479907/805-20-50-5" }, "r379": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "805", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479907/805-20-50-5" }, "r380": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "805", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479581/805-30-50-1" }, "r381": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "810", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "19", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481231/810-10-45-19" }, "r382": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "810", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "25", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481231/810-10-45-25" }, "r383": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "810", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "25", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481231/810-10-45-25" }, "r384": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "810", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1A", "Subparagraph": "(a)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481203/810-10-50-1A" }, "r385": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "810", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1A", "Subparagraph": "(c)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481203/810-10-50-1A" }, "r386": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "810", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(bb)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481203/810-10-50-3" }, "r387": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "810", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481203/810-10-50-3" }, "r388": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "815", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "6", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480528/815-20-65-6" }, "r389": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "815", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "6", "Subparagraph": "(h)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480528/815-20-65-6" }, "r390": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "815", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "6", "Subparagraph": "(h)(1)(i)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480528/815-20-65-6" }, "r391": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "815", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "6", "Subparagraph": "(h)(1)(iii)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480528/815-20-65-6" }, "r392": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "815", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "6", "Subparagraph": "(h)(1)(iv)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480528/815-20-65-6" }, "r393": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "815", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "6", "Subparagraph": "(i)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480528/815-20-65-6" }, "r394": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "815", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480237/815-40-50-6" }, "r395": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "815", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "1", "Subparagraph": "(e)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480175/815-40-65-1" }, "r396": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "815", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "1", "Subparagraph": "(e)(4)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480175/815-40-65-1" }, "r397": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "815", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "1", "Subparagraph": "(f)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480175/815-40-65-1" }, "r398": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "820", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482106/820-10-50-2" }, "r399": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "825", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "28", "Subparagraph": "(f)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482907/825-10-50-28" }, "r400": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "830", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "17", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481694/830-30-45-17" }, "r401": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "830", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "20", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481694/830-30-45-20" }, "r402": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "830", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "20", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481694/830-30-45-20" }, "r403": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "830", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "20", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481694/830-30-45-20" }, "r404": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "830", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "20", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481694/830-30-45-20" }, "r405": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "830", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481674/830-30-50-1" }, "r406": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "842", "SubTopic": "20", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org//842-20/tableOfContent" }, "r407": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "842", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479041/842-20-45-1" }, "r408": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "842", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479041/842-20-45-1" }, "r409": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "842", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "5", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479041/842-20-45-5" }, "r410": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "842", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147478964/842-20-50-4" }, "r411": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "842", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147478964/842-20-50-4" }, "r412": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "842", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(g)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147478964/842-20-50-4" }, "r413": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "842", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(g)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147478964/842-20-50-4" }, "r414": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "842", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(g)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147478964/842-20-50-4" }, "r415": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "842", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(g)(4)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147478964/842-20-50-4" }, "r416": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "842", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147478964/842-20-50-6" }, "r417": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "848", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(a)(3)(iii)(03)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483550/848-10-65-2" }, "r418": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "850", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org//850/tableOfContent" }, "r419": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "850", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483326/850-10-50-1" }, "r420": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "850", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483326/850-10-50-1" }, "r421": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "850", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483326/850-10-50-1" }, "r422": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "850", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483326/850-10-50-1" }, "r423": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "850", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483326/850-10-50-6" }, "r424": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "860", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(bb)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481326/860-20-50-3" }, "r425": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "860", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(bb)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481326/860-20-50-3" }, "r426": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "860", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(bb)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481326/860-20-50-3" }, "r427": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "860", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(c)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481326/860-20-50-3" }, "r428": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "910", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482546/910-10-50-6" }, "r429": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "912", "SubTopic": "310", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "11", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482312/912-310-45-11" }, "r430": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "924", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SAB Topic 11.L)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479941/924-10-S99-1" }, "r431": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "926", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483154/926-20-50-5" }, "r432": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "928", "SubTopic": "340", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483147/928-340-50-1" }, "r433": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "15", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482274/932-235-50-15" }, "r434": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "15", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482274/932-235-50-15" }, "r435": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "20", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482274/932-235-50-20" }, "r436": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "20", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482274/932-235-50-20" }, "r437": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "28", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482274/932-235-50-28" }, "r438": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "28", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482274/932-235-50-28" }, "r439": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "33", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482274/932-235-50-33" }, "r440": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "33", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482274/932-235-50-33" }, "r441": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "35A", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482274/932-235-50-35A" }, "r442": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "35A", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482274/932-235-50-35A" }, "r443": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "8", "Subparagraph": "(c)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482274/932-235-50-8" }, "r444": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "8", "Subparagraph": "(c)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482274/932-235-50-8" }, "r445": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "942", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.9-03(10)(1))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479853/942-210-S99-1" }, "r446": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "942", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.9-03(6))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479853/942-210-S99-1" }, "r447": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "942", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.9-04(26))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483589/942-220-S99-1" }, "r448": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "942", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.9-04(27))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483589/942-220-S99-1" }, "r449": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "942", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.9-05(b)(2))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479557/942-235-S99-1" }, "r450": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "942", "SubTopic": "360", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480842/942-360-50-1" }, "r451": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-03(a)(12))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479440/944-210-S99-1" }, "r452": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-03(a)(19))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479440/944-210-S99-1" }, "r453": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-03(a)(21))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479440/944-210-S99-1" }, "r454": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-03(a)(22))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479440/944-210-S99-1" }, "r455": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-03(a)(23)(a)(3))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479440/944-210-S99-1" }, "r456": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-03(a)(23)(a)(4))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479440/944-210-S99-1" }, "r457": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-03(a)(25))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479440/944-210-S99-1" }, "r458": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-03(a)(8)(b))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479440/944-210-S99-1" }, "r459": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-03(a)(8))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479440/944-210-S99-1" }, "r460": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-04(11))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483586/944-220-S99-1" }, "r461": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-04(16))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483586/944-220-S99-1" }, "r462": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-04(18))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483586/944-220-S99-1" }, "r463": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-04(22))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483586/944-220-S99-1" }, "r464": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-04(23))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483586/944-220-S99-1" }, "r465": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-04(9))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483586/944-220-S99-1" }, "r466": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.12-17(Column A))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480149/944-235-S99-2" }, "r467": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.12-17(Column B))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480149/944-235-S99-2" }, "r468": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.12-17(Column C))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480149/944-235-S99-2" }, "r469": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.12-17(Column D))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480149/944-235-S99-2" }, "r470": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.12-17(Column E))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480149/944-235-S99-2" }, "r471": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.12-17(Column F))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480149/944-235-S99-2" }, "r472": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7A", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480081/944-40-50-7A" }, "r473": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480016/944-40-65-2" }, "r474": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(f)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480016/944-40-65-2" }, "r475": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(f)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480016/944-40-65-2" }, "r476": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(g)(2)(i)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480016/944-40-65-2" }, "r477": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(g)(2)(ii)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480016/944-40-65-2" }, "r478": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(h)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480016/944-40-65-2" }, "r479": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "825", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1B", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479383/944-825-50-1B" }, "r480": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3", "Subparagraph": "(SX 210.6-03(d))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479886/946-10-S99-3" }, "r481": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3", "Subparagraph": "(SX 210.6-03(i)(2))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479886/946-10-S99-3" }, "r482": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "11", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480990/946-20-50-11" }, "r483": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "13", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480990/946-20-50-13" }, "r484": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480990/946-20-50-2" }, "r485": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480990/946-20-50-5" }, "r486": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480990/946-20-50-6" }, "r487": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "205", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "3", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480767/946-205-45-3" }, "r488": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "205", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "4", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480767/946-205-45-4" }, "r489": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "4", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480555/946-210-45-4" }, "r490": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480524/946-210-50-1" }, "r491": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480524/946-210-50-2" }, "r492": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(a)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480524/946-210-50-6" }, "r493": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480524/946-210-50-6" }, "r494": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(f)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480524/946-210-50-6" }, "r495": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(1))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1" }, "r496": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(12)(b)(1))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1" }, "r497": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(12)(b)(2))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1" }, "r498": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(12)(b)(3))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1" }, "r499": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(13)(a)(2))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1" }, "r500": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(13)(a)(3))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1" }, "r501": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(14))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1" }, "r502": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(15))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1" }, "r503": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(16)(a))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1" }, "r504": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(17))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1" }, "r505": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(19))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1" }, "r506": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(2)(a))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1" }, "r507": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(2)(b))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1" }, "r508": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(3)(a))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1" }, "r509": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(3)(b))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1" }, "r510": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(3)(c))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1" }, "r511": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(5)(a)(5))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1" }, "r512": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(6)(b))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1" }, "r513": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(6)(c))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1" }, "r514": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(6)(d))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1" }, "r515": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(6)(e))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1" }, "r516": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(8))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1" }, "r517": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(9)(b))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1" }, "r518": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(9)(c))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1" }, "r519": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(9)(d))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1" }, "r520": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(9)(e))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1" }, "r521": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.6-05(2))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-2" }, "r522": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.6-05(4))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-2" }, "r523": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "3", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483581/946-220-45-3" }, "r524": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "7", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483581/946-220-45-7" }, "r525": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(1))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1" }, "r526": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(2)(a))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1" }, "r527": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(2)(c))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1" }, "r528": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(2)(e))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1" }, "r529": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(2)(g)(3))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1" }, "r530": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(7)(a)(1))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1" }, "r531": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(7)(a)(2))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1" }, "r532": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(7)(a)(3))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1" }, "r533": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(7)(a)(5))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1" }, "r534": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(7)(a)(6))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1" }, "r535": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(7)(a)(7))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1" }, "r536": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(7)(c)(1))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1" }, "r537": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(7)(c)(2))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1" }, "r538": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(7)(c)(3))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1" }, "r539": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(7)(c)(5))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1" }, "r540": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(7)(c)(6))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1" }, "r541": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(7)(c)(7))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1" }, "r542": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(9))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1" }, "r543": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3", "Subparagraph": "(SX 210.6-09(1)(d))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-3" }, "r544": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3", "Subparagraph": "(SX 210.6-09(4)(b))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-3" }, "r545": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3", "Subparagraph": "(SX 210.6-09(6))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-3" }, "r546": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3", "Subparagraph": "(SX 210.6-09(7))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-3" }, "r547": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481062/946-235-50-2" }, "r548": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481062/946-235-50-2" }, "r549": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481062/946-235-50-2" }, "r550": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481062/946-235-50-2" }, "r551": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "310", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480833/946-310-45-1" }, "r552": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-12(Column A)(Footnote 2))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-1" }, "r553": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-12(Column C)(Footnote 5))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-1" }, "r554": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.12-12A(Column A)(Footnote 2))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-2" }, "r555": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.12-12A(Column C)(Footnote 4))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-2" }, "r556": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3", "Subparagraph": "(SX 210.12-12B(Column A)(Footnote 4)(a))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-3" }, "r557": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3", "Subparagraph": "(SX 210.12-12B(Column A)(Footnote 4)(b))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-3" }, "r558": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3", "Subparagraph": "(SX 210.12-12B(Column C)(Footnote 2))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-3" }, "r559": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "6", "Subparagraph": "(SX 210.12-14(Column A)(Footnote 2))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-6" }, "r560": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "6", "Subparagraph": "(SX 210.12-14(Column F)(Footnote 7))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-6" }, "r561": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "505", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481004/946-505-50-2" }, "r562": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "505", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481004/946-505-50-6" }, "r563": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "948", "SubTopic": "310", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-29(Footnote 4))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479851/948-310-S99-1" }, "r564": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "954", "SubTopic": "310", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481027/954-310-50-2" }, "r565": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "954", "SubTopic": "440", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480327/954-440-50-1" }, "r566": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "970", "SubTopic": "360", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-28(Column B))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479438/970-360-S99-1" }, "r567": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "970", "SubTopic": "360", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-28(Column C))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479438/970-360-S99-1" }, "r568": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "970", "SubTopic": "360", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-28(Column D))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479438/970-360-S99-1" }, "r569": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "970", "SubTopic": "360", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-28(Column E))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479438/970-360-S99-1" }, "r570": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "970", "SubTopic": "360", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-28(Column F))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479438/970-360-S99-1" }, "r571": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "970", "SubTopic": "360", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-28(Column G))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479438/970-360-S99-1" }, "r572": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "970", "SubTopic": "360", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-28(Column H))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479438/970-360-S99-1" }, "r573": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "970", "SubTopic": "360", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-28(Column I))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479438/970-360-S99-1" }, "r574": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "970", "SubTopic": "360", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-28(Footnote 2))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479438/970-360-S99-1" }, "r575": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "976", "SubTopic": "310", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482856/976-310-50-1" }, "r576": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "978", "SubTopic": "310", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482707/978-310-50-1" }, "r577": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(e)", "SubTopic": "10", "Topic": "235", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483426/235-10-50-4" }, "r578": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "13H", "Subparagraph": "(a)", "SubTopic": "40", "Topic": "944", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480046/944-40-55-13H" }, "r579": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "13H", "Subparagraph": "(b)", "SubTopic": "40", "Topic": "944", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480046/944-40-55-13H" }, "r580": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483467/210-10-45-1" }, "r581": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "260", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "52", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482635/260-10-55-52" }, "r582": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "30", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-30" }, "r583": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "31", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-31" }, "r584": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "310", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "12A", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481933/310-10-55-12A" }, "r585": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "24", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482548/350-20-55-24" }, "r586": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "69B", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481568/470-20-55-69B" }, "r587": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "69C", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481568/470-20-55-69C" }, "r588": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "505", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "13", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481112/505-10-50-13" }, "r589": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "91", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479777/606-10-55-91" }, "r590": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "91", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479777/606-10-55-91" }, "r591": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "91", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479777/606-10-55-91" }, "r592": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "91", "Subparagraph": "(f)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479777/606-10-55-91" }, "r593": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(d)(ii)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1" }, "r594": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(d)(iv)(01)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1" }, "r595": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "17", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480482/715-20-55-17" }, "r596": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "715", "SubTopic": "80", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "11", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480576/715-80-50-11" }, "r597": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "715", "SubTopic": "80", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480576/715-80-50-6" }, "r598": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "715", "SubTopic": "80", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "8", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480547/715-80-55-8" }, "r599": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r600": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r601": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "810", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "4J", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481175/810-10-55-4J" }, "r602": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "810", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "4K", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481175/810-10-55-4K" }, "r603": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "842", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "53", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479589/842-20-55-53" }, "r604": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "852", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "10", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481372/852-10-55-10" }, "r605": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "944", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479401/944-30-55-2" }, "r606": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "29F", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480046/944-40-55-29F" }, "r607": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480493/946-210-55-1" }, "r608": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "946", "SubTopic": "310", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480833/946-310-45-1" }, "r609": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "946", "SubTopic": "830", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "10", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480167/946-830-55-10" }, "r610": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "946", "SubTopic": "830", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "11", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480167/946-830-55-11" }, "r611": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "946", "SubTopic": "830", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "12", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480167/946-830-55-12" }, "r612": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Exchange Act", "Number": "240", "Section": "12", "Subsection": "b" }, "r613": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Exchange Act", "Number": "240", "Section": "12", "Subsection": "b-2" }, "r614": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Exchange Act", "Number": "240", "Section": "12", "Subsection": "d1-1" }, "r615": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 10-Q", "Number": "240", "Section": "308", "Subsection": "a" }, "r616": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Forms 10-K, 10-Q, 20-F", "Number": "240", "Section": "13", "Subsection": "a-1" }, "r617": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-T", "Number": "232", "Section": "405" }, "r618": { "role": "http://www.xbrl.org/2003/role/recommendedDisclosureRef", "Topic": "450", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "10", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483076/450-20-50-10" }, "r619": { "role": "http://www.xbrl.org/2003/role/recommendedDisclosureRef", "Topic": "855", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483399/855-10-50-3" }, "r620": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "18", "SubTopic": "10", "Topic": "275", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482861/275-10-50-18" }, "r621": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1B", "SubTopic": "825", "Topic": "944", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479383/944-825-50-1B" }, "r622": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(g)(1)", "SubTopic": "20", "Topic": "842", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147478964/842-20-50-4" }, "r623": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4H", "SubTopic": "40", "Topic": "944", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480081/944-40-50-4H" }, "r624": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Name": "Accounting Standards Codification", "Topic": "705", "Publisher": "FASB", "URI": "https://asc.fasb.org//705/tableOfContent" }, "r625": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "210", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org//210/tableOfContent" }, "r626": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(20))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r627": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(8))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r628": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(9))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r629": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482765/220-10-50-4" }, "r630": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482765/220-10-50-5" }, "r631": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482765/220-10-50-6" }, "r632": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "230", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "28", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-28" }, "r633": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "230", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "28", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-28" }, "r634": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "235", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.4-08(g)(1)(ii))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480678/235-10-S99-1" }, "r635": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "235", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.4-08(h)(1)(Note 1))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480678/235-10-S99-1" }, "r636": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "23", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483421/250-10-45-23" }, "r637": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "24", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483421/250-10-45-24" }, "r638": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "5", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483421/250-10-45-5" }, "r639": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483443/250-10-50-4" }, "r640": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "260", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482662/260-10-50-1" }, "r641": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "18", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-18" }, "r642": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "320", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481830/320-10-45-1" }, "r643": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "320", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-2" }, "r644": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "320", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-2" }, "r645": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "323", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481687/323-10-50-3" }, "r646": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482573/350-20-50-1" }, "r647": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(h)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482573/350-20-50-1" }, "r648": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482665/350-30-50-3" }, "r649": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "410", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "10", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481931/410-30-50-10" }, "r650": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "450", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org//450/tableOfContent" }, "r651": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "450", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "9", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483076/450-20-50-9" }, "r652": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "450", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SAB Topic 5.Y.Q2)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480102/450-20-S99-1" }, "r653": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "470", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1A", "Subparagraph": "(SX 210.13-01(a)(4)(ii))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480097/470-10-S99-1A" }, "r654": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "470", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1A", "Subparagraph": "(SX 210.13-01(a)(4)(iii))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480097/470-10-S99-1A" }, "r655": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1B", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1B" }, "r656": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-5" }, "r657": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(d)(ii)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1" }, "r658": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r659": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r660": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r661": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(1)(i)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r662": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(1)(ii)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r663": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(1)(iii)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r664": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(1)(iv)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r665": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(1)(iv)(01)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r666": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(1)(iv)(02)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r667": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(1)(iv)(03)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r668": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(1)(iv)(04)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r669": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(2)(i)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r670": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(2)(ii)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r671": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(2)(iii)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r672": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(2)(iii)(01)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r673": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(2)(iii)(02)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r674": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(2)(iii)(03)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r675": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(d)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r676": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(d)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r677": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(e)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r678": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(e)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r679": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(f)(2)(i)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r680": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(f)(2)(ii)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r681": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(f)(2)(iii)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r682": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(f)(2)(iv)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r683": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(f)(2)(v)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r684": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "815", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "1", "Subparagraph": "(e)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480175/815-40-65-1" }, "r685": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "825", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "28", "Subparagraph": "(f)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482907/825-10-50-28" }, "r686": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "830", "SubTopic": "230", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481877/830-230-45-1" }, "r687": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "842", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147478964/842-20-50-4" }, "r688": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "842", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147478964/842-20-50-6" }, "r689": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "850", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483326/850-10-50-3" }, "r690": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "852", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481404/852-10-50-7" }, "r691": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "852", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481404/852-10-50-7" }, "r692": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "860", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(c)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481326/860-20-50-3" }, "r693": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "860", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(c)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481326/860-20-50-3" }, "r694": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "860", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(c)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481326/860-20-50-3" }, "r695": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "860", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481326/860-20-50-4" }, "r696": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "860", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(b)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481326/860-20-50-4" }, "r697": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "860", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(b)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481326/860-20-50-4" }, "r698": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "860", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(b)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481326/860-20-50-4" }, "r699": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "912", "SubTopic": "730", "Name": "Accounting Standards Codification", "Section": "25", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482517/912-730-25-1" }, "r700": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "942", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480832/942-320-50-2" }, "r701": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2B", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479432/944-30-50-2B" }, "r702": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "13H", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480046/944-40-55-13H" }, "r703": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(18))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1" }, "r704": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3", "Subparagraph": "(SX 210.6-09(4)(b))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-3" }, "r705": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3", "Subparagraph": "(SX 210.6-09(7))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-3" }, "r706": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-12(Column A)(Footnote 2)(ii))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-1" }, "r707": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.12-12A(Column A)(Footnote 2))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-2" }, "r708": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3", "Subparagraph": "(SX 210.12-12B(Column A)(Footnote 1)(b))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-3" }, "r709": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "6", "Subparagraph": "(SX 210.12-14(Column A)(Footnote 2))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-6" } } } ZIP 74 0001558370-23-018274-xbrl.zip IDEA: XBRL DOCUMENT begin 644 0001558370-23-018274-xbrl.zip M4$L#!!0 ( &&!:%=>N_RI*!, 'B^ 1 <&1FWE>3DY&F*)B$),Q2I M X".-;]^&^!%I$B"I&0G]"X?SHDL-!K=^!H-H-$"?O_;T]9&CY@RXCJ?+KJ7 MG0N$'=.UB+/^=.'Q5>NWB[]]_K>__/[OK=8?O?D(6:[I;;'#D4FQP;&%?A"^ M04MWMS,<-,:4$MM&/4JL-4:HV[E\>]FY[%ZC5NNSY-$S&-1Q'22975UVPX)^ MP,YU;E"WV_[0ONI<7<.GFW?O;J[?H]DX)!R#;"M22/G$K!MF;O#60-R@:\PG MQA:SG6'B3Q<;SGM1A-R! HJ4?UY;!Q M2Y!A:G!P+:QU=1D9L>EZ#J=Y]N(7)MIS,"\R=R YC!&2S1H*DFP-8K)L4EF4 M--D44,&([G[\^+$M2R,!.#WJSX304-P6Q8+]5:MSW;KN'A1=EQG; 5D$QY.Y MR59#E"2T*.'=0O=%BMU7BSB,&XZ)X^.:**SYF![,*]/F$C);RG%G'<:==!PD MTZN\][T*N?C\%X3DY& XCLNE;8JOPB]W.^*L7/\;^$Z@>B.Z? EX(?'A?C[, M=-02EP4PE%-#WW4L& 78@@_,M8DEX.H9MM!]L<&8LPM$ .8J%4*A0K$LO"(. MD0H *)T.:J&('7SN3R>W^F2AWXI/B^EH>*LMX8^>-M(F?1TMONCZB#1U/LO/,)\PX"W[3/C=H') HJAH&K;IV=7K'<3*K19\&4+T,L!%I6RZ MZKM;Z(>-<'&/>.2R4D"J&2B!O2H+[&()_XSUR7*!I@,H&L_F^A>@&W[5T6BZ M:*"N#K7!-@/;_5$=XJBB$MJW)T*K+;Z@P6CZK8$T@/26,--VF4=QW&.*@>8Z M I$9=7>8\KWF6/J?'MF)WK[%W"!V .TY#!00O^U<=ZX U@-[^"/A@.4XG4XD MM"T4-H,,QT)10^A-T-1?&[S+X:TY#BQGM*U+.?F75&2Z&L*0Y;#",6!A.H1N M<=9BB:HQ!E-K)5LXE7F!G;RM8">^""@N W)7*"X%.HB!?#D:,\HWHQ&&'1:3 M_^^[+,\WY% I@7V;=@ C75OH D;)"0E6#39%V(P-[E'"]]/5=">WE,Y:%HS MVHD-(N&\45RY?@&>U[EXAFV(L1BU$J <:Z^17@S[L@W)7 MQY"?R$4)_+NTAQ;-H'=J5WWLA@_@HS>B57356,'S6,'ULUC!]:^Q@NO&"C*M MX$-5[YWK#T[DI+2&#^G)0%K#A[-FA<8QY)L$YD,'OI=QDQFFBXU!_V#$;R M%HO/P5)E(=U.VD(&VG".OFJC>QV-P6G8$U"K^O';4?6"P[AWIQS&H3?)1IJ16/G(9L%=\Y\;U[8P92* SO=5 MSVXR."BQOC[M$&>QG/;_^\MT=*O/%TC_G_OA\GN#]O& M""QU9H":"1-7^._Q?%RND@+3*QB_J;EV,;R;# ?#OC99(JW?G]Y/EL/)'9H! MO/VA+H9NP+D9M&667DMQ1E%F*140*N"ZAJ51:AN>N31ZXS-K$$HA-,>/V/'P M@+I;\(N<&B;_1OBF[S$.>V2:MULJ6TVY9[Y*[XCF^E=] MNAP7PZ%DYT.=?Z M2_1MN/R"^O?@.!4:3\>4FC.+2)R*'1QB*>W2)DWNCS M&D:"Y<^UCZ#QQDZJ)MI42IPIF0B36@WDGJLU<%6$ZZR\IQ/SFM)+\_+'I$U MNS O9LHWF"HS7Q(4!;DMJ;$7G6)*+@TI_&2Q_/1M/ONHYZ^D0?#)=H!IZP&5PG M0B=.N*3T\@!K)SZQ@4MUMMM5 +0$EP*84QO87)BCME"L,03+4*0O9K,&_VKX M:[;MFE'(P737#OD7MF:8$M<2.;5YJYNS>!780FJQDVL+AQ;]T$78)O(;E5G! MS?*GHDG(J77JCRO-Y.0Q?Q:N6KT ^%168"[PLA$4M(+"9AJDJR$]<9U'S#BV MYO!_2DQYB <=>P_"G0)])7X%MO"NM"U$K:)#LX&!R(8;\RAA'GX>W])XROT% M0 :%$L(/Z:5;D,&WU/[0F[A#U01-S>'DEM@>V#)>B(PUU<\U3N"@!/.W] )- MG9(IVFI906/HT%H#>S[L86Q7S;79EV$?X!],Y^,P8Z[9?YV);Q#RA^%JBKY8X]Y^;/S#I44'R,_& MM\ N4BZ@G%V$)XJ']M'#'DD)4"1"8S=GVPWK[0_%&L7&>>:2RZ[ 2E*[MTI6 MPH1M'-I%HN'&-DZWC9'KK$[)7SK_PI?9'"*U#[LF/FKR1(U5%!WNQE+BNEX/%SZB9P";7':/)S< MZ1,_#[!!+_^$A!H;[ M^FD(VNU7;;+4%TMI-'-]))."187O".I/%EI?>(G&@JHEDJIV%D7D2IRS$A&R M?V_3[!X*8+O%S*1DYX?70U!@'"Z\[=:@^^E*F;)]C.J9W!2@@[-/@WZK+_KS MX4QB/1T<;$",XL7]>*S-O\M\?G5^>&,451//JF:5J8$],F_33=')QBD]Q;H^Z\PN2>OZC^658A3/!,N=\:CA* MY^PT@"A.X13';^KN+SAW:SJ]U&E;J0,U-1#5KC%I<*D:VJP:M%2C==JQ5X-: MJ>MD2ET0H\2GPI4O#285(KX50KUJ?*K&>!N47B2R^R(A737R+QW+;2RE1 2W M1-16C6+)2&T#1M407/8E#25K*2"[/OD7G,T-#M7B-3:),B47^3=1-SU<)&V7CH*!4HE+^-R -2I7"&MDPJ4B5./V6<76O(BVX M >O46$4XG_BV< Y7B'Y-MV->''NTP4CX-C$\VORNXU\ M$E(\/MD*'YK\.ZAZ^;2U0Q+!7O&@F[2&X]X)&@Y9&-1,<4F]G0=,Y.,WL%UO MA\)?H/9S:04X5-7J"+H:*@5&4E6II%W54"?;>*BJ$U3!]HNJ=I,1\BBNHG")H).\C#(9T AXRHMD?:Y(L$4^W_#N&_9_ MTQW^WCYZU3'X(O'VHWSY$0S3I1PYF:\$YSUBZ3\P/ I^R:NH(OZ*'LMLB:]: MW:O6=?<2F@ZLK8(4F0^(9LG"2M24?[/2@F0_U5NR(\(*H@?>G:9[QB.H91JW M*4W4$A)\%!ATWY>6(^<9W[R.EVUGUFEC&'#A-]+U5>O^[*=RE7)D50G_J"9! MQC.MY7H@I/>U%P\+GZ[YX27?4EJ'Y.)#9JO!B]ZRV4\7A\@R+%&):< 68XRW M#YCZ#EM,6']7T/A37?0(\(TE/>V0XZUP3""R]\ XX9X0^(ZZWN[3A7PW]X8 MR04RH%1$U3Y=<.H!N4-L6RQ9P[]]VIV\)V#I-^71()2:JY%CV'M.3);6X[BD MAM*+]S3%?R*EYM&P1;1JL0$K66*Z')/%US1+>X6;,\DAIU]+I+"NFR%.IH B.XZ_@T- M'A<=8Q%GG:EA/EDM]4J'T,/7&?8]:$ \!S-T]"<3,Q;=K7JX+R2A^[FL7M+, M38JM4^T\#!:DX3XNJ2/"@8R]7.E[-98^C(/*(37SJ+F!_9&(AJ:T*:1\3=I] MPV2]@66B]HBIL<91$+J24486?FF5Z82*#(_[:A>$-L\N%["4B!Z?3JE6#%I#?7+?NQO#Y8'.Z @>63IZD\< M.XR('Q9).K$TC&E^#I.:3JUBD40L\$#+#;[JB(R83G=*A[<+>>"5PKX<>0WQ M#VYPB%8],9W211G.5U#\5-\K+H22W?S-I;:5 B*[N(8=+V>MGIC41*8!# S? MRU,*$X&DZ^T/)#-C+Y_/^F%0RY\204],'\43:6#D(KH+8RS6#2_"/3Y4F:3[ MJ<@':P&*'XGK,7L_9,S#UKUC82I'7:>;N?RJ5JV6E@*K )C\MS"M?#6H?,4^ M>FL]H:B2[I>L&$IHYZXX&![,&J9X?NJ0LK@ "X3O6+0C3R-;N6H-T56O*5[+ M,D*.I*N.7-W/\2Y:Q(L3[&U:JS+4==3R!WS>Z[:8#Z7P0T?,?[""S_0\Y] PLX6]SY:&+R*+,")FZT*UFZ/=R3Y3*='#Z(;X?.!#]Q4-E^Q&/7X1L6 MZXGG8EC/7<^]0Z-8T=)X"C*CV%"<36)*Y9?^M3:)+BE?Z96I'?RJ;88=PY:O MN3IB@XNI.!,P31 "_A0W_H@-0.S!U3*=P%[>S/1$WD$ M<7V(V%%C^O,78Z2O7WS7 M*E+T84.P,TA8YL[\9!<1NHG66\>'FL_,O*8+\M#C#(@C>,4O4$AXI*/REW5( MA8YTN8$Y0%PP$'@&WQE,5_).2L+W,-Y"W!YLLH[]P"98D9Y2_9>/6#_:U%$> M/RAH:CB*Y/$)WG#-"*]P>]5X;-FGZX%5!\VH& M1AC%#"2'Y4I6HET8XPNH4J[N+"XU=(:'IYZC^U=AOH+-67C4#G*P$&TF#[2B M@'EN4.8<9C7LH\,:$,"-I:T>G7:JR5[-.$DFFPJ>L5MZ_\NS?)_/Y"V]L*9Y MXCT;E$STPVD,CI'G8=&O]8\S006RVV)W8Q$1BLE5O01M3;4<.G)_ _[K=D46 M>P8M^9OTC&RY LH:CN"#S/W'0&3'DI>!%RJIKE!#7<,9*LPQ#]UMQB26)GEA M+Q4%3<]U4D$T]!'3;QMB;HYF9:;1[+S[:M7JMUX]DC_C$!M42!]0[U MZXQX+G(8'3]*6XX;?3GR^JF9SM-@P>(BD1@'"ZV!Q\4=KHQY_D]>DY&LDU@D M(I'/G6"7[PTJ_PC@*/VW@*Y^("<%SDSHS2>IX20T="R\]==\HF+6!)M-4$-= MTN=L:744-#74*.X*IZO@;.KX)Q]LBI_C1:5 M>T/6>2W= -.$3+ .$ZV'3HD !TN,[-,8O)8.2F+>-W:$&[90)5Q-R].P7"/) MK_!:.B#C5DF6N%8R_#8XZRP.%9S!JJ;;Z?2*RY=E$I*0YB%# M>1!G9LYEF*4_(<;!I*O<.-EZ1HE0K%XV+RD6UKI3+02/WF@N5;$NAK=4N MJLLGK:!!V[I5JM7+Z\M:I5:'3[=75[?U3TK_:5GR"2@OK^_7[S7+VSG%1JH5"]_?^H,]0F::F5LN9YFZ:BD M0/E;E_[8L77-HX**5)^_.&;80/URV1>S!/E6#HN5R4_E:JU MHGQQ;!,-T%BAO]UZ'S-T5W+Q M=&:2MNAO$P>-[THS8^R6B0HJ-_4*X>3?0P]426#2LBT#6:!R^.#:)C:(BN\U MDQ TG"#DN26%=/,\:,=(@B8O='MZ29Y="K5&F>02W^5^N5P^=7OCECV=.6@" M9? ;ZMCN]EQGM"ZG%#1W\FC:[SOF?M7J ;E^P*YNVJ[OH"C^B"9LB]#5=^P9 M%X;L[">7NN1#I=1"TZ-*_+=O-!116$P7R\Z1YOH.]C]ZX M!V@%)5BO]$$'-(!-[&&42^'BC1;LX'GG4 M]R^/>H'RN!;%:@PA!OAG,XZKF6$#[\F&> M262+7@J1RJ.&G>^:Z:,GT!A\I\;/\L?%&A8\,GK6 .D^N&+6*[A;.-8BPO2FSJ834 Z&% 1],,S<&Z-7%;([GH5EIJ^ M@FT'G@62(@3NRJ>*J /-/00UC.6OV"/]@/]UYMF4F_#:VF.\P$3(!WP# UQU95'<_QZVM1M?E8EU/EP E[D M"#G3MO6&7(\NA0P5)Q4]#8UR!8NL2*;;OH)FJ^(R8,3#@];X(Q'U M[(-QZD5#GP!31+]M&$J9?PMDW'FP8$#)ZXV=WX40R])9:YQ@4)\Z MA-/K5]LVWK%I,I04/HZS4P-VKJ331RJM$LYUZ_L3,-[5N6[Z9&\^0RT\58]! M9;GY"-1Y)9$Z'] 8P5IK+&*.(VV^9(FA1':%8U"=(/6!PCY)I+"(E=2U+3W5 MEDPL>PQJXB<\T-"U1!J*1E M8^C9^E\3VP0R76(D>1]KRLHN7AS]#%Q%2LB# M)EZQ1W&6Q8B$,1_PCAT_,H&A[&D@K8H\^N/526+ 0(P_"=6:O/'YD3W%9]4[ M!07G8U)&CY.L:Q'^^5;PQ IQENO'J5@@(YN9+0C0V# MS'WM@T28^6+N\<)2*S"-1G;(G8-!"==.=3HS[0^$!L@D9P2XQV1FO1/2<#Y> M)5Q" V./6\G,\B>D7#$>)5Q&&09>NF;3*YV0>G,P*N&*&X;>!N@-67[&BIM< M^(1T*L#@[J/&FZ<4R2]_M&S+N!-+ZWSCWMLFN34:=M2YSIR MW=XX('V =/O5PG^O3MX%NMQ)FR>@\OW)0<+P=&:XDUTPSF+CR$*)G/S(:%$9 M!EY0T=>PT;9:V@Q[&FL3CU%:'N4)*B3!FA+@4$)O:.30T^\?E/^T4Y^;!4]( MB9S,90['<@$G>>WIU+8RU;=>[(24Q\6:A&[,@-R4L) 1WM !O\R?^M3A!GL/ MZYAE[F97/"'MYF160I<2WBF MIN\$SEWF')Y0\H34R\N=A&X,68'PXBX!N2T"SAO,5,C2V6UK'WW M_*W*,^(YE+JQ([]COB7TD5EL/MH.T&0MXGKZQ\C1+%?3*;>60;\%:C/^]!=7 MS78/L;W0( \@]XDT?CP?3L@2HO\!O7A#DAAA80B\:=@D;(!,AIJ)GBT':2:) M.7\%-RVZ0F[LT8@U[R6 >WZ,Q3(.18[/JW',T8 5;FO/1!JG1$WEDY\JF&U1MRT,.+>U3D\@?\,]AALQPMQ87T28*+ MTX=&1%(T=C=BE!!K)-W@DY6 >1!>D9XS]$2O:1@VUR MTYL<[T,/:/'_TDE5Y_H$5@0T +&IXS'26>/FT$0(L70-+GXI? M>[911]+!IE1F)=3? YHY2,=44O#91,%69]2>9F[S95<] YWG%H.$6T/TM0'T MA6=D(PSLEC3])Q<^ XT+,"[A6?2XITP3_+OT6@L)Z/(%)-8KG8'.:4@X5ETDAI@L53%D$W>#T(S?L *UG?0%/M3 M-SN)?+[&S@ P.Q1,9DBJ@'#E1M9,KMA41JTS@$4>"4B8T)(>DR-!61#.@I7T M33%F^3-0N1CO@;(_RS38-V,?FR]D8$>C,ZN> 09RBR& PXW<< A>W!!.;HDO M<. &"$]C9PF9W(()HT\5F5"4^M:!J-&4L;((-A,7T&<0T/6I(6*2&Q#L)LX2&X+B"&$B4R@T$?!KR3)%YHNUJF<)"TXQA'"0*1RZR4QJ M8CYN9*2VC&X^[ ^36S1T@D#8M=2"4$A M4SPTP:).SM#+[YLDUS]AG.Q&%B$ZV '40JY%)XEHL>^SQ=F[A ;B,KEIW%P5 M?2M6VK-WO-*3\+0.L*(C9- 3]4^:%^01H/'!CV5:)LTT85*E[\+VN%X(OF6K M\D%O2\5O(FD?$I+P:& _X&9DT^,N#F*^VI>%).X&S@$TVPEC#W=I&39P!,?" MFA=OX(0UOR-AR'@U=@/,G/<:,^N=,!RVDX&,5ULW.+GW76R19!#N5R?E1D!& MM7/$ (\(9+RORI#,([8T2]_"ITEH0#Y82.O3\$I/PM/I4=N:IJ'M4:)<=8X< M';L;[Y+AKA<3P%4%1/!9SEF%5WGI?@F_#&3T/-89(982C[^Z*GR.ZF8S+F/P M(E@"@RW$D3W2YF1+@*2=!FF0)(@BEY'R-G<..-FE:&3V1H"3 9KY#JR<+J() MO<.7A62 AEWQC. A* 09'9*%H=0;1XVGGK65F;8TR!ZP.[-=S03[W)^1Q%;D M"@?-8H*,51(3!M"*)TP^(!=O/4NJ%?Y[@SM,6$+H,VW7)^L F!$Z&DX0S#2P M'-@6%7@0LXJ&JQ[(^WI,OL0EC4J]4E/*RJH?^'+?[#2[+549?E/5$7TC0J]+ M$Y:4E; _1;,,9=FC\E/0Y\\E6;.8,(-[,'&OS0[I10]O>S"H6-G0](4CF6,"-2CND2>F;=),S9VGG!@\WR M[M,D,V+:Y8U3]7GCFS[B]%V^7WBEPZ5^2 MT4O,;6ULAC8[:G.H$B>5-JF0-H_ \USROX;RR.\[&7_+8]%-R_BN.=159_6= M72&.IUJ!:4 V>%@.%W$&)'3,XC=P$G3%+BBYC@0)YW>-]CA9!5,/YJ!QZ4O(1Q M>L-YFY-I@(LI.#K^=\J]A#,X+W_I037!5LX+&FE,2QA2$V(KQ?45;N<,4<%D M6\*HF0AC*?$RT6;.#Q5,KB6,E@GQA=]V,5>09LX0%"RN)F0M4ACXBBWHKL;IHUYMGA A_2E7Z4=%UH^!K/Q4 MY2?2O5*3UV$5.@["6TFB;9;5(2J.]U"(-Q0?(O#IJJ@(NYA">3=9!+C.=$C) MD;*9@VT2Z:'FJ#PP23N&FE7MQ"' YK'@.&6NE:!>\$I0EW,=FR9CB/!5E6>XYUW9Y!OJ(DKC'/ L/GD"CJOIO;;WL7\MNE$A8@E>;^Y6 MT/%_O=6VA?SF8,[]"_'J,KF1SY81O#*)O/& )(H$8\=G7DW(U99\4\?>W$DA M$4BXC2&65I,G<>31ZUN$R:+-PN@KW_MH>!,, +%#4]7*YF+S MV&P/E._-SK.J/($C\CQ0GX+@ Z% H23\)[R.&%*AP-JC*4M*%$K*_M<=Q@'- MA"0(] 3C*)[*=BG1%?]KXVN;A@Y]7?H-)$W.99*,.$#JD.@B\$Y?O-4WQ@S" M6UV>*6-[)<&0!+/OV]WFJ-WK MQA84EW@NP9H2DD*3IT3#7 $U1^#.)(A\]6*0Z W_N/##@&JB$C9CRGOKY<#3 M4TX^$NE/3>"\^X[DF?#V#+GH;'@@,4KHM>V2\U;T-97TW94'0.UFI_(@^,#P MVB^N.05]XAA?;?T=8DJ.]/8#U85(6,(; ADG"\+'<7:N&C=7]7,%3*I()#SK MOTM!9;\^=4^]R8._(S4DLV2YAU<0287VS-)]B25G"W)EB>JM2VO)">;IQ1-0A+. M4(0.2&I&^?4? )(2)0$@2/'2TK J-;'-!M W7+K1W?CYO[\N/6N-:(")_\N[ MV_W_S_O:C=77U=]%'WPY8&^); MHK,/[V_3#W=)=\3_R;J]O?ZOZP\W'SZRGW[Z_ON?/OY@O3RE@$\,MQG.A?2P M__DG_L\;&]%B1/K!3U\#_,N[11BN?KJ^_O+ER_LO']\3.F?M;VZO_^_I<>(L MT-*^PGX0VKZ#WED,_J= _/&1.'8H.)1I_O6->FD''Z^W8RDA^&]7*=@5_]/5 M[8>KC[?OOP;NNP1%_ME@D!2(T>21"\ ML_BPK^/A'C%LB/<.65[S;]1MD')] RE"C MZ:4-H@8,G&P0ZB,?S7#XPI2IO*3R.X-"XF^V%XGEGTV/:+GB/P4/A Z"U:HJ MPDV&@,*.GN< M]X7[AL* 9^*O4<"LL3'[EV)'V&4,[UQ39-7)*/19$!CT2?_[(IH ;GVF; MX)/ID&VPZ\'&E!\RT!,[(+/?A:-L^\<8X>23.V(29^L&Q?Z\;P>XU.RK9+Q6 M](HLES@4Z#(Y<]< 0POY3LDEVJ2[=NP3:H=HCIT7FX8^6^T6>-6;4R0$Q1TA M/7=M^R';6!G:8^1Q#RL'W4PIVWEM1QQ#RIDT50[!=A'03M.

99.72>D1VV_8$\<,8;X@MR)6E!VU*-,$7U+. M%=)EVW=MRK&)]X;>5[9ZD:6-4T]A\.[$66HP0(8&FSHI&>50SEP%\NO,[P5^HK?3D7*%P*Z6:/E6 MEJ-2] [ZK0!1O.07A\2_BKNN$M>CKD]'=\'0HD[TAJZVO5>(L;3W2GDTJ@60(Y"BX!%G;USAWR'TF-P@ M96& G/=SLKYV$1;!$?P'L5K&!"/\YR.:V]Z G:O"#1\][]-KP15V:<$S_U/>TCNI-JC^^@RC4N[293O!.V<4;)4* M6B$0<^*RRBGKDVNHIJ_:U34*KN:VO8>0]/N.^-Q52V.G M) X^]S=3-IQ$NPT@$QYI(2'0R+&1ZK7:GPN7$J1&@[ "4^_J=*QM2 M@,2L?JLZYNJMZ[#M=7H_J$*BS6J A LR@(:0?[:7:#3;0T"JM+EP"2D:N/94 M5B, 8DY:5E>/>^1:JND)TB*LNG3N;[)?)(I5_&XA:7^:'\1CCL-LDI#2_5B@Q>Z*);\%)-J5 M;LD"+?)HA^&F+"),4H;^@QNHO,&2"ZG\02#-(8[7:-:C;"N<"R-=,FNT, FO M%# M4)3!@=\+/A,>QI3^);OE/^V%_22TEFR=<*%PZ_9FCUZHY%1.9.>.="@^ M6PH/ 6GFB)R.,5I%U%G8 6(S?T[MI;ZM<6>![&@E^92>(_8^M8BV_%PD_7B >OOZ*>4O MR4%_[P23Z4 <50X:0M*SWA>;NHHSO/1;NO_N?VMKT10%J'C$!A-H[ [.;'3] MS0[FQ=Z(_9"COX;P>KI;%_[341%BM&: MU7Y-]USY<[IM^U9YS'+1+U]-";^[)_.'XG#$N T(E'YXK"47%I3Q;,#6>A/B98)9PNU MA,63'79*V[MDZWS>R%NW-P?+* YE3_965D 3X["P\,:9X._83R4G.U9.OM M*;M@:WC\,9BW)_1@QB=H\[>L4I J>+5OS11")+9P2B :3[S2F_N4:6WP5?' MBUSDQI6-EZLH3$HH#FSJLZ/%ME!YTA@9*1<0$S!M=R" ML30TH3.D,,?VW.3U82C"#G(Q@[28;&LM,;+X^J<\LN?!I8=0-5R;U.DKS[WZ MY"U@AI;-=H&AST3/R\[Z#O:PT($L*?)S>\W#'/*V\F%:M 1R]8HTQM\] T&% MES ':L,'Z-*P_?%7C"B3[&+SB-9(EG99K-'QHJ%MU"83I 4MMTCJEX4B;0]9 M8M86Q 0V$3@YC2V**:H9>6^^FHT(:1**&M>1$T9\5>$W\=($) W,-A5'"@.! M(D5ND19*157[\T$O#&)*V7Y6D:3+.(%(T158#>;U^T6!5[XO2B_RS*!E\I=! MMQ;SOH>9_'(E#VXO]ET*!T3+-6(BYG0J-?ZX>W%AHNX6DO;O7OCP//*%9VL' M.UH"11!BL48)_TP;@6."='84:6+$@/;G3$&IDE),R,XBLP'Y9#(;"-*\BN-4 MIO;77A0N")57 =4#[04"'0.!($H3YJ0&4Q+6_AS(D0@Q)NXXI.FPTUTTDZPS MV+JLR(+(!U2*OM4,"3DZAKJMN3/3@4+2<5EF10%"];J>S;K0=PI)YX]WG/[F M'LT0I310-6LEN'L?$458MPYH&] M!X)TYLF1%S$D57_. MD0\2!W?+.XLDN5LR%7*@_[P]X)@!/ Q:I?J?"U^$WEV+ MXC,CUFMSYA-#3 X4L*II>#Q=,$=Q1%*!':F' M#K"I4/%M4N[V):1#C*1SH5!;*>&%6I>=(P:B("70:6RBJ/'G,Z0PWBT[84,< MWWMP-W'.CB('5BZP:G 0A&JW$Q5X 6*KVTQR^4[,\&A\*U$AGMU)= BW5T1X MXB#?II@H=A(IG'1%54(V15$R[*L?K)"#9QBYRKU#"2NG3 =]RMZ0QUQB,'ZC MFX$"X70WT")ZH.(_7Q]P[)']*CY(GVO2/\RTQ>N.^"XCB*=[^P'QL&N+MY&3 MK\%HQ@/;*%IPHM?B]>!W>V(Z? \J8;&^MJ5VJ9_7PW>KX?/$\&]_RG MR>AQ>-^;LE\F4_:_I\'S=&*-'MBGIY?QX%<&-_QM8#V.)I-WYH_TI9K5[!LJ M4QZLH[(]#H"N3T?Q]%>)U& I>M4:_-+WT7;:+362I,Q-Y[<<^8.)W1BK/E1JNOT=8[WFG#E;IPZ.5>'3R)X5%,1L>HK]B!D]_S M".&W.C<2W.+\B;AN"G_7.RWY/O1Y?@7VY]SMSO[C'GB]@(KUU.*&D:=_$@D6 MHPV.D'DL%E^_!U]Y.:G.,CGL>:$).7ZIFT#8#WP9$B/9CPX,0PI?HM"[HN;DA>;\LK,>F/[ M]&X!'(/,C/+3286O#0]L\<=S_RZB#',G^YP#REKR2?0%P=9HMA27I.U-A5R%D$$OJ22I>6OYG(/=D.3K"OYCD MU;T 6++KEKV:^%SI_WS==+[$)"3.YP7Q&,,"_MAVN'FW)PUEPL3'<@D3D^GH M[G]^'3W>#\83:_"_K\/I'^^ZC(F348Q%QTTGXHO7H#79]/HV9Y!384A)NR?< M?92T*9H*V'83+0JIV-X!5TY-#4D#;(PE\<4*EEEFU7D#>G@ IQ*MTFQ3!_1D MM!NZY+HX'OG%QN[0O[-7.+0]J4@,VP X,.2*Q9"45D4SI:(R\$;H3:Q"6K%H MX %XFHU%HB&CY:C:D&&,W-0=H)6%"AB !]A8$"H:VEVO'"=:1AX_%*MN^3IF3E:7K-8EJZFD8^A#@.DE,)12"2._P>FALNV/ILQ\7L4<,M\0Y-%BN/+)!2 "])(66>/$8]3I6LC< )X4"TBQ# M(7B1BY7P .&R>).X\^\,*.]36VT05FP> KH@X.E)><93HZFUNR M,L2!E[%0T@I$K.L'0%; Z1/Y7 44@L7B)*B"QM MV*C,3G/D&% #1VB[/)I@2A2W3FDX(E\JECR74&3@9,]B8\26D@"'**E5%E/+ MGW"=Q\)2WM@U-'JCZG.2$ZHQEL#1P3/.9K@]R45U6H)"52%>]SC@SOV(HIR" M6\$]OWGSS KA?G?SX>;6NK)VO;-?QH/?!L^O ^MA/'KBL5W3<>]N:OT^G/YJ MW;U.IJ,G'LOU'\DP_]F%VV+,PKETM+1\C)W M@%ENQ7UM"QA!70:*II5.EJ)6I?,)D3FU5POL'.&HO;@W: <@'LQ ][)B,B * MUE3J;_K(=Q9+FWXNML8=-&M^H^H&=AU3ZJ!>HD= MTM:N_6Y[W.LJCH#L&*I=]12P$%QR:AJOJ[^=]+OUU_;RGELYAFU^ M$*6/&6@H:)[S<;13%A/UDS!JV/9?-,A5H2WWU52T6VN+^*_Z&-8]B);? M/LC5F[TB6UG$6V5RW_;XTY^3!4+A(Q^!\TU];E*#-[_4Y#ED:P#@;Y6E7GE1 K$,O%*ULO"N>YR^M-8;MH6 ,*)BPE*2PTDR3QB^PU[HHA7$?%(F@&(-SY)1A*2:DAY M3!_W3LP>-H/[6%3^X*N#@H"_(2#NB_[:0JDS(D_J#D!,L9G$3B>URW*Y MU"P7Q3Q+:SDD>C A$76.(B&TD #V'+T(M-A#NF8^\ R],".#_<&>HUO%/- W M ;#1F-XSZ\@ ):&C2V=Q8GE&87*T5 LJOR6 ;<987OG4 !);')7"=[L4RH2GV'7B>)_1&M'?%]A9'!Q9@AZ/]4A/*+*] MJ%A[\-DC)6@"-+TDJT%J(VQV9D.!E5':^FP21(PI.A,1)@JHG)!E.SF;-)"B MA,&1ZQ8YSI,XRG=&Z));DJ,W#\]M3>RK8=NS20DQI >.\&1J)T5ZPOX-9ABY M0_^%HC4F41#O)04F:M&.SR>QI IJ 2F%_/S&#M[%#K"BP?DDFNBHJ/NLNO]" MGP(3J!/9]3-$^03^"+!HQ_*!4P+MIDAK?(S$H0Z(+) MJ\BBQ$O^V-Y,/+\SXTZ^3X094C3)+=$$#ABU/*/@#=Z=Q(O&9K^0HD;.:'NN*T&.X.SM1KYQK, $C1X.&." M2*#, M# MI\%H-.9 Y[+"*C!R3,AL_"+3=$C&\-#4&(FRP.G8/6:^"P51 MQY@5[Z/E[(!14JE!OG,G/]A*-9GNH M*%<@#6S[*Y!:6U)^:]"OP\GLKFUV# ["'AL'._;0=]0+C0:XY14E5S]VSF0U M#?"O3'E> :_\EYJD\=51_ XXF\4TO&-WK'J0,\BHK(OTSGB_5..]_:D< M7_^J@F^KZQZ\9Z%ZDL_'*3&S(R]LV3>18-'Y*#H?1>>CZ'P4G8^B\U%T/HK. M1]'Y*+Y-'T5G=G9F9V=VGHG9F^P]WPVLR:^#P919 ME$\OHV?Q]'QG(YZ.8ESK>J><^26HM"W.P((THJ/534^!F39B-*<-C$A1 V4S MD!"(R-">XY"(K6YCY""\YCJ6]ZBP AQ 7*B1OAV\):R@!E(=HPNH,%58,G"+ M3/&,&7Y4\7*J2DG@ %3W*"P("1DUV*DB#:GG;ZN_J8U4%22 2AS&O-42TIFI MEVJFFA76>/7?L.?Q(A+IGL3K2/3%WYBZW!'V S>:9).C=%< MHCBY3;,R8.3 M#"S!65^&2-< P'YB-O5T1-2="RP9^YF$6]<#Z4LT9N@_LS5@^@5Y:_3$%H2% M-%>XJIX!;%T&DZ\J:N',Q7NTHLC!L>GFN]E<:<5DU+8XFX)26BK@B&=7X&HT M&_JA[<\Q4[K8$GC@'$8>7BM+VQBW!E]IJC!%<$3(L_V^8'Z D\IH]_EL*D7M M4(;'9:/J>"K@LRGMI"*@V9HBZ4O'AQ-QBIR%3SPRWTAO6 OW ;Y64TFZX,R> M?=P/<5:Y07,:G4^MI3Q*8$RKXV))11O#+YQ4E") 4RA!,SZ%//)3R"'&OR,\ M7S"+H,>,=WN.7@,TB[Q'/%-=)I[6)?SJ3-70">9N_(62%:+AAOLS&4$K3G?1 M^_*C2DW*^_(K*QW/LGW7VH[87:17\DI-S-H7)N%C]5*2 MVKT#2X+2>?AZ\N,]6B./"!3%M9W^(5/S]@"N74J*K@"1K0KS(:*,L9% ] %_ MY3_II:=K ."^I:2X=%2U*I]'Q,Y@"^*YP^6*DK78D/4"TK8 <)524D):LFJP MNQ_M-T(Y-#^S3U$0ZGF6,O+@9,Y M6^."^QF>; )VT-<$T9DU 7!%48;EN735ROZ[=3)D\IJGN13T+0'<5IPF##UY M70S8I<: U6?R?Z+J2[^\1@#L$#/YY1$"R2?N1,M()#-GXRW8SQZ2!%XH"5/Z MQZOJ'H!18^HJKXID.%JB1%+].HB^"0 #Z,29;':WU=3%QN%E3-%+C:.J,II+ MC=U85CQ8=Y]1A0=(?;/6W\0IY9X=R"H[E.KAC.XW"M'5KA=/C>D.3UXD0'OG M4;@7&//8F.Q)9# MJ(7/'[F[V*XQCU;0BRRW%0![I *QY9+9]ILC+EK:]#-/0A._<&KT@LMI \"4 MJ$!L.42V:R^P/3WO@N0 !H!%4(%0#HAJ50@\+9D9""A$V_)D>HGH&@"X,:E M/#H*&Z\F-F8DJ.I%9KZ=28&V#,;M<%*JVD=?VZ^]=B3V/0ZV5T"0L6,9+95< M//C>7DG M!=H!L)T*YCFH:8'CJ/^F4QQ.O+:I-<,!@@]2=_6:WPR @68FR7Q2SD):F7M$ M@Y3_,AT!L.E.EJB2N+.0L?KZ-*\1@,BZDV4'+#U0@M[@J^-%+O;G.14"S)H" M",TS+.%@1$X+E]\B^C@0D6C%;KB_.RYS^SCH30;\/EMTU]UA=\5MN^*V9FU@ MW#=?4'';"?(\OK0BGQD6'@\0,LT%(&8YKI*TV6;(/ #?.A6M\%B2Q(A*@7@>;BD%,C770!EQ'9--LW\N1CP$=MOV&/# M,:,K\L/D.:0I&? #6""*@@BX*:)+F01.Z0V\2^ED"N'81 HJ]+5 \QJ=C2HI-[ ^\J.IG"MM;/ M(ZRVZX"Q* MU!MYQ="J!=0OR<,1/QW:4!@Z\#TB#>PL.GTE(G,\\W1S1@*=> MA)MB?I_OC_T^D^GH[G]^'3W>\W=Q!__[.IS^T3E_JD!Q8?.7D%<1=1:,/R*# MU%YJ?#^Z!F?D^M&1T:X)*D5,Z_C1-X'A]\G7LWSIU/B4Y72!V!]OQ,)U-*ZF M?()),P!.&Q.EVM51,"&JCN>,I0,RN ^:YXMSVT!P#Q3A?CY%G8?L4CUD%4A' MICR]*%RP(^!?XK(]\D/52Z+&K2',*4.)&E($QWL=+0\J.B7KX\W"N MZ6F ,Z6F%-E!1#<"N7C&IU&ZBLFC;0'>]69$!5#Q_&9[$4JQY(KTA-C1R$A. MRJ8 JJ>5$)B2G!;BY'XZ]J(.GE\?1'X.!U1\\ M#QZ&4^OEL??<1=-5B2*7%D]GU96RWP,Y(Z?I/N+MYJHGJ.CKT!\ P7"%RC1$ MQN4:W9WI"B.6/K&^J%UL:E@ CDVY&FS/3&K%M ?66 [?H#RJAWG(:VO7E?;&IR^MC M:X[>!S!G4*5%@7G[,0I][MWEM4P9A7$.!Z6\+(4HS]/?[&!>[ W_FR!@1X7O M&AWAZQD*AB$@5=BC,(C*B6]5=?96F9% 0IL@HX$'8'[4.1&RBJ#A0JO2'*,@ MI-CA-P,=5*-*<-A+OEAJ2:PXFNM)GI-7)7VNP22YO!K$Z*WP*%8D#YF3"E[MBX]'(1-W$QG:F,!G!M?0X+$7<_#"MFIU)F&= YY/]%J-3*@[O*;TK!C-9F@7[J6\Y*BB M:_ !<=626[?(T_ST"?[ZQ';(Q58+Q?C!T!_8SB)?O*6Z 1\)5YXTL#-U'_M* M9^IAU^<17E<9N76+?-]/GW'"JZHVY#0 'V!G0@2@TY:X>Q)WW,>ASTHJM*'A M97H[FRB\TA2V-L\."LH>G->2<(ER .CH2W.LM0Q?S9 M1MG9X)GX:Q1P!>;'@&!*&(W9[SR*^)F$?Z!PC!PR]WG"6=XM5_7C-:HQ)_GO M:F3"-Z!9\;;)9E7R)PZG2A1L&HE&=? D?V#3G*G=/CR*A J2A;G0CG5B7XW* MOWSQM_($@C7S]S&_1PX5-;:.[P3J&Z91X;?@J=/1#F??*>V.'GQ=89IY2:5J MG_]Q_XTJS$F9L142#4Q3RDP$\<]O;&/<&O'*0@65#M&HOISTJD*U=%^ RFQ] MZG&Z[-K&'K^[9SOL)]96>[]8RW"-JM))V<;U\> "U"J.D P833.$^4DM&!KL M7E6/U*@RG>:#K8/\R]$CGCD5VCY_1R6>/35ID62<1G6HE(^W1N(O1X/$TKJ= M&[H7W6H9J=%PK).\QK60#TR/Q 6'3OP)0*-2.RWR,H,U,&:?H$N#KX@Z.-CM M:<+1-_1#BOT .Z)B2$VSV&SH1A6DG3#+0OP 4JJ%8Q/3%P31N0!QO3N #?[NS"WP7DJ;$\OE-[CU#3@.>5PE03$R[ F--1^1OQ M6#?\B:(ZLN2*C'Q>:4UU<^-"U6Z,@\\/%"%FMR**@K II9./"SZ!JD%>7*C" MI?/K'J^QBWRWZ55N?USP:5X-\N("%$[J<3^(Z1B6&+YSJ5: HN(Q M>8V'5=OBC!RN6CI:W1 4F&G=L3EM8'AG#93-0$(@JNCQ%6@TF]@>DKMW-7 M7+M&&K:?2W9$1MME[Q"C?-'SW7NT1AY9<3KX2<\/Y&6_"K4$X'HJ+"(CPMH] MZ"*/=3?_Q,X8U/88GCUWR=@;A#P0>XT25/7SJ6 ? +PZA059D,3N.J"[#E!( M)SE&)Z^&'9DPB28I)&;:&,!::?B*FB%!0,RO3*79H.>PF5_X$?H;/D=UZ2N Z\!VV2L7E;W23FS$F22O MZ"JU9>V%-%I?F6U9HJ/SB58H01P@&7X2I?O;L-:"?]34P=B\^'!U^!MGB67HX7)1L_-SUK533+.^50!KI[V MRU&@S.PXB-]*SY"Y*>5-C Z^'''C'#DC%50^::?*P*Y#$RM&XGR*)3?-F3-2 MS),/%"TLF:[ 9(RX@ M]O<[XH?4=L+(]GB.Z >=/C:-"?PRTZVRYW+TM/"NH>)*Y8GE-2 (OWXV1*Y= MCK*K]Z&FM;H4)M] ->]3V -,3ZOQBC12(T\SWC=0$3R?"9>C6?G[0F\^IVC. M&-Z(YIV SS=08/QT)@'3W&JVA'TB&]BBCP8\LWKD-7$!2'[%]@VI,?N78CY! M1'#0*QNE=,+%]\8)%]OAK=WX21:&P*#+P:@21:&;4S: )@GC .:,LC .,&]_ MP2YUD;*CPG>-DCGJ&0I&2HA48:NYL-(1WW92]]%"/)Z\YJ5SZ]H 2$BI[40O9_8T;@>'@Y_^0DUA5GR+6AA[)%I30L/AS^?C)[&6/(M:&&2 MN=*B(DHPN/R\H3)<^1;4<7L>:;QR::6H77[&4J7L^A8TN^7"O-7C=_E)4M7S M[%M0]/U3%#Q%+XS?Y6=M5<^S;T'1,TG?\+2\&'*7GRM6,<-:N+9^1F%^Q%O!;H!#D1PPFC@K78_W;\KN7S8&H-G^]&3P/K/QY'D\E_ M6B^#L37YM3<>\(+L;- K-QG5V@W;74Y7<3G-F.L>273PU?$B)KP'-F>XYD=A M4HM_8%,>R;A5B/Y&WH'NJKO.$<_IXKQ./K2Z!\H1R[U2SV\&Y'J\_BF3KR=@ M+L[WBAK&FYOVTEP##^#"W%1ULP+24-2%-%1^A5E&0C6&)QB5-#5Z.3:W"8"+ MNR+,-R.J"PWI0D/J.9KVEB02E-1P"$W[!K >&M:?KX;>%NS0NR@(F15*>[[[ M"9$YM5<+[ S]&:%+@>P8K9$?(8:IPYC [.?^YLG^!Z%INX+6Z8_'UNG=ZV3* M3-.QU7N^MSX-1I_&O9=?AW?,8GT8C9]ZT^'HF4$E>%@[1*RWC250L;:XG(') MZBR0&WF(/[LF" JX<@P8NRB3\I80)HU'XL\?F3JYO2! 8: U<4_LM.GGE7PN MP;@R'G\QM+_I(]]9+&WZ66/7YC>#8YQ6(N3]-YKRB&_YQ:Q#]%+DM!9I?C,8 M%JFIQNHE=DA;NTR'-AV5S&]=J7\UJ!?@T-Y MZP91.Y"/0%I<98QT8>LE/L*\1@;V\QG8!W!:+@MGGI),._^L$*.7B&D:O< MY#2P[6]R6C7;Y.XU4;5R"IZ M;7DWS56ZH[7L%&);#EPHM%8<77P=Q324[:ZU*]Y3.;#G3SQQ#3Z_B^,C&W5W M)Z>JO*5O L!K6:5&Z(F%>\<;]#>[SSV*[*)7NQ]/NMH-^(7N#@&+8]!=Z)[G MA>YYN8^EAWZ[7MY?E9CV$O]#910W'SDHI]"UE,U/Y6-2P@?ZM*Y;;<5U-1 M&?<#Y+R?D_6U\!'232R Y)<=_Y,__/DZ.6!V]D/;KM$\_>!LS>+;$@_OGA4\ MY!]:OFLLQ$..;PV^?YZF-9I-%^AW0CU7[]\[B?K<<] MH3/.(XH?.?H=AXN4U*'/\XSXHQ^,3/:?.[6_ZE6G6$\7YI\OQ0,X)7#.^OI% M<;C^IJ]?#H@[]1;FNW*W,!R+*X^C8<5X=-\; AE9F??#G"QJAJW-S>WAX?^A]YP;/W6>WP=6$^#WN1U M/'@:/$_YZX0< TN@\/_2DWZ*A45\R[:VF%@"E3,X],.O [D5>W\C>'[GV8&N MBJ,&'LXA/;<&HX:*5K=9PTGXZI.W -%U_-3I*@K99[:P8 \+NSU+E#8.H+[A M8,0/Y"JW5"&#+VQWA*Y([$CD)Y#>'#$24;"K\*65 !S$FE2!4CR"L7?T-]L? M?\6(,E8O-H_L#"OSNQ5M#"?4K\@>KR4)AM"D1_$MNF:[N%D?X+9F VV5RM6, M7!CB%>M0(.BZU:[-VA:0MN$B"BL5GXS KBIL5Q56=;ML!PNV^?+_\4$YQ]3^0MW/VFD*-YHU)JDR*JBQ\IDD'VC19$!I.$5T.Q4-[2[-9=W)OX-^)/9G"-@(^R'*) M8Y3XLD%$C8#8F"GFU[T]]NO>C9Z>AM/8E\OC.>Y&S]/A\Z?!\]UP,.E!ER!:2I<]&<6)'BOKV7@79=@"$<2$6%0$U<#5]6F/TYN%Y M'F,UP&W'1ACS5D-#9SQVQJ-".H\\7AJ-V+9E\R//(V(:](CM-^RQ UCR?F-P MKWP_T[SYV9B.YB35;7/PL_)H]D*)&SGA[S9_8S/NZ:36UF^8L">QX#=CGH9LIF?& [ MXL12S-C^<&QL3Z;CWG3P:7AGO?3&T^?!>/+K\,7J?1H/1#25]?MP^JO5N_^M M]SP=3*;"'A\/'EF3>]'@#XNU?Y[T[GB*16><5Q,@*Q=U?Y/]HKF!+=+!&9CU M9-.L.2,.J(31-?8D97+4X.=07R(&OFV6,V=\0DB\GC-'-CV_8TZG3G@ MN8R &I:9'NMI$V)'XPX[ FG9P9BK#=NUXPCSSO5UJ:XOE7KOK(Q$%9(L%:FB MJX'!^ZOR"*C;>+]',T0IL52\TQ MV-FXJ(Y1;\'-T8\"AF,0L%/J&_;CUZ$Y7L4\%Q^//1?]U\GP>3"9\'B!_O Y M+?(@.C\#1\0V<3-E4,_Y9X0#G-A9F=_,ZC:8=M/L))-@I?%<**'AN"E*BBT[ M+954MKH1HXIY$CJ@J=US,J(8!:/9T'?Q&KL1.Z1N MALLEVQ,HMCV99NJKPY;N#H"#Q%AO]P[CI2F&-D?S+"5]D]9L)A-*Y'4.3-?= M\PLMD%"VJ^LUFOU&^/7ZD.%/F?T2)$KNFLO=J#, 9EQ1W2A+*AQ3)(V2F)($ MNY0D%#RC<#03T?EZ>1?K H 5653*Q0B$8>ALH[795A-GFJ88\F(?28P,VXC8 MMVB)W*(FT0=#DVA7#B.PR"RMB)&B8MF^:V60L1)L.AL*B WUP'42B;HP;!6S M_3EF2*2%%..G2?-*;13IX:)LK4*4MYO@J<9TAR=_CE:?P5NT%QBV60D5-Y2R MG.I6)7W/$U7)"KE3Y"Q\XI'Y9HSGBU!OI.6V F"+E=3AK"ASR6RW,'%2K$O< MRO-5:(%7>K%I6P X;%<@,BV)T.SE\_ ^JBZX.N]CYWUL??_JO(^=]['S/EZJ M]S'CON#5KN8^_HL=#5R&)IYA>WLXT#HR$I"W0%S^Y^A&'0,".%B5]6+6P0XX MGLXJJ4QJEF0J)C2@:;)! >U#]NG15QM +U==LN681IM*$ODH&!;0ZGJ&^ M2AAZF?JZ\P@W0+/(>\4QU0V/6%$!<9K-* M8\86.!KPB1#W"^;FF53*N\\ ,HV;E>2.=#C2JIX#C1F"S6K0#Q TJ XF7J8N M9O_2G(=".BJ@8TX;;@HI3RY3Z=*$F*G]-?.Q ;U3#7QA/@O-I*Y+>U6[ ='O-$7O-@;37!5PSA&UL[;UM<^LV MDC#Z?:ON?\"=NT_EI$I.SDEF9B?S[.Y3LBV?Z*Z/Y;5\DLU-;4W1)"1A0I$: MDK*M_/J+!DB*E @2?$739ZMV)SX2T&_J;C2 1O>__I_7K4N>:1 RW_NW/WSX MYOT?"/5LWV'>^M_^L(]6%W_YP__Y]__KG_[U_[ZX^*_+AUOB^/9^2[V(V &U M(NJ0%Q9MR*._VUD>^42#@+DNN0R8LZ:$?'C_S1^_>?_-A^_)Q<6_"QB75LCG M^!X1P+[[YD/RQ54,SO?^2CY\^/9?OOWN_7??\[_^^J<__?7[/Y/[3\G 3YRV M%:LFO3X&; /C^VQ27<@3\ MZR(9=@$?77SX[N+[#]^\ALX?8A+A:PTDR?#7L_$Q3Q]^^.&';\6WZ5 .R(G2 ML5FX?_I6?OF'?_\G0OXU\%WZ0%=$S/YK=-C1?_M#R+8[%["*SS8!7143Z0;! MMS#_6X^NX><$+G\ +C_\&;C\?^*/;ZTGZOZ!P,C/#W,EOS_D8,63!#=:(OIV M*'8>N?G01CQE9]9E3&HXS+WE?^7XHZ\1]1SJ)!P"RA+(@B*A*P 80/MV#IX+ MZN\'YP(+$TT*J?W-VG_^UJ%,V"/\<0%_"#GQ?_SMRN=>9OH41H%E1PDD0?Z_ M_:'H^WK2 *(!UC3(4VX%=H*+_UDAAWC$M[;/S7\77;CQ#R.FKP)_6TRI1.<7 M?/DW]ZG^#YNPDN,CH*&_#VQ:ZQ?-DJ^2=$HB'P$NGWH7GY\U\E&3TJ5D) !NFC]70T[PSG)4/QJEL5?XGFJ<;A5,)* M:EOK8P8R^57 _F\CRLB],YU'=!OJ22$[?%1*><9GB6*F8T>CG.<4=ZN@ )\( M! -JZ2.'6,)^_#5^+RN(:. >'NC.#XKB M.O5(_'JEX.Y4Q4Z&X=8V%;&M%2\%3"3DX93PG@;,=V:><\WW5"6LGX[#KX"% MG)VJ7VX0;N4K)K6UZDFP?/?A$ \X (:6%[(8 6O]'\%0_'KGXJ_LT7V9!QN M+512VW[Q32$/Y@3EEON&N?1NOWVB00'?!4/PJIZ*GT3E3K_'J6I**INJ6'RR M A")!#F4:CW0-8.S(B^ZL[9%RZMB&'85*^8KKV;Y,9A534%I2W4[0B4 =BB5 MFWNV'W#W*?;&RX@OZ5?^WHN"PY7OJ#6P:A9VA=3B.J^?I5,PJZL>X2VU-X=D M0@0:X@(K 5DU>)%:NU>CQV-:[@-*_ BL&85;>*Y)9* MR\&3//R!U_NIXW"AA?%_X%SR@U(6Q6.Q:V@)AWGM+!B(63/+R&VIE3',2?(' M$>?5"V\P_QGCO>)_+H)'_\6KDD)NY$@T\IR[0GT\#AN!-A80VY4N FA8SP'X MP'HH8HE%^V%D MN?\?VY7NFQ2#1Z*AA3P6ZF=NY BTLYC>KG130B<<_$#[(/#6TX!:"ET\^1JO M]A7QD69_9;[#J6&%%#;5*;$ [2!5 C2<-W[C>^IS[H+AN!5)14_B3J=?H]3 MI914-E4K 9 (B(/M?9?4W@=%5+Q4^B6J??XU0M)95- M54M (?Z*?/CNW=/7)('?OWX]!A:\J5@>MD]^$:>GW^/5K$).$K7*?8E3IXI) M;*Q0$AJ1X(;S4[-7>\,IIHH[.<4PO%I5QM>IS\J.P:ECI90V5;4$*$F@#GHG M=[4/ NI%,JT![(?O;?=%.Z;75F3%Y)1<0BJ&8]?1[D/F MT5"]5I^.PJYLA5SEE2TW!+.R%1/:4MD$4)) '4K99EL:K/FB_S'P7Z+-E;_= M69[:PZE&8U>^4B[S2E@X%+,REA/<4BD3X$1")S'XP5SAAKINE5*>#,*NBT4\ MG?C!S C,FE=(9ULO"#"'5C..;@L9C;[]VW)C<4$M]A'4$X%#(O6NK'P2=C74 MX?EDXUPR [.::M'==A,M;L1$7S@U!KI8+4MHHHP1(!EW# _6O>=$L]!UY2W;A6D;L\_1ZOIA5RDFA8 M[DNBA<8R=:N++")X%Q M'UZL+6LG59&Z49A\QNF&>Y=F,6YTO']0K2@?6G(I3:YOP M#VI<9QX^O6Y$?>,08'%W/;M;SJX)_VNYN)U?3Q_Y/RZGM].[JQE9_CB;/2Z- MZGQ1T4+EH)'H\5FAPN(1(]#-;HH3IN"ZJDC82N-N%94)2P>.1//.>"O4OEN\ M=0@U:.U "V^[*SO81!6G84BC,-Z>5:SPJK&X%;*4PZQ.%@[$JY;EY+;=J%L" M^E]-J.25%6ZFG@/_F?UCSYXMEQ,43J,K*P@.S%O_9+E[U3*M.Q>WRM:20%:% MM2;B5>EZY#=6<0Y>U,JVX0]Z1&0D%-CX0?1(@^W<>Z9A!&N",A@H'HI;E/P*FHIM8V# @!Z$7&HA!W!&@D*;!L*](0/U*;<.'B8?$>CXEQ>S2FX ME52'WURD4#(>K])J4=WX?BD&3H(4^H1X]#2IMQ,FHVS/#C2Q5 A?__-??GC/(ROX<\E5DL+#2O+]^PD1#71@2;KF,.6G M'\2GWYDP__N [BSFS%YWU LI7Y 7T88&N7A3(7B]F;B=00WNLSY!8QI>UU"' M^*9V$^,@5"()A;[[@(?8N4V'\6VPSH8+O1I7*NQ(5+-;)2R$VLL:Y4>66[I& M=_2JC'X[5! M+:J;KPL2N%@/: *YO^"QRC![95;8J0G#7'">+'@0>DLY(0]LO8D6J\]\K0=7 MH9!$U1S! #_PE]=[/D_Y#I39*J#Z/1' MWW=>F*L23.9KW)IZRD=6*9/O\.K?&85-52T!9.3(H&\N!C&(N1=QHMF3*XT_ MY"O6[-5V]_!HH<)8-*?B-J0Z_&>-3&<>7@.L17U3M3XB*?'ZPP1H@_#+@9+D MVHE,MW#B-R'&HK=KNJ)\:^= /?TM?;1>4\X5,BJ=@-N(JWG-FJYZ-%Z#U:"Y M[?F&&H61U;5'CA/0)+)>30>DF5/3.Z[HI:>)JK&XC;.4P]QFJF@@7I,L)[?Q MYDF<;GN^=V'^9$XR5WH8B5[[\CR<'V;CU:\3^KHYOC9X;MW1@;4Y<[AEUA-S M6<2H9O)CZ03<9E/-:]:4U*/QFI<&S6T3(MTC"B-9D4G:P;UU@)0#O6RL?*'V@KA51Y]P4%2+1F8=;7;4Y MSVINY22\2JQ/>@M]#O9\+\=WB9 D(INOP;U@(%&2)^K1%3.6%0G$:2MXV7C< MBEW)Z8DK+AZ,5Y&K26ZKP.>Y39GXP?S];\+YH5R#*R?A5F,]GM57P*OV!,H M!^,VXG(>BZX"\B/Q&FT%O:T/Q&.X*@T=]N2_+R8#";?:#^D8Y,Y9A<+*WO_P M_7MA:?#)WZY\3YPE_,RBS=4^C/PM#5('<,E<#F$=SKW9JTW#<+&*67V@MK_V MV._4.1%-5S!QVFVG$@/S[@2@62_@Q#5>Q'ZF#VUHW_ K04:L* K8TSZ"XP02 M^>0=^YH\Q100YA$J:( G++8?1B'9>PZ/1Q!:RC6QIM?##?'1MN&53>$+S1*,72H_3]Y;K'N!IG,]L"+&W M\NCC74+=U_%.4<@&7N?$PB' HC,13W+HJP5D38@@"^AG\K;' 5YI&+&MV&=& M,I]:C+ B8 V*0U&(Z@,N$BX3?:H*A)8B!8JY5/;;O=S?'J49RT]LAI7BBS:< M."N@XE&%+0GGF 1<8-VA!2Y!V$W$XE=_TL9 4+90X3..R4/DSZI4L03BN,;1/R-&N M(-6\E5]7X(WX>CAP4(,V"/7$?'SM <*@OB.'2$C,KLUYNHFH"<@NOY/4L2[%P-&*; MKJ:Y;3"I1F'&COOC^#Q#T["M9MBL#K'16V,!-XJ]&UY[*R*RP]V:Z6U:1_LS MPV8#+7N8+)@%!>1\<4I&/5MM1N4S<)N5!K>YJH#JX7C-3H?HQCF=1]BR$& 6 M.GEWYT>4?/C^:R.+G7&^OSOE>Z"2R+[]V\9W'2X?J+C P_0]%,):K&3_K7LK M$-4?D]I$URRT73_<\Z\JZ])W 1FW0^A0>ODJS:W!XG4P73+7O [TD8:O1/&3 MZ& DN_P^B"_4!45E%7:+1^(VCQ+N3DJXG0[#J[YEQ+8HT1:G582R]^$_O__F M_?OW'_Y$=E9 G@''A/QIPC\BH>R*:.VCC1_ -=B$[Z*23UD8IDF0W;5-;!H7 MQNTB2\M&GP_#K=$JOD[#ONP8O+JLI+1-H.-[95K\+^^+U?A_G^CP'_\R^?,' M69OSC_\R^>.'/TX(_Q8NV]DS=0_I\(R>D^_YP.\_B#GPYX1>V!&U"3Q\#:O$H]E"Y*!8. MQ*V=:MZRBGD^"J].EM#:]A#R''2G*],/DCF/KL5CL6%Y3$#*]0E2^"#Q;D+X M6OS'/_X@U@W^YX>_?!KSGC7CZEEXS;H&[2V>HJ5II8Z$:2AC*B%#'*/PN'$7T WU0FYJ,N/FU@^A M%-!B]6B]JI;FVE!P:WQ#J9RD6M4!@=<6FC+2A6'$;S2S&$6_!AQ'X-HGE^CU M7:5AF8]<'EIN= AI9>+;\G3,K*"Z UQ M57F=WP,_\E8_++B?,)P5,_4<;4>I,0VWV]3E6Y%44S@'KTO5IKS#])M"1*9S M,'U_[^*5KMW?,^7A455VK"P&W\C222VR'4 8#7 M+31CHW5)K6Q[MWQ?-RF<]EN+>"12#Z;3OB:/&>!B*_ M0^M:O60R;M]13P;J) C53+S>HB;]G:5*I!>?Y!WSN(MP72L(X>&X/&$VDE27 MEX5,:YJF][!: BR8-";-5_&LUOC3&6/1="7=G6GXV46^T'3Y*1KUGHN<@AH2 M2R>,3ZWSO%:IM!P]+G4^H;EK58X34!"J\>*8ZU)#7/E9XU/H JZKM#HS95RJ M741XU_J=S9@RK.29_+.:$;G>3-S*7H-[10;G^ +Q.L1WDX2(,03/2$$S_BZ? M,1H]UXF\2X:/0J\[C[GS^HPNX#YCO33:5H\>F1*KXVS%T!$I;T<1=J'BX@BO MSUBNCJTKIHQ,?2NBZK+Q(U+D+N/I0FU&%$SG$F9C20AJ%,(J&X];F2LY5>9U M9P?C5>-JDKO)@$ZUV+#FRG0^L1785O?<4H_&K;457.9;#Q<.Q:NQ500W]KF+ MN^O9W7)V3?A?R\7M_'KZR/^Q?.3_^32[>UR2Q0W_ZM/]P^Q'/F[^TXS<+I;+ MSI0X#**, O-_'967_^-O]X'O[.V(;V-I\,QL.GUEI]ZV9!A.=:WB"_14-0:? M@E92VOQT30 5V3(Q7/(K0/[O@95/Y 5) L)K?VNQTUKB56/1JZ&:PQ-=/!^( M6B%+R.U4*R7L)GJI:'TP]2SW$#$[_$2A-L8)AXHA.-6LC)^TS\#)]\C;!JBH M;:I3JGS_W/4[UZ;01J%YC:13H%RUPO\;,=/61,Q,;1J1*F M W!KWCF9[=1-=/4RYQ(?:$CY+[GA]G3-R7#]'>Q88OU7+AOE9=4CN_DR+J$+=^DMZ/.?>))?.P*O;FG2WK4Q0CL;,.^-^.<^"%X^)[7_L M&3QE8"DF8O7&_3,-GOR1\$_B5LGPS(/N+#A<=0]QQ^#S#9.9[)YG&HK^$C)+ M! Z!._2/L\G[ 4=9H_5/]-M([L>:312 MK@JSS"5.\@YJT'Q-G@0=F>[+1U?\Q'>0*Q893(7F@HDCMDM)2ZFXBT:/P?TI MN3QW76=#L;L=-<$MU5='4X<+E(9BU<@>MV?V..!D7T;>Q;!Y_"<*\IEP/7EU),9MO8(P?52+30+5\<6K*T-%0]UR9 MJCVN4WA]&D4!>]I'4/OOT;^W@NH'7!V Q>UWNI+;65/Z%C#Q>K?..&MJ8HN" M6%7 I\;S7U'/$O5^RTIL[?]_(4*Q'B M/9PI\R\*9%GSI^F+AG&:=:^_B(X/Z(6 \3F,?L70U+O$5!$[)HM$1TJ(E9(2 MIH5S^;;'A+^YID_1DG(J9;'Q9XNY( =._M)RZ6\!!"3=[=]Q?^5AP:# M"^AJP^=!P$+V1RFLA13D26= 95+"7DUW("2(.R#?,R->L%]()!KN+8_2A MXO91'4FM[G[C344/=1EK>_S2D@XC!S:F92>;E12U9RL\\1FJDMBI."K:%I;/ MP.UI-+@]*2.F&H[70^@0W:*(6'E3P6&BE.%8[/U$MM)IX>!U$%^4-(Y-2NE> M6B&S*TYCJ^;@]D=:'&<]4ND$O#Y)C^RF:IQ )QP\$? G1& @OR8X3LO'#..G M^F7[[,;H6!;:R)%O(;=U)#-.<]4VTY&99P?M0\$$MG= M'HH,+59GI9MUPMBFL'#;;BL)92V[$2"\=M^.G::FDF E,5HB\<)QN<1,,JB1 M1-"&)67%DK+CXNE23/M0WD?8EFOOX79"W#I@"L5KB:T+T;\M5]3:!;T1U]/9 M;4$MK/@=34=;HY<8YT7B9FIU91@J(=2 9!"YS#B^U.VR4A_**-UFE50T'*<* MQ.A<9R4C/3E/%5XCMQ1#RR;9X8[:A?8M'2/5DI(F&GR%@"8M&]]U^-H[^\>> M18>*3;#N7-PNLY8$),L6-%K1G3,2W2_CN%#GBR:,0-=+R6Y\GRF DB/4KENSU+ED MR#-8V**E:BQNG2WE,'>]4#00KXZ6D]N5;O;0GR73!C$3%*D;4%2,QZE]VIRF M;2C*!B/O1*%%>N/2B0"61!LK(BPDX?Y)5N.(J$@9=Y.$2]$R4*2&;ZCLXAH, MVY>B5R%(X$3*0KT9'*9HI.,PT 3+O;>8,_>NK!WCV\=" ]:=@].(:W&-QZV]E9Q6]*/%KK75)#=.Z$_Z MT0K09@JL0_,EZB3I%:4JJAR,6S_+>UV>A"]67A3'R;QP*B@4-7\XOAM"K3O $=WR]7>/-\A-W8X&S'=F7FGEN^YYO+3X1)N&?5^V2?:6D15$ MZ!@2D10--ON7/] J1ATSV6[X;3?<\+5MPU-H2%W M2NVDE+^A: 0*L8-KR5#CNI$<)9@0G,$E^93BN(H;%/])/2IJW9 7%FT(CA#0\43F@T?DA379,>R%$MB8]@KQ8V(DJY;-7&M@L5+X%:P1HE%:F(1OM MQ;X0RNCL2X>708PKQ@IC?4E(;RN[?DUP T*+ 9(4(B+7(IQQ!YZE%,XH'4NU M9'27[K?A5C18,>15$)F3=",/-(P"9D/F+PR;OEB!\S%0UZ1L#&R4AJ4I(^U5 M6PEI=":FRT]3._N)0X;-I.@9G2")36WOLN7) NQ;X ]+613$A_L69&:P#RRNU M@V%.H/H46SZG(3EOFI $ 2HG(**.A#+H%_J)1AM?RQNHIX[(+53PK_0/BGDC M<115U+>]J--!9FA_.H@<^O.;O>JS?G9 M!J1L$E['JD]ZN_S\#(K\I=6$"#0FS_MZ9?\(_/3\ IMARTBO@:#2B>,U[3SO MNK8M9XW3N$]H[\VZ)1YS%_7]LJ^V;@1E!P;@_RK+<7!$9>;=4=J-Z-%7/%5) MZGY"[+>%YJ7BS5KVW/J!\M@P9!%=TN"9V52*ZX':_MIC!0_.V\L._"OD M7U4-@AJOOQ]: *T6C8LGL5S8&2H4_9*'+EQR986;&]=_"?7KE11-P6VG.OPJ MJI.#7(7Z"BU@I M,B,E5+D05BPJ:169&X!;T\]YR6KP\5N\FEE 8YNV&?.X5J]HM#B!?[I[42LN M;O]%LOV_H([$'1>R[T6<3A>&S3V^^:1A+VW,-#9V'4O#>..?3-P*@N8N87-^=?P(3!!=C&)Y.E WHG:Z,S[&L]"?DUWG!,F-IC\;Y?&+;6G6_#UOQ<5 M+:HY%;>1U^$_W_6Y>AY>8ZM%?>,ZJQDDQ/(<8F6@&WMF?G:XH]H;JP;CUN=R M'L]>G9^-Q*NS%?1V\O[\#+RINXE^>,5XLIAU.8N5R#T)Q3DJI)^H=I>5DW ; MJ1[/N;BP= 9>H]6DNW%,E@$/5XP9!$1@,'*S.C#35I)[RKR(0V2P*;?"D)I) MCHHO4MCOX+L\$7H#VQKQI-Y,W)9=@_M<*^WJ:7AMO [Q;5=I#5R&ENPAI'!J M^3;X$[[-3#'#SM-_@K)I?'_Z3+T]-.>2Q!AQ!E/;#N3>(N<2KUEH^WLH".XY M]P'=LOTVG'O/--Y>J]QJ4V"X748[&9W40FL ":]C:G3%5"?DU;-P>QY-KO/'7J53\/H27<+;.HT*/(:"D[ZY3^##RXVS M=-9!+%B4LTPN#@27,8L*B92-QVVUE9QF[54Y&*^E5I/#DG#B=X1'++K"?FBLLO'DA4W$>WAXK; MKCN26M;Z6X+$ZR.Z8JQQ7M:&SZ,AO%W,W.0*I"+J=8]HC=SJGLN'[P]$5/Y M;(7%'6[2%4\=F2VK^RPWF?-Z8K**$^K:!K@XR0TOJ(')(0$(B2#&[ABR= M;_-W%G.2D#R.)K@O%"Y2>D9MP6D"&YLWJ".C'PQN MC]-4+KFM>TT8>+U,8TZ:%PU-8G*!<4($S@M_=<&Q$H%V$C_!9C9YH,[>[NOF ML#)9P*!P7,!(@D0V^]!DWH!B2PLFZC+0 M??11B ]-N-&/-.2AJ.=[%^;#"?7&[=XZ-#JS.,X;F]TK.-<[K8@GC* #(;>(M"J>.S4NH^:\, M!T[FCX7S%*\2-;,?F63IKG%R?5-7,;.687"#[S_X?OWPA? )P6L M7#)132/D@<"K3<-PL8J+C/U.G8<8_XE!Z,H/: Q.QJ;RUJ;\6^H!%7!RY7S3AP\J M'>=NFIN&R7.$XO00UO _5+"RHD M5PL ;I]07Q;-"D[B]0H->&B[V]-'V8MC\"/++7,, TKDKG[A+D0>0[[M[*!T M;3F@47H0#=EH>)(2**/S*#J\=%6ZEB6X3%>\XT*P*77"&T[5)ROBVU4@1:19 MRLWGU'.N+-?E&Y,E/%"&]\G5Q0G:0\5M4QU)[:2R;AN0>*VM*\::IPQ+_-+P MMBD%L 76>G,_3+2/5DQP.Q1:;@V!#>.X8K$\^G&'/LX CT:BPST70,2%->.? M[F"(2N!U "!W1[5ED?,\VK,1.YGZ/+3=).BC-)0S.:!,7":'_E@=?QC2M:^[\2+MFS))/_A^5"6.Z(>[.&! M&OXC\$7]?\-]D;MW:)AC1T*T#F(D1\AW0?)1B(@!J+NZ2#^$_!%!]+ 73L/^ MW!ELY-%/^IN3!"$1& E'24PY?:-"$6HB-#[3X+"S9:#[4'&>E@8M?4:C,P_G MVE";\])X\'32B,) )>F-E3YQ ]'1#1R1$*./9 ;@/F/?*.KKGK%\&2^)-/P8 ME/1CJIXV,L-6\%UJUR=S1F36*LJ[M.HCC@D16+!8=4_,BT4\C2@SP>I$M&^! M KL0(2;UM7%?\[0^^4?O >K+HMEU#EZOT("'GBZ&"U!BNACN0R(5%\-%]UN( M/,8-\RS/[N!BN!S0*#V(AFPT/$D)E-%Y%!U>NKH87B6X,%T,9SM^SUYI8#,N M%XU[+-4\W':AS;GJ^K9P$EZMUR>]F[M%&L,59XF C_@2(0HUAW,RG;2&W."1 M*72.QU(M%B-'I+IY>CO2U_CE<:RLZ1GGCD,W>>81OX1^]!^M5WCAM?%=Z$M\ MXP>U6ONU (=<[5O*J>CLI"XLQ*;3EJ.N[L_K$F#X&&9P>:5G4^*2!3H*I&^_ MXLZZ(2 F(8TBEXJ3'+ZPPH4+W+V\6(%C]&26"^:!)CYSL>*BV?J>\-45@BZ= M. [/4\U[D8]1S\+O331H[\IOJ%$9]A ]RN (-Y0=SP"TC$MPGZZTWG"CM_GZ MLFAVBH+7!S3@H:?SV *4F,YC^Y!(>AZ;9 P5'229\!&SU8K:T6(U>[5%FX@' M[D87'H@%_A^R49XM5P96810P2"B"+Z:>D_\@,W(N4I8X:]7OJQ*^A?.5F'@5AN'T:"A&=^4KS5.'UP8ADT]2321;$'B9F@G#0 ME-AQEQD>\,B+:,^1?] CK69:/+<0KBR[??[2.Q9Y]F>4V@>6P9!L)3D?VRX@ 5RX'["VM -T$L_\3MG;E_3L(4/\G M%#4F!:-^OR;1?7A]65INYI4>5([JE[E2>7IB181"Y=I57%"O/WDN(RN(O@R) M/M$U\SPX-E+)=9 E=;G?[>1EEN4"O3>N_S+W5O "#H10D:RG/QOW0E93"MDU M2',JWN6C+@--K2&+ASCMMKJWCHOI6]=N*GY>D#]BW'R5UKDJ)R+!Z'H^HDUPO.QO&QA.>D M%W7SB&XK7PC4F(];_6M+(G>3K3L9KY'49Z&'X,.31!@//:ZL'>/4B7Z;#HLX M=;!A$27&+_?1G1_]0J.2F*3&=-Q&45<.^0,AO;EX3:(V!RU2KPNJ1APKX,/' M5MRWAB\KUDE?M]SW7?6U4=0ABMW$#7NECGQ?_QA87BB;8CSZ2ZB9]LBABJ7V M1*Z- . TD.:R2.L0U9J-O Y1,UY:) 1R+N33=5$B2"X:*\">%A,ZXH>,85'+ M[P(D(..N8>OV#"N>&!L1Z.+B'"2#$(KY")0$<,JJ[\-WA1A6)@H/6Z$EW;G- MJ?/,0RD*:;+W:9)L,>_PK$=4&6+)=WY"?56-MUZP('; _4DU]=+=HT#NRGMD MN -_;\74B2UWMO"6TOF+UVP[267ZO:\HU#7LLH!0U E)A--$TL)'BY5Z,0'* M2$Q:^KU_K!+77WTXK64&LXS[T6$3^^4'MMY$B]7G4-;<6CQ%%O,@ZSO)B>'B MK]?@J!U$G&M6A]+*;K1;@,.[]^Z"J:XZ STL/B=6Y\=TD'?B>-??A]SVPJ^- M%$_')*+,60.Q A;"-\)K28'!/P,@]\)?7>Q#D\7SIO+PA%-T[[O,KBZ"4SH! MMZ.IYC7K1]2C\;H)#9H;]P^<+N=+LK@A]P^SY>SNG6U^'SW.+_[2.X7M_.K^6QI0L$OK9"%B]6]#)EE MWH#G+-G:8RMF0SW<,YD]TM?HTE6_3FX)$K>1="&OK!FU@8?7T#KAJK$I G*( MD+/H1=2;(8 <*2 )">17((((*O[;R")M5&[7L^75P_Q>."[NK"X_+^=WL^5R M!$XL[@(+6[*B?MX52[;^;-RNJ:84WR87CV2G^>//Y*KS\O'Q:?9 T8+J%JR:TP?M0V4+L6Z3N^N9F3YXVSVR&WRT_WBCN_*C:S- MV0RV'.]I,EOEEKHF")Q6W$8>JG<;5?/QKM6-N.@DB3+&1@0ZDL%G?LD>5"B8 M?(0X<*\Z6SX;A-O.BWG*6G)^!%Y;5=#95/%N9].EF8.26^B)0O/7/)6+3^4D M[&JHPW->+UQ<_<>/B]OKV<.2S/[S\_SQ%SPZ M?(SH*O<^->:/4;-+)%&MY 63QZ;O92PT5OT,IJ^(Q$4 66:[8W[9&E >&5?P ME4%?D*WZ+NI]1$P^=CTR7;&XU8. VQ\TD$;NR9S^=+P^H0D3C6JF6Q)HA168*6/$I,H73^ M:&Q!CXO&]0@RR$1R3(*.Q/A$QW8$F[M!I8+'1:354K27QO(9N!V !K>%-6_& MM-3I$-U4;^=W5XM/,_(X_2\S!Q4%O%4M8!531J>OI0M4V?A1:6QWKE8")QPZ MJDU9OSP;-M.9%<#K"JA-+%IQ5:PH)<-QFV<5G[E>"8JQ>,VRDN+&B2"S1Q*K MZ+O;Q7+Y-;F?/9#EC].'&09MK5I1RL:/2U]+UQ+EX/%H;(PR9<-!$P#:_ MA/3'+3(#?6#A;R'?DWWF"A[ RSV-+O%5>V)1/P&JP>V8W/'N*L M6/&TY.-L\?%A>O_C_(JK]LWBX9-X.F?DIHJNX>3Q@>[\()+%IG7OJ+1FXE;M M&MSG[J6JI^%5\SK$-[Y[D3A(B@35=F<("2 U]QN+!3]9[CYSXU:U>%5,P6W@ M.OQF+;ML/%Z3UJ*ZJ2;?3.<9^32;+C\_S#Z9RAB-RZU:[MSCS(E' M!*'^@J4_&[E.UY-"3KWUIB+6])H,-%;Z! _)($*UB TF"3SF#RVS620XY6'Z ME>B!LJ8>O BODTM1"P9N5]!((B>7R/H \+J%9FPTCNT6GS[-'X49B/ .GC_. M[S[.[DS5 M!B7R.YHAZ0-V :50D6-2",W#@Z3;)(T(D MJ&M%U+FW@N@@JCQ"2WC?JSS-K)Z&VS7H\ITOE% ^!Z_Y:U/>/-'V8?HX^SB_ M(O?3A\>[VH_S&[YE&LQX1?"Y]\M MIU=P)H+*#O37SGH0QFD=FJMFC>GCLYD^EH48%Q'(2!8;JL5R2)&,WJ-<[D/F MT3#D$<83WZ?KK*H54W#[#!U^#3]"0#!Y4J]U0VJEZU9X-P:W$Q M3UEMS8_ JY4*.IMJWV?9020%:%+Q*JHTZKG=VD!P*VXSF=2H93H:=]R0CT[K MFH;YPJ9MK$51TK. RS#+9IA\&M=$"\NMHBN8.(VD4XFEE4+; D1>1K0S]AH7 ME\]U;K:.Q?=W I'H;F4GA82?8B*@;=46DH_Y_Y,PHMMMVBDFB"V56H&7]+RR M\P9K)[P-VZ?-N*BUG-BQ:G-"!OE5$D),[3=Q2.],+IV[^0=J^VN/@:EF.CO\ MOWMG+0I?U'#N]2'A=^D-I7/JR&N"&8?[;LI47T[[94/Y5V&FJ\K?4UH(/,7: MA[)5;B )_YTF?CM,.I,'CJA%*YS3='E%_OS^S]^0N6>[>XNG(&L3W^?P?(NH8+0A SN;JTU!:_LI9YS3;VD M6JL5!-#G4;H#<*8BJLZ8QDJF4?.AMK_=^1X,'-:/]B_:% -)4>!PC498-WGP M]QA8#IUZS@*6[?B\/>0K V7/UI-+)6&*8R'=N3C]9B,)9$_WM";B/=2K1WY3 M=4\ DR-DD^I^Y8?18K6TW*K3.ZT)N!6[FM=\;KEJ-%X5UJ"Y^0%$&,&R'\?* MJC!UJ+3P7OD4)WRRZ3/A,L9*0, -3LN.8U.MO3@8A<7(.2; M4[YRLF6<=1+V,S';U>"(X(4_[B+"0>'Y$7+9ED3A@G) MC3:^X[O^^B!.!*TP MW&^% !? 6M0W+O66%*B6.I^B$3I/W@&FKQ/5 M-WZF8U(R]YR+#?_"O#,X*82GM_&MGH7AQ75;2<33[8%W"&Q<\I!&)"P6_ MN_7#\.MCG4>3BIT6&?HD8@H1I-1)$Z\S'[>RUY9$886IJLEX#: ^"XV+SW!, M1* B&5PFK:#H#5AIA%>5_-:]:8/>PRG07.73YR,)IW?T9?,"X_ ]_B? M=C;W0,^--P"#6\N;RB6K^W5AX+6(QIRTO+*"(XIE9'F.%3A&S>2:A=9Z'="U M/,];?01E< <@>U#%4]&K?-57"9-1_%4+R6 M4$5P%THM<"1JVN0);X>;JFF:BA3>^$%Z830-%ZOXC?%R0VET;45\,#= R@4> MA;($\YXZC_XE_9&ZSJ4L-;FB@1\L:?#,X*6.--+%\8-;9CTQET&[+OW-&@8* M<=LC+EF5;"Z-DX?7[V 44A>^+L.-2+C,7!1;HL98S!,13!'@*IX&43N?D*&0 M1!LK(H&H;PNY^4<&OPKCZO5[N)Z8>\^^^RSN0LBOPH\;S[1ZJS_O._+^:@5H32+@7C1;2 MR0=XM<'@=<)MF.G"FDX-*.O[X" ^)H&9#AJ/3TKN93[\],4*')E%*ET;^#1A M^!EW5_.0OB,DN*VP'YD61U]=8,!KNSWQV(BJ*#%S\FFKB COHZ/Z^DX]S1@OB/>4NK;???XQN(">I)TL3?H M&-D8'$-?+/?F(XZ/S";)<9$C6W59.\8C;J ,SCZAD@"6B" KRZS/G=H1>]8- MN#L!/!:S;RN[JM6^'M0Q&')KW@:QV)@4DM!"+LC4<41A,=&NUNCFN$J8#S2, M F9'5 9.GST6A2)FZ=2.ZV,9MU$WE&H="Z^)8KSFWI3106S_2%PR9[S3L^,!N]BIJ1#BR=O1VMX_B/<:I+&M4'6$9@REWSFLGEX89HLB1*I*0E52/3PDK=@UF_4#\0N3R\,GZNQ^D M)>(O#P]T!]E*WGI)U^*]5LT5MP7@L=AY6]D5VW53J&.PX]:\=6&W2,?@P\:4 H=O>Q.BT1ZI_XEG!"@ M-'Y^$.> M+/SM\O#(T4U?F:H1>OD,W'Y%@]M\=P[E<+Q>0H?H%@U"C[ ) "< F_P*T$_- MW(S^ CW7/G3.U95/;L;(]/>,2;L5E/>C MW09#$]'[+KY7NZ-1:3BB&HM;DTLYS)TD%0W$J[/EY+;MN9YJ9V=*&0911B'Y MOX[*R/_QMV5D12+U^1C@6&Y!_% U%J).KN)6 -KA++^*T=']>.F%\.JO>DZM'CTMO.UK"59IK<#&_#^C.8DY2 MS'/J.8MH0X.K?1! Y1F1,E:ZUM<"@%NWZ\LBWZ1#=S9>W6_ 0U-;B%&E963% M TB!C<3HXH1%$U8AZ."1D*UM!N4S<.N]!K=912\9CE>S=8ANJLI2:R%PMK%I M;J8"7QWU+9HV*AU6\EVBR&=S1J/-:LK;[ (39O"^]>Y-WNU:1AFRU?%HPI5N -P.%6[*SF!RK>% M9=84'-_>BQJ]$"YW_/-W$,BPK1466$( MKT>?_&A#$HK35V40_B1$PQL-2;9\=Y80?APL>UF&W_21^%KD>(Q+N96\NG-; M=WO@)GVIN!3"/3V8*A^)V-F4)AR%U$!='-;RQWG%QX#,Z5,*V(1J ' M(=_2@[E'/O$$;M!-R5A(7OCZ30E?Q8EP#-Z!L) X-&#/,"60- YKW3T)Z"[E M/;'<&/*@.?O##S"RG@B4P;*>;2CGUFT26H'B..".QK%!U]J 6G,1&^N MNMR?6&W5--3&JTU\VY>T&KA,&7?O,DAPD!>.)*W+,9&'<1-BK3B5!,ICOXA+ M&'@D=\5W% QN8L)PDAP[3\BC'UFN$=]P+(N=, ,EN^<\0F0!1+= J$K"FG.1 M^XPD=;&;\Q"!RR):?3[T&X)F0(R92((06)P>R O_B MF08_;YB].3E+"::L[':>:-)9&>/=29C/Q$HA$K+0)@C@P.REX M&7&2\[1DS\I"_F=Z<&:%R1<3F//5O?>+]\F[?O1^Y/]9?D7D2<=$+*+TU=KN M7#[PJ_L/O_SITX?OK[_BD]-CD4"4S8.BEV!E//KV/4H.U.(K\PKJ8VZY 6[X M\@L'>M&&\:'4(XYU&/AP<]!?8[GA(KG@WG![]D-@V9.D?<..UTPU8KOBV3B= M4D,I5.U/"J8BCC]J,M#'/J4 'YJ]2A^R4.U74EP3)8\O\-5XPZ<^^>;YJ8OP_EYJV&]ZT-&+<;Z4YV58%) M/:AX'5"'O/41P-0C!4U0,[ $58%.L7,C*2%PI)600@I%:/*ZYXXJ3UK*)B#W M4)6\:MSF\-&(/4HUS3W=VW 4F"YKNN"XY(;FCK:XHE5VC-QFF<#[M.K&+UIR"]A:C+15)]E6"V*]F80$BH?OXEK% O2%+)W,*+/ MB,W1\^5*G **OB+^$R26$CYAM7=7S'7YD.PJ:,>KX+"W)\.)\2@\+DREFS"2 MVO7(MGQKM5@]!I87KB#3]*/O.XL@[M=>4L) ;R9.%]* ^USK@^II>-?\.L0W MU7F) [0]P0)_ QYP C$F@]4/*F106@A!=^ZH-5]='D%KXFBUOZ.B"9KZ;["& M0D(77Z$A?X 37/Q246<\='2$\SWZ@+K0'BF.D<+H.J'B7KJZCT &8B-K*I'4".L"0&ZD MC=EIJN]SY9/H,":%N)(6D?X;2&I(&),SK+4/+IT$(;G-R"#&F6QL0I)B[3Y: MK*A"G&_%KJB&73@(IT\HYRDI.'P^ E^45T%GXUN7&-K U:[OK"U=K'+\**M= MEXW%JW65'";*IQR(4P>KR6VOBLT/=E27?K Z*RP3CU M38_'XRV>:B3R6*::[NZ#EA0GB9%."$<[\$U;;WPKN#-Z2*65'PDE1&T>,R7G MT3+/Q[)%\E%D!=$UCZA*;M\Z1X+3,?0KT]K)R=H8\"U]/?,Y0)IO0A0YWJYD MZ9H001D!T@Q>+;:6K\SM4Q4^ZA#\&[?X$SEV:NLQ[#=LY:<<#O*<08,@O"\> MAI!F\@0JSKB2;H\F?G$GW\OSH"_-R");7]3LLSRRL=R5/,1-'.TNXVC]E \C M:4AS*#9*T[Y8&AU4RF?@]FT:W&;=5T_,=:%J6;*40.&R2_$99^S*YW_ ]K:(^^:@ M$!MH2_FHR@[JPD%NXFVY:E^,]E$P7;WCGRBG70Y@2.8F" "Z3+I M(0UW&D^4)!"X@=D)B5]HU<*A?T&1R2X+2B9URM)?]/BCA>)7*_J93 2Z!3(J MK[M>.@&G[]/G-1L#JT?C#88U:&Y[W*Y&8>0 O4>.$]"9K>BQ+GIW04L!!W=^ ME)[Y^Y<%'FONW='7Z/&%NL_TD_"]1>ZP,\@XS;H'Z:413C=@D0<\'3/9OAI M=I'<>PY?35W?6\O*P,F[_A#NG"*RL7C8X?D1#WEXJ)%935^@E93X@G\F@B0Q MOB!22M?=N!D"])_R.',\I EMRQ7QS3?020U",(C%^""V%4@LS]OS$?):3/2O M\M+ODP\!8QHW\>V=1?BOXL+NSMKM M^R-Q-9U RG$-.;]P..Q3ML!W^X;#! M$Q)MZ)"6X7MJ(9%A\.-3':+;!J@E.(Q$J'WRG(4](?Q?+A5' MB6#0642B=C9?=)Q]G-!FK*G/L:/(8C7GL8FW9MP[R0[A-\QC$779L[):MOYL MW+9>4PJYJVZ]J7A]0%T&VOH#37Q&?,-0LLCT\>%A]A&3[ ;&8P.)[*)($H.X M!2A@\L*#$:WF7LK!N(V^G,>LC1>/Q&O2%?0VU=H$;%4?JD[X>Z;!DU]NK3VQ MF3?.=8RDKW*.4_L?>Q; MB/O;AZIO?%\UU\?BC8V#6#@-,96$E$4>ZP&@/P@ MJ#$[;H?-(E/!2V M$J4470!'D,&)3OP9G [MY7!R#(J_%I=L)#R$$84; M>5L^PA="X7.WEN?!(9$O*$@.>?)'2AY=L4@>ZH1[>Q/C^X:OLAPP)\2VPDW" M[00NRC@ 5^;F\3\M!V[ZGBS[-]$EG8I*EY#!)XZ7./WVWN74>&LBX'#*GYF8 M<8#27PE#/B=-9EOSCT0N 2>7>0[_1>V(;&FT\1V3U3 'T*[3NIA6C/)NR?U_^N/7GT*]%)7?!Z,]_$VM-%%6U8 M="(X]VB^X/S/^C+:]:4+#:JSL'@]E:$'!6ZYHG1B3,*0+&V!F'EJ(*F1AQNW M<+9Q*HJ?*5MON'U-^?;/6M//(5WMW5NV.JVIUQ%(G"M1E_+*/VMH#@_O84G; M5;V9(]7T<^ZU-/TX;82:7D!\#YIN\$WKE;_=[?D2F7)<\690-1JW3E=PF7\_ M6#@4K^Y6$=S\M9.$2U+ )O0S*:W*C3+Y\YH^4]<7%(DCOE*-K3,?MP[7ED16 MJ[4GX]7S^BRT+>=K0M]O]@'?A>P%FS?L%?XJ5_#2";@UNIK7K JK1^/560V: MFRII"AHR8"1D^335I+>^I9RVC>\Z\RV_ !&'[CY/=(P*@]R=>?@5,I:'*=7<543D-_ :9/? M?9$#-T4MGP[#.QB:8!_V%JEW*=SF>5U$FY;; H7!:MKHZ,Q2QQ+'9WQ]:-IC MSHS(5D =UIIZ8ZL'@YE[]X&_YNR'URNV%-?S\L)";3S54Q ;DB:_J5%5C$=N M8+K4-WZ"N7N0>^/=0<$/T]Q'# MQ-[##\C6=]B*V7&*!?0&.GY=\/)UYUJVO&_WDT9!PUIZW_*=>Q<) @*REBCB MAPM].(&KYY@+SQ%KM+XOJ)@Y"I>@PWV!9RB;-AH'H<5$XY/@GU(WP:,_7T1_ M7[C#Z%7>6;_!9;\\REY&WHT=2'\WHQ\#]9NGRDDXO4L]GK6N0L4,O&<]FG0W M+C45@Y>5 1/8$[(.SM]%#57/=[_=BRY]V=?(Z5ODDR?/2O$HQ-DA>-P6TK4< M3^H+=P(;K]5USF';5\==$=3ITOR#%*0GGETYY>E\2.1YR]?OOT+MPX0AKEM5*<\7AYD-T"71WHEN7WU(.#V8PVDD;N@U)^.UQLU8:+Q%:9\ MN2]SHLY>]L/C#8&0"(P&\P%+9'*4"'30+,T-K ]EM-92)A5-BRD",4JK*66D M'\N9Y.P&T)I-,8P[P(J&V+#3W[!=16N"TAFXS4*#VURZH7HX7G77(;KQ85/2 M+S@'W$P--Y%=1IWC,^8'>*Q1KKO5LW#KKR;7^7INI5/PZK$NXWI]_AU+]"#D#5K686<)+J5 M^Q*G=A63V%2_8FB#J9'U6JY&)]\C5J,B3E(URGZ)5(T*26RL1A):/R7YXF9J M9W6I3[BJ,P^G7M7FO+ &GVH2\NS'6BQT4C6DR,,I&Q M!T7FGIFSMUQ75*2S0K*S E&7SX+\I_U._!G?WK3L> A5[4;2]7#XG_ ^_0G/ MKLW,5E$=E/UWOW!5^!K977I9#JG&-)P>NB[?FM?CR#-)M2EO7%\?H) K*P@. M\!Y3]F%#IL^91#2-_D^- (U6YRMDHVD%"BBCM(LJ7MIF==9';2A_TX",,G!) MB01,.Y3S>N+:DT;K*$[JA^O-&*4#Z**TL1Z:08L[#\2Y+.J\VL/CL7P-U;BH M.#);SKJ9F:3P@<(!K4.#Q>I&M'&%(+V!D]2'/%JO4%=ZNO&$)MA1^I?:S/49 M<6C28J0>- 89@BLA[P(!&S8X(7N-SVRP[=H+1%+1X+TSH&_)?96U=>\&XEMQ M6IVWG.Z&C!&XJLXEQ_W$'_&[(W#(CR]^)R(\PGI+SN=$0LU]3@SHK;B:4W:& M]3 Q]A$XEJ[DQ W]3R/Q)QRSJM%.F?"BX&]-=^2E5$[UP*0WI)GR?$SO&,!]"/Q*YU(BMO[ MOW27QB:9< N8F,7]-+.\3%=<*@J/T0$XG#ZC*SFEN7 M8"%/D>N"LQ9Y1WM/ MIKAEKV-6?EP\<$+H*Q0*A./-%?,LSV9)'UJ1EK;V?>>%N>Z$N);]&XQ*F]6& M^Z>0XX^CW@9@"1[4B(XY_Y+K^ MBV@>NP\"R)7/?/L-F;W&Y0R9QP$P68C/\KP]'Y'TNA5M:)/ODP^M()N'!YUO M$_B<^$AFY^XS^Q"U19NUW@6_;FZV%S\TSJ3EL"AD_E M,RDMOHK\)<[DI $5>FZD51,5^OJ1>C2P7"BSY6RY5,((FBX_TWC=K6C75!,& MSA6JE41R;9OJ , ;PS9CH_$+*(EM0F)\,LLYC[*[@.UN#T3#Y1^X<2IZFA0^ M-% -Q*G"U;REX5/A*.2!43G-C1\$"ZC'19W') (PY/OS#Y\L5WP8;BB/<6"1 M'W9%[Y7IQ8K$<(D$//P:/.R/VIT+6?"(D6NJMQ84WS+KB;DL.L@ 6I1!HLZC M/WN-N)?D^KQ8B7&/--@62:$5-,3.J+V44H_5'!1RM]8!8^VW>_#^R$\(D<;" M]V8Q*7Q')/-L^?[,\O@XL>'A_Z! E AAXRGR"CR#4O)6Z'O6$Q23EVV8 MX@T>?:6!S4+J#.M*#0JZ)?[AW;)!6:6HY9HT(2GV2?QFA#P<]3$E ;183" % M$NO,T8M"8(O5YU#N$Z?.W_=A!.9]XP7IJ=>/@ ZP'CV(4U.\E):Y--5H";CX&.B3#KO085WXI!D M,4"(G3GZN!O\D0#"*2""!)*AP;0#-R0OE8:%Q*%V(+X49ZP*#>L_6C^30[J, M:?OP>L!&X\(;R*@R5*^$-"H'WH2O'OSW,4K'[[:'%-FIUTYQ%SOK8^B(Q&6; MD=6I3@WLIT\Y^WA>FK]L'&+O6L;9L;-SP2#D/K&4Y,:5 N"L@.N=*RZ!A>K! M&4-&Y2",1<.Q&F&U;QE M;_'.1^&]JBNAM:L5H?F#7(6G7V[\( )5GWK.3U; %QR7JI1-:P).I=/G-5T$ M2D91'P?ADEG MKQC^E/!@R?R-G@L_^JA0Z_JU%RDEW6D#B2LM6L.Y4[@VBDB$9W M_,AZ&<9-)1]N_$SA>(\ZTV?^Z3I^6I]\"1'R!ZVH10L,;L-K*A=UV%D- Z\9 M-^:DJ74D*(@E<9!C)8;,Y;1L?GY<:!\6GY.$GW=\TPGIP^'7!FLMEHKMFH6V MN("U(GI/ UO=Q[@!F!$;5XE),]5X&X^'U7K?P20MPN VKK9SRT64S6'@-K35'[6/79@08>MJ)C7QHO8B'58P,5(1J1:?);5+ MFL!Y0YY"5:^D-I WXBTZK5%2&S-^C]%571(C58_J<%I2D:0!F+?C,5152.K" M>!O^HJO7S$;*]-1BE#UWL8+&8-Z0.63DTM@<.(PW8@Y93@8N+S.8.1Q+&;2W MB5-8;\,P"B74Q#IR@,9O(L7L#!5EYK"CCC2[E1.28B&ZS+>4W9MQ(FW\QOA= MQ>#> ;5#:"V-&]DF1>8(Q\ED_9SR5R>T#,1RKC_,5O8PCB\7%0(P[P8_>\G- M*'5FKS8?*K,6F\BR!-:('625A+2]I0K02%UG)3N]^E$5=D,-Y.V\BN"F^GDO'X&29\O=4U'= MJ&QM/,MU.\O+(>^^-Z+ARXT5T >ZXS+?<)+N W\=6-OI*U-EWY1.P*WGU;SF MB@/ M38=/J.Y>BR6")GJL>%;WN*'\P_?+R+=_.V.GL(IKC6DX%;4NW^E#.XTYR)_; MU>&@J?+.O94?;.4[MITLXP:Q1.2+)]F G@C\!?H][/.U(811RFZ'CV,+>>#C MOE.;L,8Q1@='C=Z9,.#>99+AM1/K M;1]+%G(\W4<;/X"'Q/)80_6 3G\V3L-O*(5 FOB,7*4, M)0N5!YB0(RY2>/IIT"GLXFK/2N S/$2,Y/=H*)Z*CA$L$6@)XP:KD.",N M97CY9#R+OR*VO]WRG5<(3F="7N)WU!?).^J=D!/?EY&P0$0MSA R?"Y65X(( MX?A4];4JQN-T"MJ#GQFN?EQ :)!BXY\S<65M:]#N?*2-)Z&-Q#R(^9!72/VS&,0(&_8$*0W\22 XUL* ;K+FKL0O]T']!ED MZQ[F8;BGSF?($A.7I^\_ ,*2*\9Z\Q';;Q-)9 KTZD]&;N>-6&F5!A/R'6^" MC3"!+LY3E+>1[S\(@R9;@7/H KC#2^.(C4ATY'->&D=/T&$[G'T4,H8@-OP[GQWXV&I.0&WHM%OI9W'U)0M)M$JB82!7W \(I M$3H^<'>:(:02&_KBE/WW@OT/.?8[7.PE2^_ODZN4TI6];#!B:Z[D,9_K5S02 MN=U6T]U77M^']\>P>S>X9?;'M^ L7E33"\!.5]?'%_Z+'F8N?:;R9'*>[%4J MC%!O'F9[K,'YT30U)F&WTCHL-#ZA%T@(%5@*=\%&@N9!>!?KI#3:%'S75BO2 MAS_46"\5@S';9Q6/)[GQ!2.Q6V(EW;WEP7\POE[VPK?@K)OULGU6S(L5.(\< M0APXEJ9>*&Q_&@2< M)RH>V%X>CF/BNA>"\J,P/$?K4JTG5+A5OT_YGCU([!@/7D/LE=LN[+GY;6-K MB\Y=VRQV()C"$$]G/&[;JN0T:R#*P7BUO)KD=LG!$J21ZD(/-(P"9D.Z(I#R MV6-1^+#\7*JH57-P*ZL6QUF%+9V 5VGUR&Z>N99 CZ-U 9^\XQC,-,&H7(E4 M"]$GZQ6JF:0VOG\*[8 )BX261DT7ON;H<)M/WW*N%4LUQ(77:'OGN/5;GIX( M-//^!ZNT9\O[^PE)TW.NH.D\>]J+TR! 0-[%G=8@I]]?D2SYYKSO4[4DGTXE MF1XAP<.$7()U>N%^>._'#O9!HSA/CE+CTQ?+E MV?%(6KRC.O'"-Q8+R"@ M40R8]VIMJ:**%R<.IXQOQT\?2V>S4+\F7]"O_ M,BD3P#!\^-DSP\(E5O+9AQO\.:X.-I7%P4Z.TN/GR?&'A7%D9Y#'Z%@;2:_: M ]<".U97W8S)UCZE( Q,2^21M$1>^K6XXX$]'@2/%/GQ@]D0U H&F%YQY_FY!JW M"1R$E=_2+")K4?>7_V@A18+KGA33E8>3C+5ZWX M(QBGZ@2'9;\N]]_/+*'T^R:#I/A/@ MK,Y-&&\S:FW2V\+"Z6T[D5"^SV,#0,@/8ENSU?@I_GH=T#7DZ'IIRE&^O4.0 MW:K&#>99C-Y 0T@30BJJ-!7VO*7O.NDH+Z-K:@>4#REX0-LC&LP.JC^YMD], M4N/ [M9ZY+A-9YN .GM;A +0" IR ^!^_^@!3UW?,1O5W\F*7W S947RT:?U MY%(H_"4>-(3$Y^-@,!\A1X=0TE5>;5F['0]0F Q) KAF&$NB48^_2%^$C>@I M0H_252Q>"0Y0?IGO);%;Z1OF43U3GKWNF$P,*LRJ[0,^SM6L-TEV\N;X%#C> M(XGN633VHOB4HG$](.Y^L@+7&_2;NAP;\Z$5!([+G_8M;<6^.SXM3O%E MCXN+I(C;\<:%4;G05I0!#^%<8P/>.:8WZFZKI=N)IU6C>8-.5H-98_Y535NG MKO4'*5Y/W/LYO3C7'J4<@R97<+'F&LIZPR@8U2WE?KMW+?&)/.?-X)YDSC]" M\6XQT_!^C L1=-6+.!]\'R/7]YY^OR(\;WL14DJVRR7H#,G;78#4K)I>?LXH MZ\/#RC(0,Z_7Y:=[&2>+3P8R]Z'BO^32V&I=HS90SJ989F5YQB7:;'132.?CX$?JMIW]8/I;2_5)=+M1X.?,6XEOD M1IZGL9-@NNC9_X#FV0U'2;8R6-&$7+E^"!&8/!(P5M>@K?N9O=+ 9N'Q%$6\ M/9E#-PXO9+8H\MZ3Y]-$/0*;'TC^7<8>.GB1^ZFAN#=]G*!#["A#GT%^A23< M29 YD*\KT4U(BHL421%WPB[TXA!43\-POTTDNJ/0L0[*JY4FLO6%< 3.NE=9 M=Y+C6XD-N6/NEV=C6<"5)(XK+;A_B2?0B,M6E+SC?A=J?8ZL>6:9F'[RX5[0 M9=&ACSZ:M3"/P/$.(_U.@F1]M,A=\4#,&PN1]6D=5X0\X&]P!#=ZO_S PM]N M DIY6$_Y[QD-Y945>+\@GUPF^=X\>UY-!5M7U9N+5 M]IKTM\JBO1#WIE#1]5@)F4H$HWS?EWFNV/-#\V),N&VJ1^EVF[QWA@:OM?;) MK.G8NX"VD3XT[T/*Q]0[#MO@\X(68OE)5N7WG#0SQH>/AGHE70/]VW:L=7^' M+KVM+NZWZX)K2Z!Q+H) )'88-#EUC7P"O3%$_E@(5)XED"$_J!Y:B(G;S0AS MEA$F?#Q&5QPG<$/)IUY];A&>M^UF?2RQ71,Q\I6VE]^D MUH+;*04C7G?[D4/+W0QU)N3E-,V")MYG!ZC$9L?Q7=<*0DBHD!L?I/L>7$(^ M>_=>Z>I1^O76AVH&ME*MB1JYWQ_D-QOVA/^-K@O#R*6'VX"WM7+@_ADT[A/> MY-J2.4XTL(CH8W_;JT7-7Z&G*XLOT__7%4 'UQM?E&,?2KX%%R1X/?93M3R? M:A^D/="MQ> 0Z\KWHL"RH[WE0I&;[\I^V<$I&8$G-_/K=%)6JSD9R#V\(6$T M]D;9X^(E]1$S>_4*MP*"3'YN(M4[Z4_PD0P !"L;H_&OODE3B[[QP M8A\$ONVEHOO?LLL5I#OJWN["TH.,ACE&*EY_^"JQ'?,BA.CG:':<]+;6*O7& M;^A%J1DE;WOU:?'K=+G,-"#C[:XG;831S['4VUPH3,A9[W@*X0K03<[7(,TV MRO"-P)OW*>F>4GB_E%X:U2QW!> 8+Q1'CI@W/HVU]T:/0BHY^IJGP ML'2\Z/4Z/&5W$-?:AIZW[7I;_U+#)ODHB'F[KKN]2'HYDWE;KMZ7%3-_YWK-81_HIOM _PCQX\\^&_"X5U(@.1A^3E\"X^-SG?F?I?$+I 2P M$D!;>%7^QNY3QB+VD8<)AEL<]T#?EQHPF&R+W#5Q7V+H,+I6REUS-+8FR^A^ MT>Q5TY>YFN7/??&M9O7I^U)7LX:_I(E;K_]9S3H4$=[5K"9';VXU&_H7S5RZ M?9F+67PPO>>:@F\EJTGD2A($=>#F/%LM:)VQ)YIRNL#]RU0[XEY>^:M M%SON=X0?5$BM%@#Y3&":$+Z+MGFH,B&/?F2Y)MS&9R_@-*T]]CMU.)F7U*,K%JE\A'HT;H=0 MP676^A5#\9IZ%<%M[5H!WX@1]\5K%JZPU@1RQ>M5DR;*=S;1S_[>=>;;G65' MJ=.)/5L]"58#&Z6!:\I(P_XK((W./>CRTY/WJ$"/R;GT+2FE[R$1QTP$:B)Q MDV-DD804#1S2SEF%PLN\_^'[]\+3P"E.M_[>BX@E<9"5'T 9*(&7^!ZQ/++W'!KLY"DE\5?\:[$AB."40%25VR4T MDX"Z5EQ>SH(!9.>'#$1!;-=B6_X-!Y^M^/=$TV^8QYV% ,O!1/O (R\;9F_( MQN*NXHE2CX#D @=*V85D9P6"&)CB)<*3N4ED88KP-N=+%\+:9Z"NAU:, 4U0\B,[5ORRSVM9W; MV7(]P![@FJYH$(@/IV%(SPX(Z\_&Z8T:2J$Z(C^;.M986\U('Q$ <6)TX@M+ M($02B'8OB)KX$ 6//2M%[E1D[I$$G?BB4!B#!'AG7$,.ATQ7<5W_!;9.BD5) M;R9.%]F ^VQ@IC$-;P!6A_BV@98&+B,!U1 R*##P"4GQD!21P8O3DQ0R6?CS MFKE[_IE(4,LVJIDZ?]^'$2RX"J$VAX;;2;244M9Q- 2%UYFT9:BM@VF(WXC3 M,24K>>$"AZ4.((.;ES#R[=^(+W-*)V0?OU0GL%4+F#B3(XX.L?*"7W7)@;R#>[YSR8\'13+V()]TMJ M[P.QZ9R]PND<=6ZXO4.F[E[N)1:KF15 J>+PG@8R4?=0#&#ZRE1I)OUBQ.TQ M!Y!VUJOVB ZOYQV"Z<9W2AG0Y B;_ K0_QN/_=]96WKM0U_16D+.31NC)9[S M76U.QSECLXD"RCM6[ D!'.17B:6)@BO.,I,%= E+;;*(PAKZB19T8=&<@E-C MZ_";'E56C$=^/JE+?>/ SX,612&A,9X08K1=$HI%&\H"B.5VEG?X*LQ%=1,> MYD74(U9$+!XUAK;($8 ?2MRI;ZW@-QJ1'0\5Z; GF;V++(E8!8)\W&KD?*[E M,B^S._H)(5+8.!U*+Q+L,.R4@,>VF#9EK\V*>W'D7YNP2[E[ M7ZSB)Q?>>DG7XL6F0IIEXW';3R6G69M0#L:KY]4DMSVD4F(P<@S5'[\2,IP0 MI;")@M5!;?2![OP@@EA(TT@+)XS#2M6\%IGI^6C\=EI"&>H["J*7VP/'1 M5(_ C=KJTMY09^]2X/:9>GL:0H0Q>^5"\BSW:L^W)5LNKZGG0 +G+0\&''FG M]@BD*P38&BANF^]&9KDB+:T@XO4='?'5U-H2]-+>) %R-YV00%(:Q%T+4'$A MR(AOCLFO@A(C9Z<):5>@D5XD7Q@_L/"WPD,H_5FXC4N3ZZSU5$S!:QZZA#?5 M_P0^R2$@@*&[L]($R51]-GH^!*<.EO&3GGV>?(_\K%-%;?,*)BL_V$H]XIN- MR&*BMVSD$SM1MNFP1Y-=?[5*E=C/:S%^ZHS5:,.H7)/55C$:M?%8>I"JH&(E7#2G+;JV+GN3G'4R-; MI$?P9>/&#SZ\C^NA+58? S\,D^.>J><\4)NR9Y&241U:M(**4X,[EMI9 -,< MY$ABG@X8["],"N&);TR=J"+RX?W_@FH?6S\0YYYKH)$$R>DGG'(&*9E)E8Z! MWT4B$.PE]>P-Y%,E=12AKC(7E\!\/"P&<660FS@&KGER?LL\.N?!A>JNM04X MG.ZM*SEE3Y2;PL*WS'?&4>-BY@WO78 "(DAH'NH=Q>*<3@5 MI)*S= =0- AY3%]*"V =-MCNA>.'#$\"KI$\0Z[#^R" M)BY%=85*AN$TO"J^>U*2EMG#9X -I,KV#5W(A1V12ALQ<4K/'KZ M<'X0\TH;&ET>!&]7+B>HY.5UV7C>;Z8/!:11MF&A^8+LD1:::UV.C'/ P&_"G'8I\3"H?P MH31L*I\Q$N57/_W/M0#_,>JB.)^N]3V>Y,[@U"D1PU M=[@E,9OO$>(\@W;L_)J%MNN#_2ND66<^ M;MVO+8G<^T_=R7CMHCX+;6]/M#'V<:W"-Q]/?OG%RG 2 12$'G$8*3?V;#$7 M3O1N_&!IN9G"3]?T*3K^2R&L&M-Q^X&ZVK2LFK9O4;C? MN>?0K<=6?'A+ *=CN;"VI[[QX4Z-3CD1N=]5T M#V%Z:6%U_TC&L.;7GQS2.N@9T-U9(:S1B]5]X#M[._K9"@++BPY%#*H&(K:^ M4MY2RRLXIY M/@KO>64)K6U/)L]!&WG>T0.'!6MZ\U:DJI6=?QMN?->YMPZPF-P+/[U8?;+^ M[@#@M,/6DCF�V 8(\JVK#4_+ P1DIV$NLQH C(-L8,2U-! MC#]P9&%6/#%6(M&2Q8HDB.'O H]B(#8Q(:%8'I#,2EXVS-[$;;)*-2'[#SP!D B(!O->LXR5)K<6#AR/0JO35,]'C4-!.THX/5'$[DL$^MLM M#6QFN=-U0$7V[,\LVDR=9[ZOI6%44@90=R9.+6S _?$V7&L:\C"V)A-M%3BN M\&&G6(F5H"4O'"])$0]\@SV,&(YH2(J'_)SCNSNC3D%./0QM5;E2.0&6DUWXU?*:=9)7.P2ZESZ:X_]S@TU;:$;0A,4NF8VWW(& MD<>W-!NV,VJK/4HD@4RL!'0BF^[,\IJN:!!0Y\J'_C)VE-3[*V*U9"QBHZSB M,+5)U4#D)EE)=GN+=&(4A'EBYPUWNL<-N5A&8>O#!Z5W3")'C ;/S*:YK@!P M-"2W^OQW"YE#XZ9&?)//]_74BZO;&CO;1TS[ & MWYN\$\ D@9S6L1W^.*A_)IM[LM8;V 5?28),66#%SJE@&$XW5\57=NMZ.@;O MQE5):=N[*<61S?6>0G7=1S_[O9%;J\XY3_8[.[%A#\P6Q#XVE;S')N-)BA)%N>$/!VR M'YCL+5H@DY(+!_5HW!91P656\15#\>IW%<&-&R,4J*[!NX(B-N'/@-+2JP.= M>>-3WD+.J]0X-VE<"EU,>I>J/2$)$J.5+I8T8#1PYZ9L[=<]S#?;GG0 M%3#++5K!2LM@M "'VRC:RBD7ZS2$A=>$6G/4./81B"'RR:(F1]S%$9&1S9$Q M(=W"86S@D4^6O>$X AX,)L>R$RXW^_04RM3Z>EO10:AB"FX'HL-OQ8*:CL?K M"+2H[C9"O.VN7T]'>GQL[+58_>3#^Z$Y&" -HS!>\QU]\>D!&YWNUY!1A55H M0!J5O=3AI]N --^03N(F*?(D7CWMN#',XFE(4/"Z/#H0%@,F5@P8JGP])4*T M_>T3\XK27X=YNB+S7L-'/V8[D14-[VBT6(F"1N5^IR8(W-ZFB3QR#V%JS,?K M61IQT?KQ3 VD9I[5#"F5J]P]<>0GWB/U'*+#2E*N)/4M)J.8JZ,K>TB36&3M MPA6#0V-9O3 1$?1OY!\S5Y0DXM_MMTDCQ^E3*.Y?*_QY+PAQ^Z?^95T4,76/ M#:_O&X#GUI%7AK8).5)'LN0EM4(3 F7+TB.))*9QDC8O3>@\W0H-&Z0AE'MA MIZ[1N=:X-F6FYM$ OT0ATB_'Q:IEWI>;/'.\9QB_$\:KY1A;GQI3&$R9$$#OZ M6+<'^=^D)4Q%MV0.A(&@K;CY /-L=^_ ^:XX>N!#_OF[/__)2"^"+@4Y]Q). MAPB,\]B^',=<(.6^/'(&U9?ABHL8QA3\9N@;O=OM4M9Y?\N\$X]KI(D1U,2C MM_ DZE'*%6SKM?J!6<1AC#.(U!9#(_$4.1$,8>7\DA@YW^HGJQ@F(A2SJ4";;T[=R$Y[]9+CK\&*L7XXC+9%Z M7UZU .67X6++&$?F;[,?OJ%[\CY^@0S,L;O@I&K#H_6:^7* WT6)^,MQQ.6R M[\L7%V/],MQQ!>^8#A*+21V].^[I%TB+ST36*W'?CGN.;[ZR7]@V%&\*[ZU# M20V-H6GX^A+?NDG82$S]Z/]__SY.* M;"TX\-F#6QOTJ7J2KD#EUJ%ZLVY5&V&#;G4*OK& MY%)[E[5TJ6GCHUT )90M5[C,_-OX?_WVR-&UL M[7U;<^,XLN;[B=C_H*U]V)F(K2[?ZN*.F3DAVW25=FQ)(\G=T_M209.0A&F* M5//BLOK7+\"+1(H$") @"="*/=M350) 9'X?;HG,Q-_^^W5C#5Z ZT''_ON[ M\Y_.W@V ;3@FM%=_?Q?XR_=?WOWW/_['?_WM?[Y__^^;VZ/7@$K@LM:W#C0G,%!H/SLY^N?CK[Z?QR\/[]/\(V;G0/ MU7'L0=C8Q4_GR0^W<7.._?/@_/S#YP\79Q>7Z$\_?_SX\^6GP?0Q*?B(^K:$ MI24M:/_^,_[/,_KB EI>S^_>O#O[]:^O_WYPX#5#YG[WP'Q\<0_=##:6JOSZ[5M+ Y8?]MX@E\-_> M)\7>XW]Z?W[Q_O+\IU?/?!=W$?_,\)&D./X54LJG9(G*Y]J/=7!^?7W](?SU MW3_^:S#XF^M88 :6@_"??O9W6_#W=Q[<;"W<5/AO:Q:8LU]1$_Z MB\JM@0\-W1(L\G';LBA@_ZLW6=XZFZT+UJ@,? $/CE=?!26MRZB$N>\8OZ\= MRT3KA_9'@$:G4"T4-2^C&FYU;WUO.3\$<^#0:GM"WT'/L!PO<,$=\ P7;O$\ M.UG>!!ZT@>>A67@>;#:ZNT/HP)6-5F)#1Y.S83@!FIWMU11)8D# H@EQG^I" M/3/P NP W+O.!@'HN[KA_XIV0K>!YSL;Q%0"H0;[N)U6ZZ&ZEN95>O0LQ-%3T?R#_K[AGG<)+72"E[/90#_L -(R7M[0V@UL[DT" MM9UN)F@7;=96T$#'%=]&T^P:;H+[A8N MFL+0$H_XQ:<"05_L9"\1[^H0BL_0YA^HA?4[09VV%:VT^V5L4<9-[D)_MCBE M96U2G@UO!2'I#76W^:T@2K:B+#O("H+0FI%F4U9!+FH[,F[0*LC(VJ0D*UN5 M&8/SIA E-;ET<)(]O7[15$ M<_30\X!(Q(DMRR/\T+8#W1IN'->'?\;SU,A$OZ"##%ZVFE-.Y2]WM^N>^&O@ M5M% 4?7NQ C_>^MXE88ZJ8GNQ'G4_<"%_FZRG*#I1L>'[O"'!T0C:*%%!E1B M+7_C<")$$UZP"6]1O7O'U;SM5I3@+)^0 M11U#RXJ=M?#6V7!6-OP3F.A@#!T33SV51G6]#\FBFG"\3B+XAH8/7RJ.>^ZV M95' V+%?@.<#]3_X[BUC'SB/BJQRKR;W>'GH0OT!C5%_I:,"GIPT$$' MC7XS.GRWH2?63TKCR+'_QZC#\4_F!"&.IDP7K2 WN@2');EFJ[QVE[8EB8#[D>M-EM'@'1I_!! -7H12RI04GLJ!*4@5 M5;_*J[10+XGFBKJJAYL*F/&#\M')>/I@ AH&.^ _A%!*J$OWE^ZWS@G9'SUYX69JT9&&]_OW= MT6\?&NQ&HJL%:O&H%\<_?_]T^>7RZOKZR_GEU>4%^M/'RT/?TB08NME^ZJZ1 M-(W^F.-%5O=QB0_;,)KLO;&&UA[RI>ML#^_=WYNT'@H7XX MV^A>^MT 2; $KAM/(I0>AMVS4B.@86C^%: E';C6;@:VCGO,%4I)I0!CZ7N, MW84ZV$5V9FZ>* _.A_T,$8NG!]V&7Z'DNJA5]+WY-A^IAAXX4(Q<:>N\P*CC$Y4!(^* MJP%[@FY<"G(Z+ M*($34Z<3G!2PKBQ<'6\VSXY5 %+F=R40*N]Q H\"EI2$;MJKL=;M%2 8 MOXJ*947_>'5]*2%8S!U/,%/&.G(;N%@CD:4<\Q$I._"(V\#BXDI@R"U @J4R MMI&1[0,L.7P!=[JOQZ)23)A%Q17"DD. !$MEK"3X7L2]Q7YRCKNC7OGL2RF$ M7'F_DTMQ92PC\XUN68D'&Q&P3"F% "OO=P*8,N8/;0/<%5H!OKK.#W^-@[IU MFSS2"DLK!"![_Q,@%;" Q-Q< \LJPR]=2"'82KN=H*6 323>@#F;#;YI=(S? MPS@M;Q+X^%T ?!@B;SLIE11"DUN,!%T%+"FQA #GR;%&M@E>_PG(P_&HG$H8 M,O0\@4T!P\IP VP3>TW=6WK1^,O\GA7V$Q)60K^B\AXG\"A@6(G/-/?0,W3K M-Z"[9*=+4E$E0./J?(*? D:6Q"@"?2F/*W#\-$HIG!B,[_2]6W$ M8F#Y7O(O!SK'__!]+\AD>0]MI V(1JP3^4P3@G?8JE0?AU7$B ("XZ6#T&]J M65E&)@\>>,#R"R5+?% 5F/';0SAR&OT/3NSUHEL QU+[M[KK[M#)*8P/)<#. M5%<6&O##FJ=$=8%5ILA\[;C^ KB;49CF*'EAHH@1146S^OB,]/%)60(PRR=+ MV%FEF3]ZF\"; 0,@CC];. =0\7T72Y4^X<\MIZ! -O\XZKLU,DQ=L-6AJ;UN M\5X/37YA_H2,#@F<8*C9)VI4%5>66+G:>T26O6&? &>&MJZATC].G]#BX(\2 M=.,LAWXZ2S>:]8BCGERE3^ASRRE+Y%X5'F13&\_@:HT.4T]>E&>*0 1JG3XQ M@5]068+\JE#AJ^.8/Z!U["9Z_'.? *;*)$N(7Q4LCS/HHZE+>S6L -^8EN#, M4K5/'*@LKRP!A%7X<1?W<)_^=R\[@17D"GWB J>4HL(0NSL#IDXR8\X5"I'MOL<+3@AMP<()8OG=UYB< [.A'HE7K'A@KBJGR5DQQJX\JJ)W7&W[K0P6'1X1Z$BPSYY//X7[X7/;.[Y_4-M"S\I-'(UEX- MX'G[UX@/#YX=D4%(F[WA3'/:$'MQ5)U5#1Q#F8^?O:$)IXB";HJZ,SW$>ZK4 M W*E%D1:E=[Q@%M8E>^;"%NJT:*:Q(+NFCJ^:$@IC^VVH;!"1D%7 M9U?75]T:I^M3@D_4)FZ=#GN'3QWN'T3*.^XD8(/R#5Z MAS^OK,*NK#I;"?(/SD M"'TJZD:6]] J&MH3$4/EX;1V+E@#VX,O(#(O/S@>=E*>+!?Z*]GVSM/*VV68 M"$6I'!&6US3SU;L:"T>!O[:<0N\&-DJ975TH3@3F*13V>96).[(\P(N]*,*?42>(IG* M+NQ%HI+SWS/6ZB/^9>*I; =+W3UQ[@D8:JI.AJHBJFRIRCT+4;H5H-3H$0%X M-@%*9BK*R4K= 1!*]P[P\K5?2==RCH=O6*KT#G;&)5_)-$69R^)8\E!HEHOV M='G54><33)2'N-6);7C_JS=99B[?\+4;HW7X@O7A@?D"_<^C-E[,!Y-[]-/C M=*9]0^5&OVB#A\E29<"6Z#E[ M!U@J@'2^DI[KIP!$?SN A_Z"4Z&:@>&CXP1P7Z !AJ_P>.HE%9,%0 YT#I!R M"44$M35\PJO#J)?>G;/1H4T&*5]6%J2XE%Z(%:-L8@ CA.(/44L['QK>(\ W MQD= %!614/^,BCR P"Q7H[K'#UNO7+R'^ T"RYSIFRT9!6+A;+\O.TM^5QL/ M/@F)]T(=[170;A*,T!^)#Y+D"LH"7*4EAU,LE6_QXN089>%.5!YB M)L&DVRKR WR/U%64-P7MJ:/TRC@U)_H_D^RU6J$EV6C"A#:1)+4E5YE'MXX7 M+GWQRRME$P:IN&R,J#QQ< FH\@J!!=TG4:*@O2\C&\1<2!4#39=-Y6$]0W @ M5>+W]NZ0B)83OJX2JXJX$%#J] Q]?EE5'NMS$"9/^PILX.H6DGEH;J -L<9\ M^ +HM&"KW#-^U!!:9=>OX<9Q??AG"-1D>?QL!\EWF%JI9\2H(*P@KS QV2T% MW(HD;W=&=GML 4$HDC:,I.(]HP67F'4]Q H#;SNE1!*QEQREH!V@V3/.P^;8 MW@U8.BY(Y>G37I%VD1Z@K;N[<'^.,W+A0Y@33KREK&KLB[TC9KN:$N3LUEWX MW5X1L<)OT!9@28PC)Y3N)8G8I*SK]"9!5H$Q\ _#A@!\IDQ6$5=77;_27A/N MSI6V6QY!Y[].3 "-XK6?]&AA>5%RIOK%GBR7:!;V-W^JPYMRN+, MV\P;Y:H0-360B:[#HRR+YL5-O(RMOE%Z-J$U05N(3E,]'^NC)"L5I<8;)1:O M1D09<#LC39+)+0E3O-$]:)0<9:AU9"-.Y7,*OY3]LN87RL_#"-F8P \H(RF: MW&M+2H8[: 4^,>:34/HM$((F:K_VP[^B0^L:B3I\ :Z^ MD4;:FP2)85I5); M61U_1#J^4'.E$2>]5*\EMLLP$?'8GI%L_HK-'O MG*V<*,>G&D%K:!GINHFW)F=T+0FXOJP6<#U?3&[_^6WR<*?-Y@/M7T^CQ6_O M)(VX3H7NY[54GI&35D>Q:.SNY@@N#%ACL\4N)AWE[([%BS2!;4B.C4=T0< V M4QU9 .? CP(ZLX2-1J>F,K>DUAAR@"JMO+3X,*OZ %I1^^"UQ$[VG4H9#UVF9K.3L HMSD@6NL=0],+=TF3_256NL7=P3) MKW)4 D$/84Y[HAKX.$5OJ^^,JB"]RH^(4,=59'D,Q?&T5^ :T",Z%_$WU'**;&F3 M:&J@/L%37O%-4(4B:L*5G@3F')("> N'X.F1!+?@*7:#T[Z$^*;W^C. IF / M^B!.F\XVZ6^$N(K>8G58&RSPG3BE3&A0.T8=SGF M/D$WFPH3@$VR!/:Z=N/HHDNS.]P\B[C85!EO-M$2P.M:> L![^@I0MU;WUO. M#]8G"*\J/D$XG'\;W#],?I7VZ<%4$,9>)^7Q+P5%6T^1T*9&7_ MTOD<+PB]/"U*1&XX*O>JPP,NSC6,5!HNF L'GW=L UH@DY-TX8B99IK^K"QT MY9V4.M&+RNZ7=P!UTH AENC/%H@3.Z9?"R!PD*6J+#SJE!]YFE96G2%=L-:ZH.4'>IZ23Q47KTYQAN-&^(#,*[Z!G M.($=OI(P=<$&!AOO\(8/@. .1/^+ M-(KU<5!K^%HBFN$?H/X,K5#!")82NI&.0]537\.M MUMB)=#5U5=D(BL>;V/#5,I]SWBNL_3;95D%3J[B?H7^^C;P?&<#W$0#)$]WSE9._*JJ)%&/FE>=N0@YS?.BW4#+PAED MT=S\:@#/FRSCL+ _@3D#+\ .%J%$*ZIN0+OT1\3,.9I_+B/4?UND M$Z.>V@'R^=A#)VV1;3?T(B['O[%E<@@(B;Q,!X4J4AF1AG*!P)5Y) M5Z3 1]T/W%#<\.)B%[H=H'%YJUL6?NIK[;@^FDXWY:YE-5O- M:/GC6>BI@5=\6Z9D+/O"B=,L(2VA6=S?X22C/M((#B/>XB(D M]C$W\':(5D\EW=]'$HZ3J:'"31?^!GI/%T$JJ7N3*%MNJ]SH&2&<[15\M@#U M%K&T7N\)54\3C5P6RL2CF\"#-D *\&CY6LNJO5T6L2BB$7=Z^2P)!=JM?;Y[ M,\2JJ1)1MX2RV0[NH:W;A@#; :4A63@FR'; *ZG*B>W3IU>>1/:E]63AA&"L MZ>=_=DVH'/"?DYCVL$]QX:Q.SI%.+M\(.\CBJYQN)-G5Q2XY"V>AO^)[;IPT M#JGOWG&YLD14;>[MT$JD@AHYZG?#/R3X(3N - MS*[2VEOF-\.FFBH1Y1OV805X>K^#WM;Q=.NKZP1;5"/,4&"C0VX S/BRW"%N MR+KOF"QC@/>X**GF5'X3JY;RH@3T>=>46*5IF"+H"".BW4ZHRGX)M"3(];J[ M14&"Z;_SZ:KO5!@3W=7PH>M>28*._QOP*>L%:W59F"$&\:*M M:PT]=+C&$'RA8_7WO:@S"V>.MMS> K4:SIM%OM!<#?25'((T M(6CI$1.]2"#,T'Q!^@'XTFZZO[(KEAF[(,39S.+?G,0EO,S#7OQ7L@J_[-X] M2"3U6E)7OY)]'64\FSS[.K3QE6%B'$;:Y(OMKM%B7^G9E&H$A4\64S%)%BSR M"4ALG+(<#^T7[H!GN' ;Y7I/G-&1?N?!9J.[N\ER#E>#X?AN,']Z M?!S.?L/_/A]]'8_N1[?#\6(PO+V=/(T7H_'7P73R,+H=:=*^%YG75-G+9\0* MWS^W/17=Z![T)LMI>IPC0M!XL$#0WUAD/Z,Z331_S6[&(VO%T,?ATMO@UNG^:+ MR:,VDW:V*-%*R=3!7+OE#0V]6V4S!FMUV68'3BPSNY(Z(BL\*=SH%CXOS-< M^-A;U['3]N*2J> R/Q7<#!^&XUMM,/^F:0LT%SQ.)V/\U'1#PY]P-$U+=0?0 M!M/:KQ.$ $B' M9R;6(7R5'\(/VG N[^X^DJYD63XNU.Z(?< AQ2![ABT=H_1*LHQ*.@KI$5A! M'H7'7!BC@"-@T+>QY>Q@&"H9?Q_SXP]MF&__^6WR<(=VS?][H/WK:;3X3=;1 MF)=[[/B@S-VDI%++ZVMA;PZ(E"ZNK/5E&\-LV&56U5JB*CR\D[3?\:-XF:#3 MD@'^*3_ M6=H%-QW#%SKC^= -=U8'F4K&.U<+ M+5^%9[M6A'/9^.=I0K8IH *VF1OPNJ(K/"6D',D89X+/^9E@-$8G9&VP&/Y; MW@WW7E#F\4ZMT9$')/MZ3JN2)?%'&5XF*\.FT/F1532%QV?F8=,IB(+2&4?J ME_Q('6N+9+3^Y6$RG_]U,-5F@_FWX4R3=>!JNFOC-.V)\"6CEE3\^\>V!^UQ M3\I&++&\;,.5IN+\:.432^&ANK?/V^97X*QF?0^QW[ CS9!G"QBP1#^JR2.BV?J\$* M[R1G8(O?#PQC=%A/U.4U91O93&AECM(5951XF-_KT/U%MP+P"'3\]TQD GUL MGY_EQ_;]<#0;_#)\>-(&C]IP_C33'AN\:*H]'/;2IZX@2H8SK7\I\['=1D$^8%=1U"%!S=.U0/]?=+Y,/AR!6QV/[7S M C\UM-U^'"W"81VNX-BU9#3^JHUE=C^C:(+'8L;>QO>+#JQFY=UCL)MQ-"+; MQ,"-4*'UK*X"%)XPYD@S/EA!8ZJ[OHTZL(;;XPSTQY0E;NPPF\#5'\\'][B(X2T4Q%);:5.;?1J[>\]2#UB MGVTX6I!MJF&!(S^[U!58X:DE\:1'$^PSVHVQFQ#.BQS:$N=XM!FY&8VEMAD4 M"%XVUFE5.O!^S_>&?8BS599M=)14>%!3??:Y0F+0;N#L(KZ M#/Z2?.*OL@Y^D6$OK2_P<9S&49=VT7\9 UQ**F<'Q&9F M.1?8P=^C\X,(6VJ2I3FA&\@O%H@>>*'YW&?4AO$_QN8J^AZB9TR MG"WU@2@B1!:5+%TP/:98N;H*A M;8:/QL<*\Q#S 7S1GRT0Z8"PR6"JJRHIZ@LI*"=V-SG0',^?+,-,3&P;3G(% MU0G *9F@!-'=S0C%SQ-%3Z>A<3!".R.DO1<0^J]3YX<*+:E.%E$B"\JZ+/ X M$@8W9?I?B#VUK*KH\@NE=%[D)% E>C/Q1WS[C"76YI,I=3Y4$"^A@I(6RB)/59X+">;ZJC.CGJ )1[JP239RUTY= M.<@5LLKY@I1SI10+."5+8*]K4NPFKSKXD5*/Z]CHCT;:7,8V0_ VHSI%A,B; M$$?D:^?=I-I;8,L*F[?"Y=G%V665A'N#OT1?D=9AH97,>]^OVIXA$%#Z:N7B M-V7#O*YQ1T,PRJ8%IKJRS04<2.0GANH2BW5JZ#;?'M=\<)F?#TA9]YJ> ]I/ MO]=Z,'*2$AT??_UT7O2RL5Q>49:!S*/\_ BN*&?3P[<]<[*Q!F9@A6GV;>B# M!_B"LYG[NKV":.S%J?599O\*+?6#0J($%^L5U2&G*&H8;G# \)\AJ.'3,Q[; MUJ).D_U@F7 -B'6IDF *81@1Y;K6\ M08X3A?)LB*_R&^(HAZWT1^ *R6R_?VD_G2WZ/G828!KHA-*RC%FR4O,CE$>4 M'FYGT0P4;$(Y\&M2>U/_T)LL,Y.>[J/":.(""$7?NTW>75XX-^ ;L,R;7?+F ME./.@?L"\<-!T>PV.?Q#\L8/PWLF$O5015;+KCZIGKX3,'GFTV#OW[-ZU-'J MCOZ7<6+E;DE%>HH2L^G->7N)AKGV0I_R>Z'B=,/2[XU:S3O\'5]"=[70'GSJ MXN>HAS]TUXR\;Z+I&<_+D1B'*9O3I"3B([+-)[P TQ;#QO33PYWAWD$L7-Q! ML4_HT J[$=_JA)$F?R+E B2 B3?5'/L\P=_K,XW;4%5OS*Q%HS^MI_3H'QH^ M?&'=J]5ON,\<%:J3WAEA2?J9H<.7"PT?1(O2DPU]+URCA#*3\RMOCZ8B%*2F M9;8PHSK7X>1+_G!"R:LN_0E%5(+U]I\4/&P7COJ$DXP8:.#<02M %.><4KA: MRXR,3V=H9'SI=.J@P4/=<=46NH-JK805H8HA< MQ3;;P(\WH;P9_\5_J"]L;%0?36_\NWE>@&L)N\XO80R/#$B_E E_;> [C@SL M:O:)G4AO=H_Z?QQW[W5]L]NGVX_3[_,:T:HV+-OL4@X=;8X1JH4>+GXIAV@- MS2,N$F>OI*&/3@_/X<; N7=< %?V+0Z+@X-O=U^ &=WYCNR1;:*3L!GH5EZAT1]+XZ/: M[$*_N-Z1OM2\;BV(7.39#9X7A6(4Y(N6?OLG.G%TZQ8-IGVVLS3?579P5OB+!%X<:?D7;N;R<,MWT;-^)->/,3#AG2E) I)-M@ MY]!MP: O%TWEM.!((3A1E1O=R:$=\\UN@3XW?(6D'.&4&K(!SX!='G!>^8CH M=PPD[O2=LT'G'E8@#S5D Y(7$P942X25!-7#>3,GP"/8/ .7@&UI/>D1+L$G MCW UD27!N8#@-\ VUAO=_9UO+LY4DPUE41-RN9!$(V+7N"8]YYN:CZK)AFLE MB%B09A!;DA$#BU_P1:EP"2C); MCAW[R:/.D:D24B'%I>W\=%@FEB3XI.-6'^(8!\H^E%0\*^+%U?7E)W6FQ$K" M$5V2N\>/NN,D5Y -0RXXV-"D""K)>)RZ8*M#,TY:XB7/C-P&+E97=/M,G4[9 M&U !;PI@><1KBBX) \(^H]7#8(:<4J-W&//**HEYX*C;J=P./,CFJO4=7C:! MY7NI\2[^;GP<1C/1#;0L[#<^LK57 WA>.HXT+E7(A+K-]88AC2A";%Q91_>U M#] &(_1'TIX]7U V4E3:K3.*)>B]18&3PSC ?-P[V]4Z$_(^*GA#.P9^ M?&@A$Z*L9I]X44E60;O"#NFA;Z&O6W@GD^@ YQH9;= AUPTUZ7C$^V*6NOVA M2&5I)7VL.\HL,WD![J]K:*R/MKW>T 6'76[1QH&G?E8OZ$^7EVJQ0(S$8O>) MW>XO-"+D5?ZI;ZKPV3?O\Q--M4;>!G'8Q!;T''AW M_-F+B>TW^)TRX(9) M!&?O)LP>B)(KH?/+UN;]A275KE7P\O&BB%XL_1?[TE MQ#G]IRYX@4[@1:LZQ\3#UW!OZ-60*@2].2[=$0J='/G.3:A"?[C")Z*H=\M% M'Y'23WQ,E@2A"JVJ;#65Q[NNK*+>)F\Y0KTTB+'X_43>V,:+2K&-89W4YP?. M5"T.-BY7#25XQX7<(/VVY-E\N3&9/G5<@TAO!F%5R23PCA;DQ=0]HI=67 M42RQN?($W5%B]XS]"8IP#YDI(RUB=.7G[QK+I6I@S]S-@7EHFC#J>RH%,.]Q M.9?UC?&X?/CX !Z^?CHK1^>Y]I_@>CMGY>*W+A0\*Y>$V$Y=QPP,GW8@)A63 M#5JN]9=+J XCUN,^XFBFN)<>,02:6%86I+B47H@5HVQB "/L?.;.TO^!9'Q MG; ]$#Z;8^GX@9NX8\.5"T(BDD,Z>-N0$$%&*(XV3T($[W \9E.X$V;+?*&L M&!\[3Y[*/5Q8E/LD;GR:'YHML^ M\/PAZ@0T])%MD"=$8F&9$.%3[O%=+)>$DMCAF!R7<,0U?N ML6A%7B9H%XT] M3GS=#5]$I]RTB/V(+(2I919J024=ALW*8S54E!Z,8JD7^?3G-\.'X?A6&\R_:=H"/W$_5E:S+@'B?F+8*!DK?;]2CG+9'I?"9)L8.ODU4@>D#W M,*F5IRBCU) %<0[L\H#SRM=#]*D^/=0ZLC& %TQF.E0Y\RM B*%AX,>UO!DP M 'S!HX;J$$(JK@@-F&P+E615F0,-)DCK!Q-XQ>W0MT1 =)GGXV.(59))+5>34CYTJ6%02A#>Y^YD6PE+B[9)RQYQ539Q"/,BM<]Y)6V\HQB M2>G[E\ZV\60_0\O"V3:2K0=.N'$3_AMB\:V#_H"M1@07P2I-28L_'#1AR=9&-EJ]X8>=>05E%:M.ZK@F*P?:+XD M<"'YN3=@4P5J(.-9AQO-1%2FC)K%A7L'.X-X@M*6H4//LU- ]ZK8Z;\,.&+ M[2[>YV2GKP4PUK9C.:M=H4\B9QO*LT&MPILBJY%@5I,LG:J6LUCY+ MGU^(.'-4$%-07K'L#-+>I)%/'\9767GH!8@K+*V8X^N6!!-$+'ZT'7[ V^%C M3?P*X&J-CMI#1%M]!9X\L RL![@D.2O5:5)YAC6F!%%9S>@+4YMNB5/7V0+7 MW^'K(J2L+58SKZMB+IL9T57Q_2#YWD"WS<'^BSWT850ONKJ[@KQT\/T9K= GZ7X,C+4E(4!'%CF"5!53DF"I(C=QYVG.BLRU)0- MX*I8<:!>(KPDJ.,E.$#[@'VW2QR0"DLK@VX))D7.2.P"2X)H$IN. ]OC/]Z! M%V Y8?]#IQPJQLSU^XMZ/15(DI/L/G#1<2,(I;B'K_A/=.#)%?J+-*?,Q*OC M=J%] .C@L78L<[39NLY+N%.A8TNIT5]P>84FW@B+L,JAG;WCXM+XC+L GD]? M<9GJ9*7XU++(1MAF$B[*C3:O8>?&[A!=U_JNV6 MWST1*EFC&,52.6R*.$"^NF07&'HE::&GH\AAEB*+J;)U>F@8P28(4_"E_4#1 MGRU0X!!*U [Q&E-,\[VA5Z,*J3LG74=$M/'[1'%9::8F\JMMM"J]X0VWD**< M]5,>%JU?;A]?]O->;.?RCE,NM@_?&D0?Z^&==NN.,;7OM+L;L3Q*Y;O3[L&N M@>*0<[.+$F1:NE>4'[=""[(P@@/; GMY37DEN2.CB'$0 N=)I=Y[<[:25"NG%,!DB =W^P" M\Q ,,,/.F'2T2VJ]#<2K*$&2V_&%JYM@H[N_XPPEX5^P]'3,J77>!N+\*I#D MRGR*-CMEE^29,F\#SW*1Q5R*U\8/9P)#!VK@@_W3&G0PR17>!K*<\HNY/J_T MY,4,B4QZL6G_FVR@<9V>RB7I\,61L&.%0^GH5UD@*-=F@>8[VH>6O<.#AOXF MV!"UG_E=.OU3NI5%H%R,3M]">J5CD/Y=80Q*Q9!D9R[LXEZQ18)3+/D28&8N M_**<<&51YLSUI$66#M(!W7J2-O#RQ"G.N#C$5D%N-::$KC/P-6GGI_D(E57+ M*.OS6>U]FI8@0GM54D^/I:JO2%*96%%Y?&CTJ5-/[&A M;0>Z=92*RD2_P"7$!\BZ?F17''YD45\&ZWY@T MT.=3>8%.\)!;_'"$,"QNZ^T1BR:X\OGP*Z@"?9ED2JS8VAOE%%%TY=/K\ROC MW@G$[+Z2QMXFIXB2=YV&GW#Z2+T><"1A\EQ)6M#A$GV?P):ZS66U=MY9ZNXJ M?&E$]@92_4LS"8FQ,*I%DAH2"LIGT5(@89BZR NS-/!9>:[.SH^M/ _:<*YA MFT[87.,V&C'9K3R"X::XT/>/JH4$=CCPR"JD.*.0)5 Y )#RJQ*0H=+ZP2B6?*]!CP/,1WS/ M8^,32;0Y*CJ?%Q:4%CLZ#$?';W;1I')()2 ZV0(\Y=BK4(X'J#]#"[4_W#B! M[8=!RO@A60V?I+SPKCTLMP#NI@CVZJWU@QN"Y5?^$HN@#_HCW_1*RA.EAIA= M7T(QS2%A1%MJ:A^9_ \[&"[AU7TUUKA^F.YLX"O]&:K2E/C2;D;^"* MJ;5%*"?L?KIDY@]'8UGU7TC($E1-_ 9NDX2SYUB0KWG#!+%S)K_##VJ/L!/OI-EL5"0L 9>'>53^"^/Z8E'\.Q=?O/Q8>WU ?[ M>8;[W/YV$1$:$+@[U7=ADKR[@#6ZJ6ISDD\*A29]H;(J'RS'J@UZ[!)G*WVF M#4U$Y:\*N91 B4SB;B>KSLO.;XV$,X8H9-?7B:URAA)WQ-M,WQE#E%'ETS&7 M N"+B.D%-]-[KI!D5/ETS*J 0VQ5?<)DVNHS:\H%53X@C545-2G39Y;0B"$\ M/$T.8CS99FQY!*;V:J"BD=]@%9:0VNH=9;@$K?M4LP39]/B,LDP62#58P"-* MC/.U],;4N>\8OZ\="W77PZ]\^CL^J^G'?"#K?#&Y_>>WR<.=-IL/M'\]C1:_ MR6\8S>MA[/B@Q%!*K_2]]5R&M:-=NQ^(Y2K-#TP&B92.55HCKT MQ1J@?SP+9Z-\'Z&J)W"A\Q;U!Y2[(V)75R4IQU?F]3EW@ M*LFKLA>BL)A?";"OM&ZRB:4VQ$6<'@;^VG'AGV%:*G0R)_DH,M:6E@QT7(L( M45U>Y7T#BH6/GOL9V?>.:P ^GF2K]IPD#,(J[P]P)+EY%[C07D62AXLO>?TH MJ]A7=K"**NC>_P6XSXX<3V49P,+606 >;>7AKR:AV)O]#N>-A0MT+W!WH;C1 M?)F\#D>8(2@UE"=#51F5OZW/"/R+;@4@D1 -N1,?"!4[2(05=6U_ MS)!F[N2TS=9R=@#< !LLH3^U=+M*CME/^:LY[7'Z,/E-TP8WVEB['RT&TX?A M6*&1#5X&=/*0E@HDR15=TD_JI5RVD&SXE*J:C Y% MH$;O:I+5+ES4P[6.?$=#*BLK#!2='IV!N"23,9T'WJ5/7? "G<"S=B//"X#Y MA-]D"R\(S\ZQ3)3+-X[ZLH#-C]OQ#5Q=H>7CP23P/6B"R3(4X/P<"S%Q1W?S MDH'-4J\WN%<65KYTO)$$9]/D=H ZR(F%>X,LGX0=OM!.@O,'TLQ.L\ +B$QP M(QLGGX O9<@RU.L/R%6%[3!XC>KF=,XQ?(L*]P=9+@E5CB\;_M!=9WZ0#EV=?4"Y)AT>TZI@5#M6C7V7!K1R" KC*QTLCDVB)[A_U5[@)BJ-# M0(6=8C,ND_3$RLU]L%\, M;D]%70=)T*YSJXSCR1+U>A\!0+SIK=^T\H1K7!D-Y%84[@N?O&0YAZ]A'MK] M( K%\D:VIAOKD;-/]X%23RI E<(/)%2UU M"TAZ;99:(:N!SU?7EU<*TH%?Q ;",3H,T8EN^$//K'QP(U$YU-!0_M:4IU(3 M\C<5U-'4)'+TR,O1@2%V!DP":;EF&ZZ6E>=2T[JHFZ.Q<[M".H12WT)?MR*Q M9PA;]P68]XY['_B!"_! Q"_(DV-E^-I1GEIB)1>4!+([(NT'&1(:#9_BG>'8 ML5^ AT<*Z.+4E Z"S.P9:?KN,V[$7+UE<"WVMMI3G MF7CI$[H("M"0QX265<8=,' @/BBX*6WJ,STA6TN*27BH[KM*E:_AM-9>X>UG]?\%Z?^C6L1L1R,)(T7>,"CB:A+^YQ>T1]E;NXAY!05^HE^\;%(I M"37K7DHH2,W]]6&48^E%AQ;V+T.;G:^H+M6+I('/G2A;14$)?=7-?E7="2(4 MU4/J60*(-^?>B&'5%_NE$VDY=9/PM;-KF\[YBL/_?=TVT;H4#?B&V)K[SHFK M7)I)F*KN15!=/86KSGXX?W4=C_KDC-@OG=C*J9N$K^K>-X5J"&]J:30+"_2+ M'621$@=A=:]@ZM)?>P6N ;W#MB*T\8]LWX6V!XTP#6A#LQ++I[.H72/4+A0F M8A?*2B@N_)*EO>RL6+A(79X7;/8;8LW;;GESMEXPYVS=?W20^NI@Z;@#;3Z= MGI*Y9I.-JO<88_=S":=^B]S]2L5[L\E7 9T\I*4"21+]6SN9:_?XE*J: MC Y%(,62N)8J!D+^KLF$H"P?[E?K.Y 5UVG5)"+WC/H_7[O C"RD4# \]LB M=]%W,W!].;NZOKH\49M=4PTD=%"8V,F,< =?H ELL^U9._W=$[%K::J![!.* M$+OPAO1QL MA<.P/-ZKL$OFJ[##IP?.>53Y+K,T*WJ;=IU#JR@T-5IZ[L +L)PMEAL? MM&RO..T[1\T^HEM5;%G> 0(6:F[U%>VR7=U"0@S-#;0AWF#@9] MW?5[X!W291:&MTQ95MV(G5AE??@B;8-( K^)69>X&^H/Z<2(7M?S\SKBE U6 MV%PFP9LJOG7Z*G(6QS'Q7IX']JB\.LGS]16X3"&G@/3N%Y M.CY18,MAHQS/?>=$9B[--/#:G,*L38WTHT":Y(1QY/> MN.OQIDUL@O="._%VZ-^\VM1_8>^MSOA2/^TNXY1_>/Z]]G-Z?3^4=C 0ZG7J M[2P)[:M1U*."/3DAI$Y5'0P3QJ^?QH, ?37QBF'7Q*^2Y:UTY9T![ 6(_OW6 ML4-WZ4"WVHM(FG M(!5><5[&#OV2SBP9^B_+L3C.@P=>+*A7SD!Q$?F!!#[SP\.WX^S0H0]..6$*&[A M^\?6I[NZ.2&ZGU8X]5L4<5,JGLK1S>%,N$ ?H"2%R)21#6 &?/*@EDLD27Z^ MZAXE!Q%MDRE/1!.?DHTLY;B+=.KAU(LDE"O:%,SF3V7)(,EU9"-!:X#FN<2O M)TE((2P)QI4\=PT\"P:C6&\R"8;V1X VZR,;43L(A\_$7P-WL=;M^(2UW_ W M$S? ^WUI"4GGED#KCA"-O?5D&J5*S"9X:)WUV<^?2"]"80T\!:?BC56I*B.[ M<6?4SW[^1'T1"A.;,F31]Q$0Y[+HG :!X)T)C;_2.^'@OS;?[E#;Z3< M_Y_73V2B=NP-NPY;?WY18-=.:T;3RA2:5J7_QVCY!E.MUSI/(ZHAC0K*W5+P M_FD/AE3VN"??D.+LWVE(M:)108EE^CFD4KDKY1M//)T[#:;FU2DH54T_1U)? MSTTG(X-@;8I*=5-H@&C&&S=Z?7*AOP+.M^L_GYT?^]>.QK>31VVP&/Y;F\OO M*;N7G-DSEE+C^Y<.7J]V 5+:'8C^=V2GH"0+0*Z3I?1'1.E/$KR+2M1V?E[@ METZ0PT!WT1][ >.7(&.?^C+^9DOW 7AFN1JX+V\7S5!BT>4\YO O8&E"=&35'K7C!WSI4GVP6&L[+AG\!$PL?C@D0,0FGE M6< C5]V+5%DA1YM<_UTS9&-OHY.14/#< -LL7MP[!7.H? ]6=H05SLB#^-?$-9 M6K6G#4$W=]+-7BQ:XIO"6%I4EG!-R=[ ZP.-3F9W<:_0/PX]#^0V/IRUE>6# M"#D;R.'?[M22$Q/;\2*X+,OYH=O$A)H,-96E1ET9!=T;M)1Z8 S\2#,/CN=- M@1N:B6]URPBLL,G)4M-=G"UJ_R.?3?1+WB8ZUA:)7?0O#Y/Y_*^#J38;S+\- M9QKZ-?7M@;,<)%\?H,\/PN_+;T8]UEB)#950G.EF&RDDGSKK1/6@0$.=J0V5&U!=4>4-J MH0KNH!7@6.AC/0S-_P2>CR\->9A3WEKO.%119.5-K80!15('W_Q#:J5W[.$4 M592UUO%UJYO+G".%T=:FPK(J,X!=($%6U$Z2&.1.%!'!&4&.2_<)9II(@@R8 M5CX2\X#M"XH^^-^.O#@Z??3,GQ^_M!R;634(G M[P#^?EXTA!ED43KC'!I"9F[<:J^&%: A>H\4AQT- Y]@([K9%3= RU_7W!=E M8QH#=_*$:UL_DN2T*NYU:9Z\LFJR4:)M=%GY5:(Q24B2Y,\-\[5%CLO43'C$ M\FK0H@24@OTFE[R2@-IPBL/>@,LO,]%.*>+J.<.U:> ::[2+QGD8"X%CJ9*5 MX7/GP4XU<:LL,M$@J&B6R>Z1K+018Q1+Y2R3-7V^14X*U??KJ$QLI>.NXFDQA%I?!:CZ[S3P>W3 M?#%YU&:#X?AN\%6;?)T-I]]&MX/1^'XR>QPN1I,Q*A5^2WXST0QZOV,/M2?; M "[JJAWN]>FV(FJ=[Y]:=S:(+S?B> -[-0>K, "1Y'A *B_;5%"JYP)?!"[9 ME(_02L2=@:V#-(167D;L\Q4R"KJ^0$MVMTYF- %V -!R M9N"OK,#-[E'_C^,F]3AO"J[S-P5L\W[X+GQN_71A MK($96 /B! 3#V^"-(2XBVB^QP)U&$< /*!MDQEY9U(O'FHUFAV'Z$^?/TL\ MR10_OR5> 9)8B6X=&X_8*&81:^9F=P-L8[W1W=\IMPUEU63#O $ \RRII!1I M>9#TG'I/4%9--AY4@H@%:0:Q)4%ZKEO BT?!&/A4>W!A6?DQ90"C8(YGEE42 M((>&@:T7J,\&@"]XGJ)B22K>4SBYQ!5CT6]B,2YYM8Y20S9-; 4S,W%A63#K='IF$,%3=[*EB")KYPGRTP_"^=<:EE9<.50>18G M/LG$##R"[\/>W$GV=3@J(I/V^11YY-# (E"G.T3]'1MPF+?V$Y61!K;?UGUX*@ MF#MQKCYE/(@%>K*]+3#@$@*3N&\@EI6%#WQ0'4',)5R'\1PE\ZX7&XN@O;IW MW/.S^!ISLOSJ.EYB$\1#X6!,\LJGZNJM2L4-+HP)L[M@5:@<&<0YVSZ4.(E6 M;4X6BK5J'12J+&($<<>FPX,/QCF!,[0JLO%"*&0,EL4R5?3&+311[,WN\//0 M!3JOQ]!E+8\A#_L)'3HPP#UXBWY"K>?ZE]Y/2(*IIPRQ@CMD\0J0Y2ZCN:O) MCYW['#< 6XVKR8\E?LJ]N9KL'GA>3&I<3#E2I'5P:0)]\[N>5 )(A:D&<269,0+=N^4$5,&, JVYLRR M=NA;LC?$'Q8=W2J[93HN*QN C4[._)KHT.$DCDQ+=Y-\<40J*PN\_)H_0HU+ MP 8&I0>,GU;.RX?P9L+=1<#%?SG@%O_#]Z?Y$4B''Z1"A$NK!T1*I.E<_;=C M@OIOQWU2/T$:2M1J50\(PI4HSH8S62[6X%?'M4SR)6=1N3X P2><)"EEI+Q3 M[/G&HQ%E$3UA.N%3E#[%#NW=OT)_G8@ULG%Z%9R!'8F$_@\_\4*G$D]+LK%( M*,!$_M36D,H^$8W>87]"^NDXX+Q9!G&KHE\Y,(ZT5_<^^ZK:?3;NQ7L+=V,0 M]>-TL1U>DUZ?+K:!=/-1&6+-7FQG9Z&>F-FZ1[4!B"J9V22 5[R9K3MX^35? MR[1I0E"9_&Z+ 8 MN%B]A>]7DXK)AK]0:/+(,XG?5"+19H[1]SIT\0O,X!'H^.]ABLS]/T9BQC^9 M$WN&-2&\Z>9]JB-%W/\"^K!(.S" M_TD.SDDO!HX]T ?[G@S"KLA_AM[K]*"!LB,TK;#YI)/$L8MQKGZRG6!C[Z&:UFT((A+&F)J:Y_37U.-@+Q<8'"I3;T) D5'QT;[!YU]W?@WP>V M61P+32\L+0W:@#'/(@XE2<*!I_E7YP7MN_'<>^NX6R>Z?\*;[^$*()4 [_ @ M!Y4@%5HZL2?#'E$:5/G-G=0\OO_C-PA%K;=#4L;LN%> T(*'RIK0I(%:=_G<&;U0CV<4Q<>2@UI(:^,$@5Y M1O$EP5G4^WD2H%II F<4BY(T3?JU_%;WUFCO@O]'^R. +[J5H?O!J$-R#F.M M+RTAZ-CF25%/8D&6+;0%?78Z>A1K^*)#"X^B>\?%H5Z'_>X=>/8/?R,PAK5Z M;PA32V!!YX0:?"$E=$/\/QH#\[7C^@O@;D;V"_#\#=M,4K,UY6G2A/R"5B3? M\74KYLPA_.6BTS@9&T>)9UPDQVT<&:[V[LO.!ES)L* M3QZ!#0.3Y=1US,#P?]5=5[?]7=%$7UA0>9PY16L@#%?T@R@S8<;SNZ$6_>FO',N.I: H0F\SX91]$*L3J,HPKMZ,\!<1*+NA% M'/K4T(RI=(X3$8 5-*:ZZ]NH VNX':Y<$&H39[88FB]H2@2>'S[W8:'")BZZ M6Z"9TM.-<$_,9U2]R!M5YXO9<*%]'=T.IL/98JS-YM]&T\'PZTP+(P\&OXX6 MWP;#NU^&XX4V7X1VUYGV@*KFQ+'2_I)J"L0?7 M5]=79QV')I4KE<_"&LLDG25. $%O=NE?*!YZ[ W(Q@<&9/-TJ"FN)*XZZ;Y2 MW?'R!65#L28@=(0I(C?[YJ>SV0#7@+I5O$)3WCACJBDSB!2='U^#5Y>UPR08 M\0ETXLZ!^P*-HI=#@W*M<51$0OTS*O)H8F212Y*=B+#;",5F0TZQ.G0:)@VO@[4@ M)EN<^J%PH)$*2XLA'8[C\<8EGMCCHO"[@KNX$TG2TR2C1Q&NI++]@)5+NGY= M&DS\-7!3;_X2)N7C8LKCSB584]<%S=A_;P(/*<'ST*GI&=IA*Z&4?";=R[Q) M]^9I/AIK\SEVF+T9C9/$JV'C\EMH"]129IVE5>G ,KO/N)7T:VC\$4 /QF:0 MU-_8,JFR-9,>$5=G9YTGGBH#I6#K)4)B2;;1!1)0;+:$TK)!*@2@/.X\TDL, M+_ZC"^@O?I;6DPUR'FS8D"T75Q*,T3$? F^R'-DF?(%FH%O6;K39H V,"W6K M: 30GY"KV)P*C"C'M&"V%ZF/IC(,=CFAE!E@:%5D(TU[*P==!9(DYBCH]^$I MBLGR%P=[/8YL1$?@^5X\O$QV'C T)AM#N*%D8D-514CE0UK?XS#VF%TXL=") MIH W!OYD&<;$TTG&TT0/J55;?+5>DBDXN^UCE]&2'>7N2N3%281CWVS\.H;G M!1M@\AHQ+AB-&(-D]9 +\I/50RZKQ[F4C.C.ZG'>$ZO'/;2A#\+G)]"Y3+=7$,V?R>N$ M82Q(:?IU]A9DHU1#ZTI=C4AB(J&(<1!BK&_H*P]G*[)1I"Z67.Q@5H@D*]4= M3L/I;(&Y ,;:=BQGM9O!U=JG+T@EM11B #->>19448(DJ"=O%X4>ZGBB7,,M M'7%*C;>!-J\")%D!&KT2Z1[KSJ]$LFCGG::Z03ME.,$Y_UN<_*BO%6^)G MLP.$4=V-Y*+NRS!)OTD9.KZV,4QR'ST-DR:'"9NZ^Q4'(%*!AR-&&XM(ZFNG M8='@L"C3V')4IK)5%3:[3[ZCCF M#VA9!&HE/Y_H?)#Z0&0_I?V+'H%7Y5U:$ABUF/5V.D\1O:9C>1?Z*^I'UL@>_&'9>5[FV1M M=LAPZ/UD$2\Q Z5_, PGL'UOJN\HGL:M]N$TEEJR!G)"<%J,&%!M=[MU&BHM M[M1H@Z*9YP=5&12)I:)0@V,@^ Q2]C59!T7[9X]*FNKL0R]9W/B2O_ G?\]Y]E/U<8C":$P.YP2('(6(KU1*31" M*($"(#[];8E@L,'&-MC"P]3>,X2FU;W6;\5>W?WW_UV:1F(.'%>SK7_^@SX@ M_TD 2[85S5+_^0_?R2>I__S??_]7 OZ)_DHD_OY_D\F$UL^TJPG%EGT36%Y" M=H#H 26QT+SQKT3'GDY%*U$#CJ,91B+C:(H*-C]!D0?\ 7E 4XED\M_]'C.B M"SNPK5_;A@_HTR;9S5/"1BCZD_R)(5@*OOJ53O]"J42S]O0'ZYZJFN2(3K"= M)/PM' !%I) '#$NGZ.,_XH SUV20*-M2HI3[E:!'(BFG,"(IB0J1Q $A)6D" MR$D*(P ETX0BH]A>3_"?O\<>I"RDKN7^FBHC]Y\?8\^;_OKY<[%8/, /'F3; MC&: T"GDQZ:A[R9549SNVHY$5WJP'?7GYHOH!]O&AF;I![TN)<>(6F,(DOH9 M?BU!JFZ;R[9O>4ZP^T74V@7R@VK/?VZ^/.A_Z6H'W2]2V\[1G_U:E9/'P!23 MFN5ZHB7O'A-VJWB'3]G\+/US_>6VJ;;TDG !P_9#DBSX/A!R(N?GB-:[LAV M3-&#_(,=H>DD0B53Z+8?U_&>4PQ^># ;;7F*5FAJ[VG;Y@X8G:0M\1-^NS]? M[04V/*6/ K3C+(!?' [8M7$,)5_J>MUB\X-CO$)IFOZY#)&X&^XSU!PT#;]] MY/\[V ]Y>GS$KS$42V+$ 8:THQ@BUAC2?OS[]QB(RK]_F\ 3$[)M>5 1_?/# M TOOYWJ^X8^38.9K\W]^;+Y/>L$4CO3GOW][FF> ?__^N?UWW9=D*\&_?RO: M/.%Z@0'^^6&*CJI92<^>_DHA4^\O^-2?\.N#-HKF3@TQ^&79%@@;:,M?86_ M6;_4% 58T4O8(.^(QE"SL#^I\J/LUX/Y(:,H_/XK1 MT(75-979@S?AL(VM/;2K/U_*M[8"A]/]BX>B\( L'ZXA&R5+ L@*" M]3 [LH"D%H)95S2#C<\!%?-]8F?("M M'(ZVP+7)=JE )EF_VY9P>2 3S=Y"2(>C;9T:ZVO"Z8Y%![A"=U*F<<93-%8, M!+I!M_G6-&#>IW44(&NF:$!CDDP]%<\F-*30300*Y]FRSD4/;_A>:%)"#_1 M1-/CUC#7 SV!%5>X4QT:H]4452'VWZN(WCS7,[3/I2:+#TO+!4$U%1[(5B\W M3+$F33(?F.QG6I;#B79%PP<'DUN,D3:^;&4-U@_R,S8]ZT[::.M&+,IKDRME M,*]?'?6KNKG"99"=D'M$DZSJA%022 MZ@]E.>1TDZB]4T%-?0<(93[?=NJ=60[)"N.E5&[/F6I-/<;>#Q&-8SNKS!0( MM$CQH3=<.7!R*D*HRKWZT?SJ;KYV'S-3)+KY-9.HE5"#G0&(7N MH6U%D@S1*\-6AZYO0U>,B3V3=6R0UOAD$;3T3$1H*OTM"8T<: 0HFO!GC1&G M+6MP8.-#07=+%BO*X\8(JD-HOHY(OV]5]);">VV=2,_'F#IW*)J&Y,,_P6*_ MXH"=)M]. B-0P*_=#?4FL\*D]A$*=P.OYN/)W(CM>:4B\"<]6H1C^A>% <'G ?1M/NXCO4KU_%.";2'7 M!E/;\43) !Q0H_#M8-Y$MUHO@6YCB32:7K?'$),@I<.8%/W4>(V! U,B)]T0 M-^Y;770#;ED:>LLAG[/"<'O]?! %PMMWFA*^'VG M243S $<3AME2Y3 .?OKC;7?N&E#KMPI\V')J:++FK8>64#3X;90-WX'RA:G^ M^'?;Z-1<__YY]#G_;@>X&\[/8W.?1C*_HT24;/.B8#2)T,D4LIOFYIOM^^WO M?AXP]#1_]]S@BS XAPU :HGB,X1KB=FQ[B/.&7P^@[%M?N2C#-ZI.7Q/ MS1'/Y'DW>W;FAUDH:*]L*\J;[3.\XP#1]9T@LHYK[VGK7)B,-JNW1AV>TPIX M7DAYPXD=6XZ_.-M'GI^<[B69#AGK>&'>;"/7>!+9L?WQNQT=E;VFQ)X*V'[S M 83L&\+41B%<#B$.,E X=.8D^08TIOZ,*%G#KD 0DAA M8R7V7"7L8@BA>QVZ;3?GO&XNK2F7DJ=^/WG7(6]%")9$R#,1@AVZ$1= "+0R MCQ!Y?+.#2!CN0.]^%X?;JB.:C^%71*5GWX==;# R3--2K^4U6GS/+";M MS:T6L<7(R>G^^'>==7MEOM<$"9Y$SP7)?M,+@(2 R( =(VM79//Z7(BL$QS( M<VATLUACL]-15;S@X6]I&DT-[E=7'RF]CB(30X4PD>#SZMH +)*(DNM M[]19'V22JUI 2P4GMBF&N&F /68_$>H+!*+DBRG9CSJ1C85&SC"7%G@SS?4= M(LE7>L/X.@AQ=2)3YSN1J6LXD3L?DKAXF&&E6DQYD272>L66DR0[7.5R=X2\ MSX,\.\RX3JH"VT]57 XA9<8L)94^64.R*KW(M85*1F7BZR;$&"'GIBJPBZ&FZWS/= M^1$K\SI"L"3CUH2FMN3!2'=FVI0DF\JMZI"O0\B76IF/>*JO(Z3*-L6"K Z* MNK@(T 9K2MXH?4?(37FJ'UDR>1TA:+ 8I[6<7N$YIC=I22A?*?3O5N:W63)Y M'2%JH3^O]LG50._UJ91(D,UVZ^Z'W-:2R4=BF=<1TI&$--GAP JI%+S,1"E6 MI]CD5J/=+T7(I\DX:VZ!'O5=^=-_S90\-[ZNQ,Z/2"7Z:*HI W$ M+U,&Y@>Y:K%PJY'D5^ET(@;\?5FG@\62S/5R*8&OD+Q,*@&=P?)WG7Z[W#Y; MIQ>7S:ZAK*HK1&OC[:4@]1Q@WG5Z3%'06LY[Z0ZB-!&NW22=G-?UO=K57>PO MG?Q[RX5/�WW1V*TZE0Y2L$;]'8;-EIJ[>.]\\V:*F+[!_X&']?-FB+(6.O MZD6VP6=[.&'BQ30 M X-V'134LDU_0+:"#L]9!13/LF20PZ_.K2^=_)$=<1^R:*LS>MG=#JF;J*]Y<%0>2U M9CN0%691Z>OWQ90W\?W MS];ISAB?EC!>]O6LB[4D&#:-S&_ M:7::@UL/33];IU\CL7I9G3[LMVUZSKII?685G7[;R4^7U?MBRNUR^VR=3I08 MFQ&GH*YCI6253+MH(S!N7ST^((D6J03CU1"Y=4WWV0;M&HG5RQHT1^T0!6?EE%BL MS^?,6L\OM'.WSN8O,FBQX/;9!@T;YW+35G_!ZI5&$@$F(E2"SLV'IU]OT*Z# M KPXDU;)H5[3D[/RI#5HU_2Q?'4Y_=+)[Y*OZ&4L6I9F))T#J[=:!$.KG>J MC63]U@7^4PY>B,^.A=>WI-4[!9&@1I*)9/G:0"L$F;: W6H"YE.WI,5O1\)I M6=8+E"RWEE2=;8 2+\]SW"I3OU4N?Z$L?V6E^NNR;#E(I^Z9;)I-)HN^2UDI M4"5OU4Y_H2S'H1C[M"P'$JHND8)B\AK54-+9QDPN3^]V^;$V_8F+M(!:]+;B'9%-SZ MK:KLKQ+FKRY/?%V:6;-KRHU^4M)!5:62PR$^6/%W:?Y2-E_^S'S2:W+Y>KO4 MTK.#_GR=)Y;E&M\11483:=!;4S>(^8OK<6X_,&0M2F5]GM7J]-+Y5+G^A+']E)<89 MV2^R/$$*PJC*:V/%+Q213I9R[W;Y-HL-3@OSB**)P$BO&HC8-ZJ-0HK02]+= M,-_6&O3KTBSZ=J/C>XL:FY3!JJ3C=)FX639_E31??8WY^9W-X=0@11NCZ):4 MD-0(VG!*.6[__F9_:?2*-F 62!)9YLNS.=EOQ/<\[OU);GAYSBQO8ZWQ2++K M#1=QZZM5I2'+P5 ':2F-^(%;"KJQE=(CC#PUL[BGL-Y]IWIG 8<:L :8@[4N M*EER./CY_NWT>=3L(3QJK9#"I#83)!)+ 2NVKM01MIXSRTNRV'W_$==7/,#X M>>[KG7A0:T5#HJ7L4D\*^;'I"L5\>7Q+8OZE>'C;<<67Q@,$!"&$-NKXY2O/ M$1'=?^8V'3#7;-\U@I+K^D#A+04XD;5#T#UD:+A6=G)S0M,UNC,J+CI!>4+< M$C+>,MMK(02%?AK\CSA38USQINES+,A)9V R*\SYC#BN\DF_-JHB&+40XEMD M]$7.P)=;BO-=^9.,KO129K4V5S@VB0NY52K3& 7E6W+?/]GKN[#+3@E/8NTC M5CVZHA)M;N^F?%38'-M99:9 F.L$5>L#6R);9>>F7+M34[M:#(U0>S+Z4>:E M!90\O&'U!/=0Y CW.C.:=?+X8H[T%%WI=8=L@(BW)'DGIW8E[B%)))U$R2M& MR\Q"=)1., 5/-DNYGJ/)'E B'<-;FN>V.7[#1C[7&7I(EDGS(LX,2]J057)" M;!#GFBS" MV&'#Q_!73<=6?-EK.!QPYIJ\[TC;(P^2#E3AIY8+&$MI@VB_R::ERZ@.B+*& MV[38#CPP3/%!&YBB%FX_:P)G9#NF"&.6AF1H:N2WL;N.%-S+UM8%X4*Z4T[)W62A WEZGXP?%#OLYN"3P MND_:T76/@+'QTUZYM/!EM5&"_:A."*F!!@RE+9K3K7YH8GV7'2S&R$Q7\?E, M$HE&/7;6_Q4!.CF]:T997W6QY32I M+.-W]> K?'\RJ>_)[>.YE/?*>VLPF,VS973.9O7.K&.WI]45%[M8+8[R_N7Y M]P_)>V: &AV"#Q0>ZQ/TI%P+!.$N[W'D]O$+1=\K[T4^U==G]FBL]\:E&;>< MB'8SB%U8&#MY_](+0]^#@*?R+JCC127M-BJLR10%URAU;&]Q:WK^L^0]-M?# M?ES>F0[GS)A61M!!NVM.5Z0]+LFWIN>_1-Z_<#WU O+N=68^#TILA16Q0?]T;A_+#NY*_#@96"+LZ9&_VVSV8SICR^DTAKM<+\TD>2+9 MJ"G\A!::\;L2/.3TT>EM6'UR?K>Q7G9DK=.Q82=>$"X_>(REA%6;TW"DF>!9 M)G^;\(/-MB]S8 X,._I!UG:]73'FV9WMG1=(G9BO5N<>9T& MC[G^LXGP.R"B"J LC&U#*9E3QYY'4K,[W[70I#OFF%%XTW1ZDX97F=7TV*7H MWH6!%Z;].W ][SN6YOF1#.2U9?AJR_1^H C"L",,$S#\Q)2_,[?7-1? M]9ZR.P^A&LMQJB OZMMF\+L)X/M=OS]^J*-DPA+.= +8ZQNR\ M6L].VH5FG^5HJYMT6SZ;BN_VP?.9_=K$OSWG2Q9LJD*[Y>9&&A>X,,QA7!?L M7+;D9(RZO?P@P_LI7Q]/>G@:ZWX#QK\R[]^([]GY9OK6^JC7 _9/!EZZYI;* M".^/4-#W&'NF<[?ML3]A_TO3OPT4'-ND=I40WN1T;HJ[#L\G:Z1>H@89MB#> MML6/2PA__4.Z+A7#4PZ:GML]/\O.:+J:TXQAJW[C;M_7Q?#Q8OL+07R=\-D, M6)B!GN06@9EN^84@=]MVX,N"^'@Q_504G\FR!<)$49LW^3K6* ZE5*?T/3C^ MN5%\/-A],HQO^]4:TYMV?%ZDAXT<4(:E$G;;?/[D,#Y&#'XUCF>=5B5EEWH- MWJ\@XK I%?MY];:M]U?&\3%B_6N!?) /9F5[TD41SF]X&BCISN]183&=_5 M+#A31H;D<*.[F0Y#>?@\X#9&)4O1YIKBBX81E$Q3A+Z.)AI'?KT%1YN?3SUU M."3YBM:=B854:[J*7TWM%APGR+ 7S;^3#ER1D=Y]6PX MLPVS5]UPNRK9O>4X@ M\)Q0*6>H+-9'9CR6[++#ZHCQTZE;8]MF/K]X[C;XM*>"WRMNF;J2&B#C58JO ML&F<4Y?67!S$;A4N9N)V/1_];'G+IK,^+8WDJ=Y;+8A\V2IBDWSL_*JOEK>K M6;==8ENS- ]4M3E02A;L6]4D ZS#@TRPWCYOB.[3,W9%!9BBH[MA1B%\$Q[6 ML768>ZPHI0NQ7W^_/=/W7V! +>A>2^#A":4C,?U M+]]G5K(R<0$;S!TU7W'^8,*_$Z?K=GBS[11X8.?C[](G"ZK(-UBE M@&0#4:W,T49=O_Y=Z)_*]M.S_YTPL%GV!TH'R&/+-FPU:&OJ> <$K-$O";;5 M(UEB4%[.Z&"\F/YMH.!(^NORSN"\.L,,)55"=8!E*CSMY$1K&#LO_^:< MP>NOL5S &ZSQG::CL0'"F8UL06M6P #Y7M;@,[S!>++Z!7>P"2AV00*LB7!Y M1JJ4<+]GQ/?2I-MP!^,)@M?\P98V4\7NHE1$Q*9.NB-&G;6_66#P-?Y@/.'P MDD,H5*N:K$I^#^$F!)\?24UA4OI>?L#G.X2??2G(>TZL+:>64EM$Y"$2#.>5 M<3] T4X0VTC@JT^L_?(#JDX%B.]AO5-):5E0M^BZA68ZO^OYKU M7W"U9;%7?%,M.J6 R/@.$#9',<*@YR,9AB:I;HEBUW* MP'4;HS:0;=725KM6VPWNWL3R4;V%LI7Q7/5309E MB=61A=='%9(-1CVV'2AZ4-5$DS;Z9IF+K3-QFZB*V]&(UT=5ADKB!679R[/9 M22--6E.V6V.JN]US-NK M,-HVB(JOP^R1#\EH>=!Z29JA>=HN7YX4EO(P*^6S>B5C92U\GB?TV@V:MFV+ MUR8<=P_Z9(+DXZQFBN@TTYHUEHC6\]FD.;$'I>$-^L9?S.IK[#,X=1+WZ<*V MO;PXOUL V6TCC>Z,7/?>UEP]$V2 )8_#-:/#/0JB =R-UJR#IY>['.GF64#^ M.*YGK3>]V5)ZVIQD,08IM'L9I]G$T:4=NU+T5\KN]O+P_&OH.AOAK[%I;P_% M,3Y=90#/\Q&O\GGJ1V"*2SOE# 7'U6J_:RL7/&7[SG M[ F5?QX-:-XQBZ1;R9_ M=ROX9@G,UN,I@2H)4@6I&(SYPKQ3U_66T^#B=V3QF1*8K=\E\#>4P%@*%IJL MU;K(' <(&!53AKXHXB01.]-V1_T-H/[TW8'?(&.9U#O);-7HC9%&AZ97Y?1* MJIFW9H#N&,Y5T^WR2? MKV4L,_'-6 ;9%-6GF3G')NE9SFTV[4*Q%3N?\JR,9>;WDL(OS%C>H@S&>-6 M:@Z9K,V,$';&"VE2::8E68KE"OM]U> N@U\A@XP,@FV6@S47) %<0PTI= M!4R-4EB]\6[,\7P%(ONDABOB#'NZW=I$Q<64G'&LD$OV^VG MJ@3*6[<6(M[7[^X2>+/K=PH_+/&DGY)9CBI2!:W)U(Q"+$/"^_K=70)?WE(8 M*\$J&AC.S:;] F)24@T-:*T]MV,G6'?4WP#JCV]Y_";K=U9R&(Q7=C*E$WYR M"3K!7*E.8R.QV 3E\<*PA>.%6*9( M[NMW=_D\6SYO>/V.K_ CL:0E T3+C2<#,%K.V[U8IDONZW?QR%C>J S&>/VN M-]"7Q>:\HB!BD5GYHMI(S=7[^MU=!F]-!F]WU0!;*](93N/TAKTP M8FD&[ZL&=T_T(Q(8UU6#Z51M3D9!$]%[;J&"";XN%=!;2]K<5PU^:PF,I6#U M:WULX3?271:(0R&'=3 D%=\+$>ZHCS'JCQUI]V2UFH/4$&''SP,P=U/AHUEJ MWG90I FQ?%^(GBDX-!OU84W[WF^"FB*/>F56^*:1QOY@0VBV6[SGP:NZ TKLN.=U&\ M*5&,][8E/\53/:JNM]E9JRN9T_R*ZHQO4Q3OVY9^.U'\=L6KV<$@65XMBA-= M%&O==*XUAM_'TDF]%Z_&+C7\Z?=2?$@F;ZQXU9U5&3N#T16V@.-!CNB,?">> M^WOOQ:MW^3Q;/F^X>)4P*(>8YZ'P^%:[56H+ZM*/WX7?<8TB[\LI-R.#,2Y> M[99L1W+(5J!S0[_3R@JJ/=)C:17C&#[>93 V,GB[Q:M#T!X7W%Y%13AI8'IB MT5XE]5L+&>_%JW<)O-WB5299%CFCG]>34[6=+9M4,NG=J@3>BU=_2PF,I6!U MG9Q+>XC3T M)VELR_7Y-HV/G7=Y1?P.H?_FBAIU>9&<^G$S6-J>V!=^Z!X!M M T_4+*"PHF.%EQ!O4%H8M89&4$0Q/>DLBU9JA0R8=NS4_PY[+TWU$2;'YWHU M;,3X$H_SL,'(LF_Z!FRJ1!?3ALT<, ZI/P MN^#G8X.('S;.UR[C"=>R2!O,=6TXKP][_,0WA-BZ3+>D7;X.0?N'U*4VM4<7 MTBZT8#ES@_?*++9:LAG2MSL>=^MP^7SM\H9R[=15JF$^A(WSM0O7PC)TCIGW MV"R*!=6RJG;Q\MUWN6D$O;R9]4/:92%,4I5^P?+T I\R4+O=U;N=6X?+)VN7 M&&]TOK1VT?O$I-"=F"B271 \QW>]G-J_=6/T]=KE2Q&$[R&(N*QV:?I6L=,H MHC8RHXL$BOLNR SN>9>W8N-)C#Z$C?.U2\,U%TD:HR=L UNV^_P*Z+W.K:?I8J%=/AU!C"LT1D<6 IJ& M:-5%$SP6Z'7& +9 F[XCCT47A VV*YIM^^IJZ6VS1P^WB%V*]8^"FQKT'M%]1$1P=>WK>4IUO$]CK8O2S"F8I0.((JF(/#76:[ M-B5KZGMNU #==*GPG%MVD2G*$_5R>B4L''L8OPNJMHKA).4>;<1QTGV\F.$\ MFC^.XP6BWY;*N@!N37%5K>GCWHSOJ<12JW?HYIB)K3-R>9#%BJ][V\7CJ)"T M0C4_G_6;')NLL?-]K\DWTFQJ=0&6='69ZNA5:L8[7';B6TF*X[R?6$& MDT+ZB?KV7H:.3"+I MWTL0MONLV\"(M)$[UJ;;?C.&:K:\Q8A%0*7>(X$PF9%D?'VG;R8$+W#F+@"' M D"EIRSG5C.VGBSVJ&8Q*PU<*KY.WZ<#-5:P>$\BF><*]APX5CC\K.U,[?4B M>N@.,RJP9$@N#D"7"5+CV3GM%TQ&ZG4JFV_4]+Y>D+)>BZP5BMHBM@KQC#31 M.^CZ.V0J8[!T\A[$ \3OMUW5S+ ]&LM9K:1EY:JQ=5H_&9ZQ0L2[^!O#$8>P.6R-'\3"72>D>>U\9$ M;)W!F]*"%X/$F7O;&3@L13-\#T9.CU-DE[+A*T#).[89EOSY7M178[0M&VT" MAQN+3DC2HQT\J:]U/4>3/:!PGBWK/(S4W#;';\!4&0XK 8=6DXB61L%JR/9) M1HZMLKLBO?:+=%\@V"6!%Y_]\U^/4M:<&G8 0$3RQC3L:8-0E6C8BDCK!D^8 M36%*EF>46HNMT_X4%$G(']OA'Y^ MS/2;HO.LF&E)K5*N6^_5D(+FY>KSC,0V2O>8Z=-CIAB?";O>W[S;*7U0.+F^ MGL-VO3!'O"T=W4 KD!<3LEX3LFR281'6(IH(#6(+K1=FN;T?X^@T?\_W5M^"F%75$2J,+&&()LT&2 ?/CK'X7F]Q"XBY16_V?98*T#6_U6KW/;;1 M,X/TL,Q44^AM:YMX6*H8GPI\*;V3(B>+FZK#^W4.^\3CKXR@Z1^]0#N_Y-=#,L\'(0U$_ M2$TJ9FQK &Y![\0U,C_S#%A%B?8 BD93U)22E16GFB<:&[2@G0%;3:V<*2_F ME\O\@%@T52:V5NK<D MW-QM3,>14E'R[G#BNU,^R54SY,!LB?WK'[EX4X2[R%5%+XH8(!H==L@6YKH_ M8 BC5AB,U.%=Q&[N2J+C2,'[?*9K6..^KLG5D3"V1+WFQE'$;OLNIY=%;.1( M5L[+=ED$8+PY*5%9<9F-;48GUB)V\_?RO(R4I#=;\:L42NJSLNZ*@CDIK+IW MI-S<'2O'D>(LL:#=DO )PG%3O%57$4E=Q>%8_?@0[B(7D+PH8L4Q/FTZKE#7 M_;G$M)++KJ.+=W_G5BX:>04I5!$M#-I@H"!@.%R,>P6-ZTROGL2\!<*=.O7E MG!3@2V==>KW9H,I/:1_I)64IG>938%*Y[;3Q=SS.]J-LQG2EELK+LLC.LG@* MD*-EJZ+>V?PV-E_^J(KCY0RNXSW:2DX&E@@[?BRGV]:J-R1#4\7],^L:7E-+ M-6?-"FL:WD(:F>20\&+'93B]7T>GMZFC.SF_F$3^GU+2\@H&2I8"3 LR0#X M "7V_5DE7>OK@)VTJ]BHWVG$[V3RUP!P?'+?BOMON'!M 2<2L :8 RO:J@*5 M8SBU^?[>GJ"'E!R)E@($3 !F5A=,;B[&CN];S7WL[K4S9GDCQAO*,P&9"O\- M9;@M6NJ:F^&[FKC43-_<%K6>9'JTA\EM.F"NV;YK!"77]8'"0[EPHEOJ$'2/ M^:V1B^/S'M'30:GL+4?!PEKF8Q<2A4*_(\:/?\.W!]0XR=V/P.HM=+P.O% T M&?Y'7 %>']09P"-?H1]PA,O, M0G243C %9^Y'_B Z]#;9,\<&TT4JW:F->WZ^[L=F*>( M?,&)>=KTZE79D1)N@^EVBZUCJXYH[AF[D%;/O@_CK>T:I^<7IQ*@2CHVG) < M(1EYKA%;375ZNENC],I\OY6CNY]3?[Y0=T&0!/6YYY0'@YS>L*AEKIDVYG0F MM@HKOB")U@_0KXV%3RWFOH*1]07.R''2;9WE,I5.I8J3CMZH](H+@/B@&K\( M^6R8G#'EF*P?Q HIKVJ30G6*D9-QBM=%M(E-Q'IQ;O5C%U/=A#;Y.HP0T.B$ MTO$^BW..-I&YW+Q?UJ?&]^:C,^;\&&>=G/0U7=FX;EM^)UH8KVEKEE>R]B!C>LB\@]66/**U M\Y5Q*Y59U1>Q#7S>"YDC,_^>N'DY3+Z,EA'5YK@SKA?J?(^?+GITP53I^K># MS.=IF;BM"UY!R]2<] B86K7%^@H8LJ7*K*#?M93]8R7X<;:HV;:$U\]_J%E>TH?X4>.?QXENFJVLQ>MO7*W)U/ MG*Z"-]#8YG./+2Z?FMK5& ^Y3IW)^"=-+^:6(!'CTP)*KO.XKW >18YPOIY" M,\N,GR9837.[8I"K47XJMG['*8K:4)6$;^IZ#FTW??*L]CZI;'P/V*< MJG\+YROC/LNYUG#.]V2TD1EQ%\7-.G;Y)Y')UV*;;+L4F[CFHS M,SD2)W?.WVA*ZRVAMORFHZM^+)WF'&.V,U8HA%XFKR[AV)W MJJH!'Z\TX8"#*#$KRM%6U4RP_\W^%2BF"1Q9@X&4ZH HZNIIWIA1YB(7=HCD%=5CB_(76-AT$L8^\;AF+1//;#G M@L@ONN-A6ZX/'!YP1;M,]&PUOXQM[C#^R+^PUMMCOCY">,(@VU6DL9@/>E77 M+([]F$'_,P\Q>G+XA68=.?PB#S_U0%6; Z5DP:&HFF2 ]6%.F: F3FPG:XCN MX1&!T+(JP!0=/;QN+WH3AC);QV>94SN505X>L0TKW5XV4NE94XVE$_WT/(Q] M GW<%WD#90^J3$Z3]GMF?#\?OTTX8FMW-MM\ED3EGB//=:SI"BV_G9O.[G@] M$Z\'I+SC\S+XW-R8 I0.D,>6;=AJT-;4\0ZQ3-XV0+\YE5BP<',M2I"S8OQV MQ\84L:\0]X[ARV XZ[N>#4/K*.X.0_"Q-MWB-ZT/,J6L:@0LT2[E&%,2C?PT M=K%D3/'[ F%_<^P>/=SM\O[M0)@X4J\/9&06E*O)U,SK(]>_=^42Z+WL>6]W M_S:N^#WT;Q&%DDO323NG!\NR.Z-J)4WMQS)3'$.\WOW;*^#S-?_6,)I,>MJF M)SJG3:G5J-*?+NW89=QBBMB[?_LI&'[)OUU,4CZ:8DH+!&M+>&;4MW3R^C>5 M?!/\WOW;PR6\=V S/)7?-J? [M%S2TTI0[ L0Z_X-F*3 T*W++?Z:9BY[Q^ M"$"G9_\]\?-RE?PY>RVRMNLU1IQH[&('_<;BK4J,^\:I,GW5#V/I?AA,)K%\BZ7%0R!\4JO MZ1@IW&_%H?@D/OKG..)B55:;KCN94;.$L#S7JT]!NU6CFO-8+JW>RVICJAY. MYZ)B@_+)F.<]7J!47>1MW*3SJEK68IF@NJ/\IB*+6*%\GIL/TSX[F/&--*:F MAEVBXDMWE-\8RF,8,<4*Y?56D#*XV;C%8DU'2 J]BL;$[Z:H.\IC' D>1_FX M7-!(=KFR]-EH8AJ*W\ JJ:N[PK= N-U5@*EMS&P-\H61443$4DE+S['A("G$ M@5('6VY02*?4KJ-K[3M R6ECF1U8,S[;R-I3F\KSM>O?AAE7U\FWM#75>/@B MO%#84D1'$=SH7DRA.RG3..,I&BL& MV@VWQK&CPZ*"807=\!_V[&&/UF^YSM M=]OWX8->>2C/Y80AVU/$C)RG$'\P:_AJD<=J/?79$S77QC&4_ 5_\O8'YK0Y M9$WTN,T\_;SI"+F*5^:#0*$)W.T1GOEHHI3H!_N=U7VHBT7/=MXYL&>_#S_, M M8M^=2^*"+GX>C/Y\1!NP9"+0^G&,.WR_I08]HJU64'U#IY\R/C%/T MBP^P7O. *6B#Z91+DL@(X18$8V$UE\AXK>,/#'_P@>=-87NAS.?;3KTSRR%9 M8;R4RNTY4ZT]Q]I&C.#+EQ_X4UO^@NRQ?4<&[OKM&(A*)/V0!__^#?]*N%Y@ M0"5BBLOD0E.\\2\40?[W7U-1431+31I@Y,%/'E+IQ\^@#,?7^@FA(CD'4!XX^D&GXT=Z#X:^GV]^.H&9( MCD13,X)?_PD/CG43=;!(M&U3M/[SY_H3^*\+]&;W^9=F.*1KK;A?K\6X^^O%O M1Y0,D+!'B6RHO"P/BD#8"Z2K"/^?'J&O# 'I_))L;_S74U(?H^#':0"G:F@6 MV)(Z?+]E(!R%9YL''X7\"=^'FC@I&IIJ_0IO @7.^A/-"BU'2,R_)-N!"'KL M8YEP;4-3$O^#1'^VWX<=IAY"HA]^_<@6.$TUHM5E^/WZR \>?83K85?I7;O= M##'XT5QS-4DSH*7\-=84V"/LX?_\#X4AJ;]VG)^&P H%6R!%"4_A*"+0-$X+ MN*P0@J20:4&2,8H24TB:5N0?:ZQ\>.[T.Z8N'3QT@VW)-A3X)5\O==A<@NLP M'99+<&R6;Y<2;#];9.H%-I%MU&HECBLUZG__E/Z]#!??.I-(K(E' MJ7YI5CW1'4.8>[;U9R+WD'U(8$@:IR\W=C1U83;D&^W:__D?E$#^B@8)-;=E M6Y&-UN3$QF-JASKL?;YEPA)#SU$!VJ^<+?MA !;>1?PCPF]==!RABC17*0G, M:*32K8D9@PZXMW+GEW=Z]Z&78X,>[%EW?9] MM5GV7TO2M!X^1[X*[1FSR>Y-O*;OSWEK-G1^(W.[:?G MA&R]% LOJ U.BOZAUAR%SIOWSP\-_@3&R5!GV88D&H;M2?;RQW64:LN'43)P MC* -IK;C_=C*MFZ)VLK-9CE=[#?ZP1 8Y:S4@@]#CFFL+74XH-H@P9<27&!" MC?O4>(:JBB;Q]*.J.J*%+X;3R]G[=QG(%L^T.VR[.DBTV6:CW4DT^3;',_5. MHM,(W98.]$W6!A1-)1KM!)K^0_GO^H-&/M$ILON^S=:O"6W7QNJ^]&PFVTG M3E ZA>_]8D?=N$E*^C5"/YU +.#QYE%?F.SQH<09FDYZ[N&$XG7,L;2=A#<& MB9UF2C2C=%P"P+Z5Q!%OF7K0$L090"ODS$0[NI-_Z"*Z?D<=U^03% MRV[JF3YI["))V[E@?!4WUU]"21$%(UQ(CR11P'$,$Z0TC/@)&96!0F(X1CYS M_17$*E?&IH?S65$M*%+.9J<4<\SUMWWRN*)\O))VLJOB2/M8NY/OCOX7OWVDS=:X4 M>OAWY__N_,>2[*\"/)9D_YA8;D,+;Z?Y$NNE_L3(LIEF5W=6@[+V?-WAI4DA")),H2D4O>)2Q'O6>ZY.T#90 MH\O.+"\\(6B/J$-LE/53G:6(),W9H*"T[%$JNLGZ)7%NYO()KE'E0V/*_;F6 MQ5(]^W ]JKXC OV#78JR%U$B7(Y_I$!"=!/<%,AAM9.2T*R$YKF)[#A*>OSW MFP:E-$$J*82DA-%(Q@2<'*4%:H3( DW2)$;**" I^MEZ5#KMI7-='>7-BN(Z MZ63)(EU&P")O]*!EL=D9N!44RR&]DDT2F(QE%%J%+9^%KX&VHC.U3(#"\'4V MUBEDF2VR"R']O$^.P7EZ5D_V^)XUF WD\6(5E,.6S_K,,>-"P\2'2;ZR7#%L MLCON5\2%0#SOT^4D+H..^U,=N'EAX?0\U)^'+;][\(P^T.B%DIHX]8!0Y_3U M)K_KC %^32W(R]&B&^Y]G3KV/-0R%\]XKE5WN,O6@6%BU%>TV39K^Y;G!%E; M ;O0,=U3^,*J5FOH#7P\0'M=KEU,,IO0\7P#F0.&N!##ZK&74IX7@DD<.'H% MAG7$96E33;O>$+WOR80ZD'<*LUIE0O'9[K H,(7RK"-MDWWGLPH+[RI&T!1Q MVIF)IQR^QY9'N$_ **(!PP@G4?8=S56T:!=":-P/9"1JYJBBI:VB]_^-'W#? M0X+20_N!>TBPYM2P TB#0XPEZO;#?V/,]#/#]G?$OI_"L'<./W9LB*?&9!3% M :Z[^:>J60#=:"56V#LS873'WD>PEX4O&T['7EA[P7%M0@933,R4^>2X:>AHS:$E MXGEP_.*2,@PX(>0,T1&/HNW\GOY\907^TQS2#<4BD]QPFO!AFB7OYQ2"5-WH M#[/5!I\UZ!PW5(FT)KQM)3X+(0+G9FG'J78\4J:G^^G3QQ@X5M(<:REHVA! MQE";/L86$4>)@NFNNH-Z$>F-Z4$];Q4RA=3;.$JGD31R*6;&3K>]QZ';T#ST M7YL.%"%M*AH)=@ED/URA331&T+<#[C?Q7B&F$B&HGOJH]WS]*PLI+\G4']?. MQH=6D7& ^$0=+$?Y)I4ED!YO]F:.V:_SQK+U-KN((]0'[>%_K[X6$1YH9C3' MMO5\+0++U:2R,K=L9+;DR;1K$$EU_#8*8!22)&GDN$Z,P[:9/QY3YJ%LH.1? M;J(### -*;)9#_HS#+T-/]0PB1 H>S)^?;^7@ZK2T3P-=NA$0P4.4!)3WW'] M,,WOV0G8(D3 9L$?^T/:+/5#E1LN1S*R]^N;)OP!AJ=1DD0$6B11 <=E7)!$ M0 EI%!LI,B 445*>IL>[JB5U$;6*(94Q;JD,4AX/)HM-#O$PC=_+L_G^?"SI ME6*&LZ!/L,AV%L?JU>9ZP%>*!9YBN:ZC2P$](2=,F.S"GK9D:3M@(*E/ YOODC85F(Q MUN GC][8^T+VS]8'S[Z\(K7CEO_9.-$!BDF1UMDEWI4>PV=R2*;"]L@F#'-, MJE;?E7^\E+,)*\<@%#C/EO4_$_\?\A">-I1>.]Y3T4G,PPNR+U&,_-E:[G>& MR4:!KO7GX^(,2RD]BAY+?$4I9=MB=T+*#+,I_'D)(\U B\1 MO0-#WBW17UY&"%7Z5580MMJ&W=B,)]6(;=I#YX-^44!,?DR"E,Y5ZSKSRK3J MHJN(LU-H>NF7:QV5J(F.#KQ$M9H]GFC^77*4IY-"Y&,%\4OT+%E*6(X $E*0 MD,< DC:\G!(Z!2"JV@A3+LYC&>8?Z"8;,Q;=Q$@S@)(0#0.V"/?$A"F=F:^% M"1W/3DA@TP!V?)C32875'GN;.#:9G;W4$"-[H:L2[LI(*/!#Z 6&+:8.D$'D M$Z+8^J?1[E4W\0?L$,I#PO6A)^..[; L=%NM[HU%[^DT%N+A6,.!KG^\FU+/1#_)K(;8AC"U]0\#Z(>&!#&CFV%)MH($@":ZR!1 M"JU5>%#L'"1RHB>NMQ$\D>K'/O;3MFW? &MXXTAZ4[SMKR^P2W#)3N*/\$OR M+PS&"9L&WEASX;#%:5C#_2EBOA[YNLNM] +WOP\G+.Q5"D-W! [INQ'0/8GT MN_(@(Z9-!B& BO8DWQ:JK'H=B3S41I\EEH>5+W&4T%<7,=XF=Q#E8L* OP<) M49:AW#GA\]B=:P9^A687=02L4 MCE5-J(Z]\,;;KQ^@@071V!0P"J\5#$^##N4P=% PY*]3(XR^1O_:-GNUPL/=T"(]XDEM@X#%N'-'07'K[;FM"E5DZNORQBPED8 M8%NY@<1Q5WPXJF@?8Q@T_8I>A6>@_X'\F81?_??=JP+??^JOIP#?1H/K*^?J M<3VV,3CG6YJCMN6218; M=&H^W\AP4[$V&U4!]YJ[PSSE;8RWEF^/#?DO?E;) M[8G$V5M;U@[>K4"8/>5QGP7@"+Q M$:BX8*K8'<[OD(TO.QZ='L8+NEB&K%L M8L9SJE%/9>=R91E=L?%)&/[>R>67I>))?JHT>B'D_!,&;^M(>0VMPW!9&QW+ M4$5Y*6C8+3M**_GN.F:%XUD?:7CD.!(8]H8/-()P! L-/A\^.V'!N=JAFH9T MBQP%2[3"VXU"US#;6(P2 M'.X8&,:6\8D_(">C-,/ZM(8S OC_/B0&<*8QT#Y<.)/G2DOI#Y.9U!0ZEFM#X052"S@7QLCM"9%WEG?6I8( M;T")>/R6:X0.8&/YIF)["I UZ!C]2+C0=L-)(H<(.O->J\2F&_>?'Z5Z_LBZ M2U1-$2U4[^<(V$_/CP\1L4>K3NIV_/UY7&I]8FI%\^@?6JZ M[#+C_H0K5H[=HG)NM<))VJ$QH-WY/+_ 2!7-G1IB$,K&)@EZ]K#W>7PN-I'S MA[B70?M__M=^>DX291VZ1[ZEA'E74*;86$1SE207&?_Q!&$U2_1 M6(B!NPDQ2/HAM2VA^;7#2'0KTOHFI\3>Z\?$WD=NB*(>$/I^091]G0NB-CM MTFDT)0&)%@"-R@(.%"!0"$8*XH>M=[AK:>*;[WJAL0?JI:,V$[M_\-V;.&]W.*=<]0$A7ISQXW1C-=79 M'$D_(*EOA,&WE-B_5_X^ PSO. 3HS;+U*:!^Z0S-YZ?9'CO3]FP0OU8!'1=& MOV+R7SYV%+JQ1X[\?1'Q!\GTUT#_:<#8>9%-IMTIY4MUIIXM,=52/;S; UD3^[#:/2.Q]Y U,<6WX>T\4=N^_!(#,,RS+Z0G;\3X!.E*?+1+D23FQ>KT)]&\]LL?712451.#5UKC$P=WYSR:N 6 M=KI)/#\D=ITG'GM/_,%;HJ]H'E#^^RRHNTO7:])U%Z O%:#$]G_ZB3#!Z)MK M5$LYIL/F,DP5FA&6*[)LAQ-(/(U3U/ND*6N'@76XF@9?19HTJL')B :4*Y#@ MQ@ <28WCVI"CU3>4BN@B[%N:E&OELH]9LLT6VSI6Z;+7!<0)!8^GW6IH3 MLK%G::+TH3EUP!BV"W=8A"?@FB#Q1]5V]Z7F;?O<[V(3(['!?P.QX3J-;*78 MJ.;8-L>V^%)G(- I-(615Y2;:"%S#*,EX+B;1G[(K)7M\6G0BPO9YH9UYE)Y0O-8UN6&; M-G!]8VV*&E.PKLF\B]5W$"N,^&9RE6J%M=Z:%ZWI0NS"M\;F70A\PW9]YZ-R ME7I([#\E$I&]YR1V#PH//I%LW]L>;M/67/TN-M] ;%+T-Q,;/*R#EHH*NT^L^]_/U-Z%X2X, M\1.&=",\GZ5DK0^^"(]"P6D$HS]L'-(/B:CGQ%[7=PFX2T#\)$#X,-:)A\1V M5_<=XG>(QPOB;+]8RI0Z0JF>8_MO7E^(?I7H-!*;;KC[.L(=W3%"-UC/#''N[0OGEH8U<]=O/R-/^4VP>>GYT7]S/!/O^ GFN?R_JF MXTU.'0JU/[GPM*JKG.!R\N@&#-^KS%Y/$?O$\\LH]"%-G#C +#IH['Y^V2V> M7R:-$%0BZ9&@ /@7+B&B(%&B*. $08I 3$FD%-KTQ_/+SCA+XXJ'FQU(^%[Q MS>/U-"CV5^+$,1P7TS,O#^N$=B<_I-T?3S![^<2%3Z']TQ.E7SNRX9JD?^6H MFV8NG^ :53Y$ /?G!BWU[,,>4<_8>7]%JKXR_MU>F\3^,!.;<2;6 [V._3_K M)M273A(Z.*A#NI*7\O%1:E;"&]M^6!GK_AG>LPT@LG=7*'_UT$\KDQ,"^G[M M(I"I%)U":%Q(IPA%P(%,"70:E80409,*($8C^-&!,>C( M'WL%JM0.N(V6&6 MW6JF6&@/U? X[ZS0U:=)M:P);IIRV7!=XI%NT%A_A( M>\B(LP#/KE0!>][G< P<)["I(ELH=UE"XB;U6FL!6S[K$T$7P]12L@A^EC8R MOCFJFPH<9RJZ:/OPZ>TLONJ5Q3F/Z34OTT/'-%55!?QY2TXJMPIB,D7RICW4 MW&9[TM*ZJI!^WC*G4EZ.JN=IULRCCFQBA8$2M7PV(RDMI+.KT73!BVZMP2S, M4<8KVJJ097X19\MI+(*KJ)@L$(@G(]PWYY[ M,\6ISC3$[*F.2IG20O%AKT=8-6O[R1K5Z4[X1JLFBK-2C9"85MCT&5)6V;3" MIX>F@@1DEZBR0[Z+CJ)>GT%EU931:F%$2*P)M1)1' &]T(*]'N%KE5,IN<+W MX0"DAHB;RU4.J+#I$<;*LQ$A\/6!IV/IIH::G94\\%L"=H2Q;D.D5TU5%O1 M&A23:K7)(Q!7L.FS:;6K_04S*#7++(=A(%=S4<[7HZ;/IM5F.#*975%AK\AB M5.Z.BBT.#N (7,JU2K7DD)8/ZNBT]40;2DE.*TC<,D(#L[2!5WD_9R$@T:JWRZX ML.D1T9Z5>U6!*4T<1*R ,M6N^YF!"L=Z! -$CYA.E0R=9;-\KF87K59W[,%> MCV @J3=;E-6F'43C>*&2H7JU99L);W!XUG31Y8IMIM84D8(^0J9=6IXO\9:0 M.L(MK6QY"#J79WRCEZ[,^E5JB61AKT>X50+E)291;13A(.5SC29E,%W8ZU-N M":DT2,DCA18D.8T(N"(!04)'BH"2$D6@TF@DDOC;?_$$O^?])O5,F4J#)%+M M4*@N3L36@ISWS%(#3N((CO#1B,T-R3*E-T8PM*EI!4!SGS?5@V4W0XN3 M%C\KZ1V0,DMT.8 F[PB.2'E:0@U_CB(S9M5'ZED"6@'8ZQ$R,DYS,V*33VFIRB)L^MP]:#41LZ;)#3[+=.J# MRG!67XZ8L.E6E]S.I9T'&6 2?4#2QU/ ZVZN?'KNQL>,'OSL(-WK)EM>SI]> M_!SC+=G',(Y)P@[D,&\3DFN[ ''G0@RX@#Z0)Y:![HSX7$8@#S1YYT0,.'%7 M3''@ E1,=S[$@0_( WZB=.+.B?=PXHVE*Z\ZK)\RZ_ULZ47+,MZEA*^\8/SQ M4A08_X0?_O,#^_%>L<,>2/SK:?!2_I\#4R^Z5F^SJP;Y\TU71,0 =<#_44 M$ ,9>(G_.2#OLQ\]ROZ[MHL)UE_A].G[7JZAUMYS'4Q<8!]>('H[*BXV;,=N MGNO8)33;8VG9K_^190!&HUA/F^$X=EL[?PFX?\'TC^#] G-9Y\V^>CK7*Y=^ M)4WUM3 ^4D%]4GG=H1IE4KYZ-E^"U#!Q<2-(O0$_.>L[#K0?"=%U@>?^N@W_ MYYK:__L+T,LK$K>IUV\6<;\#X%Y.-=^:>OY2H[O;\D*LM7=X4T9X#)04=48[.W_P3RJLKQ!;EK+ QZB6HSYD=" ;)FBH;[SX]DZD=B?2;(/S^T MI??+\DW%]C;?_TA8HOG_L_>E/6HS:]K?7VG^ \K,2.=(3<8;7G+.B63 [& V MLWVQC%V \8H7C/GUKVVZDTY,=SH)BX%Z-)-#.M7&575?5]U[1>OAN_FE)-E? M8KRQIA+_#_<=;*Q7DAPGC!9R%.?(?\JYT39%OQ4]^3GS:MT;KP-/6Y2$JKUO M^1MOH9:[<1HS_NDKBJ)/)(;\^_]^7(D[LK7,A!*-8G D; M^^=$;8$(I$[U6P@?;*?CEFO45O[E(3S8B;*!KUQ+XY%>55BN.NUJFXT@3,80 M9B(($^] ..N6X$]ZQ6!E.5[> XZ14\TM<#WC=$K%_=//I:W(T]DC5S<.;UU! M2( SC'!3_PZ;(V3"4(9'4L4%KHV1EM5$.H8I,#V1C/4!#'^BB/>X!((O0P;U M*;%W93OYYH_V#X*O60->H]0J[9'F3&BWC2TO^G(0@2\^R9FG0H$Z^4&>)9\! M*\O1BWANS@$RB/2?N0Z>K3H.=D!BNKE=,MU#RVH_^>V MR)A]F4W%RTG':[Z?4F@RN'(4RZ>5N*@>%H\E,,FG>W[*$YM M^8"? GD'>&_@/"XBG&&%[:1-E1',*_,KHC6LRO5 I&)MC$">F (#G3/WY)PY MM<[VD. ]GQKWF^@=%_:\+_H#71@C3+4S83B:*?,8B=X B:RI) MAWDV@=_;;&6+JUV>P1L.E_?GSQ6+>X5RHF4\ M/)3/IW+\&98GK?T*D5DVKQG;J<]LUJT*58K;0\6.).P)(?$[=20ES=0^?1U: MGJ2?1?&XMH4 W1K0K9$]C>-7?,1T%GU7H%L#H41TNTU,\O ITHO?)W9L$T_X MNR%JB%?HR'A$N)[1D?$+O%+4?N1YDQ+0FF:%:R$SQQMO@PBO22 *?R(0^H9= M%XF[PK*C5PH3-T6[_5Z@NH)@\)R6Z,J@(T;RT;'/TX]T?A[Y@A$(4PJN6$0GM,U\'LH M'%/,(, *HE8JY)F^3KL+5DU02";!1)0Z?3CBVFHH'RV0Y$7?D=.!Y()<(@-Y M:Y'WH[\PI"]\PV(HAV(]GQR\$%R0VR!&>FB\7W=#C M&D.!)%8&.?$GHRJQC'O+1]I"X0DA8ANMD\ W4C/()P3!;MMS4+4L)5!U'1HHT$UP']QQMI/_!2I'6(+&^35. M#_,[KH00+:Q!J9->-4AH[--7-#KEWW4P0L1!E\ - ^Y\A_4[B$/TFDJW6F1? M*RESK]/MM.J:VHO?)?;I$T\H=F[;='K*0)9;'N.;;:X(=>+84P>I;A_XH'.@*QSRMDT@Q?HU$W9,J)3?O>-68X0B;,#!E483DMWU&.U]>P?="J(YERF_F,B_) M.FLM5[BOA:R@&-JF8/G<,K[_/?8MX$_4V0H;'Q+WF83!I7T/UY[O]6%_QH2$ M#^)^I$?()E&JIU7K7JW>ZH=+JMB+<9\D(M#$+?LBCA<\P@X+?]5A 8]PJEA^ M'"ZZ"C&=LKGVM2=V?08Z<['C$<:9ZG2I154K8TUJ&IX!*T=H:!N^G1[SF':=E9I,+7\9!#$:(WT M XRBGTCJ/*3K^J"49\?:O_=I7RWEX#03SZ9M^S?7 MQK;J;+'>J@_KW"#'=LJYP9 O-6M\J\SU!_$JH-2_OJGP])L"=YMFRLO=K[HJ)7*G@E-= 'OMF3VJ+7+?:=MGX?MK;]F# M&A3WG9I\XH/B"A&OG^Z*L:4P;L0.5:QL*O4GC&G=OQ?\[->.= ]@>:?QGQXV M6B6MM-=(0MPUQ^/&INL%T3LE(:PG$G;JNA7CYH3QJ?L'WOFO#/DE\HJ=S00, M!Q,'47>4ZC8,@MABRQAY2;H*3I^^XV8V6G9_.\\='RC1WAAQIW,IV=NX.:<# M=,F+_F$.3+!084HN- .S:P;>NIK &;9NA0#T#YAK??>^O,U;.Z*F::+(MH2! MMA.X>J^\HNB>B*&'&^2?"N\V_($8AO;Q(T+X? K'GV!X*!"#5H!),M(T^%87 M8X>]V2C!,)F4WS/$+;?[?D/32%]0]LK;#(V:;+H3[BA&>.O*PC../D0PE8:) M[N>.W.3&0<$RRK),1I]$+&GW13Q1%"SIO1&WPAW%3&_^J/\=! Y"OTIAC"UK MU9)#>1-6UDPJ02 9=]4MT'>6Z_K3H?]S(_!71WTNR1!"__5-#; M)YX_-%*@ MHP$Z&B[1$_R%P,*WZ0L?C<(&LF\/.')8Z12:K=GWY7I\;3J\* MG8L<=M*FS.P;MBM@7;0J[Q<=">\EY)"X1.C"7;A$4#KY@D-_,IAH 7T@=\L\ M9_.!?"B^2[=I5$=0"66Z-9Q!/LQ;D5]!.&O*?IWZ#O(WIFRS*7>0\X1DY- M&LK'-Z* $U=C7GN.&7)RW"P!P=R),^5=?KO' ;S?!KF_IO0./=AH0E-ORZ4& MLO%"A14QZE#1&0DP]$+ S F8.7'9G,V/HG>WZI!:OBABFE^O5+L-R/ M]W3-\"J^+XS;^^X4*:SV?I6-L9\D.S#(?5S&]CK9 ?HL_OY&MCMBJ/2M;(]( M1Y=(DCA"/[WUU"$M6>H+^=D,FQ)#I3]B@OA=(M6#1)YH^ERZQ_V#]OIB?5ZM MXN$Q>Y'LBF.12]&L$ HJ"@A91#UM7U('ZG 9@S;NB$D_D84[*RF)GEFR#$/U M#!!WMHX;5,6[$7TC,.6X4\4_.I8'4D:3[H N<0?RNWRP[Y =23'$8VELEY( M0KO%#;A:W>YZH89H0;389UN&W[)B+[8. A!Z,]T3EIQ:;.UGR^*D.!'83U^1 MSPB"H,>LDLOZWLIRCM5,)@M6- M*QZ[.]X*!V:NI2BO#1O67@O/G!7*\=('E*"XP M/[)N==?UWU@S5UK+?*>ES[1F9S0 HKKGA0:;38$Y[N@IB'W?I%/MU:,"\R&GG46OW)_@LE[$O$EK,6EIQIZ006D[ MD$;L,HNXO '78AR#LLR;MDP/4_A]TJJ3X%%LTE>K]B&;C!'(<:=+F5TD#!=DC6Y71JU= M1NV+T\Z<:/:0NND+@9!7FVNN(R\:]#P""X7\J3GZKY_,CML7GG?,,ZR/(%H7 MQUK(N A:@VXHM^UED#1K(9ET._O$!KL#H7IG17!C)35'$K)&FNU.N=ZV'1WA M(H.5H)](-'WQ\%,N>IP-HK]L@1Y^DYU7=NH="!#_?3;'Z4</JJ MFQ]%"8:S8 #U/E+W+L%3B4)Y)'TO,#9U'94Z)$>V];"Y(?=EP>N)>-*1G83I MMC"&?)^8N\@I^!;H!*:A- VB4=)"5:SE-R+HK=D@!AWY/NAN,X[.1E\03T32 M(YM35?*JF9=%.N-X-NJQ?)I)H MAL]*8O)R1UTC>XZW\^QJA%XCZ#6Z=!9T[A^WI2O^@,.WK-:Q M@PK+.9 J&LDZ^VE=<6K=,#IKDN;U*($_%>CT[7TG*H*\?\#=,-ZN7W5P)KQ= MZ.!["W!.26RK%0*W-3Z8#!1EE9>[%38&7-R.!<>?*"2M"?SSYKU%LNP;OAYG M042KNU!EU8.V)G039=5-=(.G?1]XDFH"A9,<,[X1ZQ7BR@? 1604S35Z[!%6 M8KQJ90] (:_Q7MOG\ZUP)QB1&I"TJF?HHZTO82L$Z"W*JK?H%M6'OT.PH\VY M_)2OATC8;LYV6[5O-G$V1G"L5R"1-5U()X;]M5YQ-27"2OK6RI9A.V %3%?= M@IQNN;#?&^SWEO5^;S>H7+Q"7M)[LO0:=X<+-5H1^#K XQ=#:?<>3ZF@6-WN M=WE2RZ^4CLR@;;:Z7XHX_=**%KH;_D:KN%=,9[P?W"WJ&R<$-:&K>J^ZUSN" MX2W:#;^,=^AR NKDKIS".52/JRK0Q_O.NF]V!H*FTHF='=?F@DL[0ZX]W^M' MYL^FW+SNY\4E:#WF(,&58$BVI 9'-HRUZ#&,*J.!B"<=]#$,?2J0,)T&]M _ MK0/EVO.]/NC/I_U\"/7%9INP&V9^KI&S6G]59BM>K=6+41_K-2CRA*"W? O@ M+[OG)QDHY]9J[I_,4LX6/(*R8OES'5R'N_[G7(Z6*TSL^B1UB<[ZK*E\B+$& MBE_@^>:HRN7KO?*N5FY,BK6E2"3M]C$:>R(*Z7).B.,_\Z_<"8S3OI6'A/%% MFNU_%,<&K5;D]J#/<,VB0;8'958:N$&,XUCSH.@GDDK7TOZD>?R?)T4[>'[X M?1](1?_X03">7&ID$&VH<_B):D;?ZWU)U)I?O7?25R;.Q%;E'_K*S*,=BGYC M $!.DN- DV2&<6%[?!& >U#^/2M7LN*O'DO60>2$P-W]?SRWV 93^(%MLC_G@5\ MS\OXO&H8\4I+/"PA_NJEDS__Z_^]?OGO9DQ>MG3+^?)"(*]FM3JL,)9PR1+D MYPZ0M+RTB+[XBZ0'4N@^SY)&/Q>^*4]?OI%0O XY^C/"_&\N^1AQ&%Y(EB.U MEH:TR[]:L6?JRNM@X7UY_K67GR6T\R5Y[+]LRTV2];\X0)?B)./XX3\\-MD7 MS[*_8.AG,A:SZ*_/\R*BHZ)PIIWZ27G'O^_+OZ7=0XCOEZ(VXN)S[_MXYOI+[X/2CV\;/] M&>:80A06@)1$AD CF#,4)C+,0A8I"<$8E 8DBE'/$)&^I;%@E%%I#]4BMY%V M7-C,KZ;6;"E&>MG/(ZWZMA L!=U'FE,1H!16Q"H4&XVD?Q[)*-RNK8I<7N,[ M%6GJBP-.72Y%+/U,HE5#L.&T4>9(P-G-?L%I=<=L-++P\TA>+/C>S!VKB%_5 M)YV\K*G(KA>-3'W[JE-7*7378 5R2II\GN5ZM6$0C431GX=N&Z C5CAM*I1< M)E_?3PE,+2U%7$12(R>;:F CR!)IUF=EEK3KJX!@12(]!6D.=PJ!D)NNWV$M?FWY@4BF1T[+S@:@XA+5JOB2)3;ZD&^, MER*='DEZM8WNCDA&&Q#TI$UAO5JGO8Q,^]1(K>IM"T66'0OAH$T7W%(XZBY9*JSH!*(Z!$Q&?&2NO*[!8?#E.:0U,-6=#9'&#DB M)YPQKC$;?]O0U+J/M?VAWI2,Z 6.K/]FT!YS..CWHM]92E71E%!W& T]L@&5 M<4!*97R+(*5R=3!"M_38]*(7.+(#\XTE(TM;QK@286AJC64]@8B>>F0+&GE3 M(E!C%FKA>K9?[HV05:L1I(YLP:S>FH]+M8(CC)L:WNNWK'6Y$^'TR!;P(L%- MC+5N(X.NR+5&U>5HOXB&'MD"F@;6P"_L353# ,4X[%F"@4V+^-"60KD6 MC3T"+]<:--&Q8)4XT.T-1[-*>\1/DFN 4T-;*E9=\Y:SU :TZ_08OZSOVVSL MY'P9FC@6OEE\!]=19.WIDNV"+R\?7BLGL87T;!W%=H)\L"]^-,=>N9:>;;&T MN>LY+]_Z_#3TH,A\+,""$XEQ][8KZY5E\^KYT6'D+'0K>-%Y7OZ>C]UH7P[& M:]PW_I=6X[,JE7SQRU!I[EJZ[X$S6XMO^VS0C^MUKXS^<[J+X2Y<:A<^$W ? M,K /*/J9>+=6%.[$A78"_TS!COS#_WPJ?/K3@PC]7,A4F>C1)7HO;V"X M<@#(M:-_6+DYSE2 DAL VP/&'#B'-!0<>7JI/)E#F3F!S"")I^&6A::CFG\D M,Y!4;P,@A[U+_WD<"=B?(@'%/]/T;2,A+L(X$2_^RA-\I9T_PYX3-[_GV-V< MA9>#^JT?>B>%^OO^BXOO_!EV.P/]GDX+\C]37JY>2__>)/M@"TP?N%].1V?7 MGN_)BN235(5KS^8*18>'S(#,-5=\DZW^1MFZ]O:>4%CQ+'#-5:3U.C"]J+3> M%Z_B&9C.5405N4X;[0L3:ZS:7GM[3RFMZ/6GAB]$>P7 M?((\X:QVMOA55NWM-ZXH^XX4/T>D1/30@69HO6I'XSJ>V'4LQ9<]WAD 9ZO* M@-VIKF@K"U?\AH%V$BH0D?9X4)[JHH9(VM[C&@5*V4W^IIUY8LU6',N(R\GC M&8]5;U7RW6C7@%,W9=V/=X-U71#]GW)H,?IS'XSRD-RM-V)CK/%^93(//%=M M\''Y8MPMF'DBF'2[X)MQ_EX=U>^GV&88UA>@HRS!&GL-:^PW82TN5T&SX/)- MSF!KHJO7AY87]*X,Z]T,770GPX*L272%H"?+%C>R8UB3$:RQ)YI*WX$$3^H3 M9*=F%]/OYW+>$:;1$QS5Q2FJ#TDA5 1L0C+K1CL4Q:L?U4&[K>*S=I]%^)V_ M7=:77!XQXOX!3'R;)_;$%,YT5E\B>G-]7+^;V9EA7#_*68V>X*SVAAM? '6N MR4G8M.THW7J%5(,KX[JTM[V..@!YH;K8S1;[H6.7-DD/#^S35X9X(K 3]L#- M2)RN'FWPTDE:N4U5H"NYOF38]^$ZOI+[((/MK<_CHWP[9'?M^6:")O_$4_$= MC0D88RP^$Z;?Q28N-PU6R$9;$MO-7"+YSO+*A.GM)P1HUFQ%J-:J4XUO3B>T M%7 MU3>#W5JRNN&UU;')TO)WG=6@H35[A.@OU6'@DKV(7V84] M'10K>W+$#?C:VE^(HHN9S4??0V MO;##@;-A>T51 _V18>\I:U67K^T@[O?M8=.WV@BRJ=28,E;8+#9A3"^Q(PG% MGTCDO2O4;B"KY'!_DO.;:WAM'$,SZ8,&,A3!Z2S .95-T6)&,O3<$]H0?N 2K+$MI_TF6FZKZPE1L*AJBV.^XZ.D[XO6OK)/80J0_LWLSER!J*F&!. M,ST0HYU,\LMH\BQH?X1S/?&=W"O4D6S54U[=;/GI8$*+0,YWL#Y.?'^EI=BU:BJ%+?;F]IFL39TQ>>Q)GYMN--KE]UHC88C5.N5\GK<$@Q!C.&> M>!L0^@G!R+O+6[D"\A]RTK :_:$F#I,K'FO>URMDO_:&/^2D80W\8TT<1IP? M:][7*Y\_S<1O(/3Y;F.KDN5Z;BZR.7/HW['&DO496+,VC*ME30=K<]"-@^H9?P^ MG[ZBQ!-&OU=_#GW^-^GSOT#!Y",!^+RI>+\"\-I1))E!+5++#TE6W@?49.7$ M ";CS)NG E& -8MW% M]#[,IZ\X_50HG 6],$9S-P!^X./W(OEROP+P5.T,QAJ]-9$-X(:ZV)LJ',=& M[Q-GPN'D$XJ>/A'NHM+:!RZ0''F5A)B4:!UTRS: Z4'7*PPPW0N37*B"[@ D MUE3*WV'T'+0]PBQ#BF#U'E:N"*%3]WRO%SC#%BNB2&*:XQ&SG+'7T=WC$@;A M;@B8YRYV^SU@!D*-&8VZA8J@"BZ'6$IOV1HN8V"2B<\,1\X"S$:&ZM-]#Y<:=XBQ3S>^$L2#2UHS"B*G;BU%Y,*4)C(85:#"8^PC /'<%V>\! MDZY/9!<)RXK0+%91P1CQO?HZ 69L(A/H$T7>7ZW8 .AZ] U/N24P@2/I3XGY M+"F&:JJN%V_7%D W/ R"PR#X)4SO9S16#UB,B(O] 8AO#]!F#Y*$?E M1>SFWX:EJP ?!\O[!Y?VN, UTNB[9:W DX. M'-P)N7^HIFP9X)]/.1.<*'G]VK/-3NC]VOV;+QV:O_9\WV\=D?O'35OJ=7,; M03A.*JHGD'T!];%+]; I4JO-!4K+CPPIKUK]Y4Z)& X_7 >,'#$'_@GC\_ ^ MX+^-WU][OE?&_WE= K^!_V(#73L%DW(%C#1V]7S)JS?S;(S_.(C_5#B2GG,* M_#_HV0]O[,W$?*\%_HOX'GX#_#V>+_"3)C"UDL(6-]%T>B,V.?SC2/]3M!5G M.OQAI#]3>+AT)L"UYWME_)_7R?$;^)\$AC_KZ=P"D<3!I,.LJ-JP&L3XC]T; MV!.-IC-]_GE3Z0#O-GX^K$_N'[KENO_,S4&TQ"!W<'+D/&GWXOB S:!ALL ] MN5HOY(*(8=2*D/5R499J^M%Z\C8XO(9;3/!V&#>4=L#E=IXC12>#:DI.6/> MX78L,YZ!8R7I3N\0&=(I^ZT)Q@PXWA9Z*Z9;W[8WD2)#)%4&3PC^7E83S#6 MN09W@^IS.Q8NB6IQPU;*@E(/D*;1FFQ4$G#[:1"CFHRU$^R(>0+/:9BJ<#>0 MOI"[X)*0-IFYP].D0PDA'@:%1;@$+30YJ!./ _7NI9I]C 81*L3H(Y'5%(\EII:YXK9&\7L:(CGT())+6O/_:@W!MSV']B(L 1D1@ M-@3,ALBP*R(BO.>ZJ"(PP4(]IIV,@TUG5,_7IQPHKTR'4KI;VHNTDT+L1B"? M$"2MGW3;]Q6 @J85E#'_RTU<:372;%KY;!T%-X?)"%]&\=JN#H\G!S\2>Q@)RKBQ(F B1 M*3C 1(B[+W2#:&?](6X0E_'_^WG@?1 =Y+ MVL,A%P)F//R6_R)+I'65Z^L3K\:#4ME%7!@10K^[=]_SQK:*9;L_U>H3;5R= M!/4]XQ561B"B9.S!()X8ZMV$+I@)\0%W!41[!C@O$_'9B[@O?H9^*OY2':]K MM;6ZX#8F4B4;8Z5G@03Q20$'3I^K">.="_JSB^+AT9XX+B#:+^2R^!7: Z28 M'RTFHXX&J#P_UO0-$$ O1GOBJ,#.T[WE@?(GKBWJ&0!\MH_WV_=+?%B9]P# M%< T,2UL2-NYA6YJC=TR!OO!+<&9^*V'2/FD$UYDM-D.6 '3 M5;?@QY#I%Q@SA57B%_%^'&9SLCD]4.CN=H7NZK515]'C[U\H81GN;0GE P5" M[GR2F:@XO; Z?57KX25$FR.3YU.N_-$_>)ZCSGU/FNM@:'6EZ#'O5I[SO&DP:)L::(#J MU%')VC0V<7L8)LYU+!3.F>GX>&""<90'(Y'S9C5FAD1<;]EO-G=\P/F2:3-, MT^^B4B\FD4/Z)/-N_PJHA\ H59:C5'==WID9#@EP2^RV^E8)V6C45"KHXXHQ M2#B$^?25/')Y%ZP=A1' VXD WG4R9F9(I#79FI61.RD+!MIH[_E2ST$/)/+< MB_O(?;DW5(/ZD_NGM)+,91Q"C:3% =$+[H&26TK1WY^[<3L@6M_H9YZ5D[:2 MJL?+F(]V->]&ZQ9M]MS+N4#V'=53P1F<1'=.)MFK6SUYDZT'S6"_B NH',%O M\ U][ L^(\X<1.@4OB&Z&@'Z5TGN@Y*Q'!4EA!6:E0$ X:[:\R@V>NW$BP.K M5>^H6O7DG;2RB_$[*T+] \#_C/,9.I'R$KVUN:967/I-;\=J2A#C/':T4+!( M]2\\*O<*DE_R@E 7FN.I#J]U'2D60../=RRODI#_? MA?YC!GCLJH#!H-,FI5R;"*[OYH4]PK.3U!*SX5\Z=BD MR ZUC&GED+A"G8=8'E17N85VY5E*;+GVPCQDXLL)6,5UN[@YF#AKH535&*:K M5L/),(A9)4EE.9>R E-9,H6>#- *5%8RDPIS EI!YGFW.QDAMB91A,$.<8DH M5-B85IZ36XAW([U93V[YUR^Z!Y3>[AL VP;\>8ZU1OR5+?-]::]7R9% 4*GM[CO?$B'ECS\U3 3M79N^# MIJ?<"YZS0%29"%M?Q,?R/KA_QG2(:#.4TIV>T-1%WR_4S37'L#&FXSO>8!;* MJ;)0[@3+Z0R41\7R13P;OX=E=51W'+TIC!&C.B5#M38L:V9R/C.Q"[1 H##C MY(09)_<"Z8P?S[?O2/A#=5M#&R$)C/4>*7EHP_!<-VYV>?6^K2 MYYP-G)R[DASP!7H],]G'_&KVPW6](=>R'NY\;Z_0$_UJ=L&C"?!5V?>'QY:B M%YX[:O28&M"W()Y$_$C)=//IYZ+1P^ZU]?JM+=&%.KS?]!I=.Q1T TMT[6;R M-[!$%VI%GX4UNLT835%R51GZZDX;>;EZ"/9LJ9P9G.O?A9O+ZE950!)L3OP# MKNA7#$W0$'6K2Q$KQ+F=R&<4AV6YER_+O1<6R"CCG3"/[#24 M\-N)H:>@A)^9H#[Q=[-*8&E<.$(I5Q(#@ D)$Y Q$R#I!O!0%3AQV.[JR#A; MZF@&YYH=%OC3E-)SL P!7RI*=:>:V[E"J(/]%H935B 25B /%\JZ4,2P4<* M7^^%"&Y/'3B_4?"GB:AG-0KVDZ#8L7N[0%#%YJ"(J^TI5V5C$H@S4".K +GQ M*M6RJOL>4&X]P@ +3A^]X/0&71+/V'N/?W2FXI;&;"AQ@W;)$I12$"Z&D1)" M7L I \S65#>=$?#9@?GJD8CZ$Z[$X"-$CB?W4UP_XB&%:?WJF]? MP]K_@+X=["HM?[UAMYK4,8)=:=5L%:U$WSZ?O?^ WKZ'G#0L.'VHBY MS^1O.6)77U8E+Z_HVECO2[Y2(Y?N/(@Y@DDX@L'3&6HP^GGO=:DGI0FH2GR$ M)LY[80^DFO/+BOT=$V'R#,F4RQUA*"4$H$;X5;8"5C8I?MV02QSQ5[\OA=PB=P] MW+-7V7IR9\>U9Y)]8RKCI,WR)PS8]?-'E_,VZ%<3O2R9X1PJP M[O5O'!G7AL-YO1;7GEU6P'Y-%\5O@)VS0$<,R3S@JH[BU%24L@ITUM5UTV?M^/>QO^SY.B M'I!L5P0E78E^8P! M3I)ERXA^,8QVYP#%CN4!]_#1LW(E*_Z^.)L^^N1:NJI(<=9]134E4U8E/1?) MJ >,Z)7'_Z--.(O M>285!/G?LU##\Y8^SPHCOM/",S40KUXZ^?.__M_KE__N9G+-XJ,UR%'Q^ZY7/(1 M13[CA60Y4FMI2+O\JQ5[)M:\#A:1J!Y^[>5G"2E^21[[+]MRU1C07QR@1ZRU M!?'#?WALLB^>97_!T,]D+ ;17Y_G1:"?J<*9=NH59R>\_7U?_BWE5DY,M/\] MY$MOH\Z,&53_ 77//_KT=1BS5N)S[_MXY/IKDJS>/F0FE_I4[S. T!$G_ M\KA(,^C\AR_]\6#X@6[D6KAGO ]/W#XOG\>_4*@?CQK MT)B=/WB"/<.:(BABOI!HD8R +!* C$PC$I BC6 (+WIKMKS*=Y?]41,1.F?AX)N M!P>R.&>$DKC9D*N>OYVQD>HF4C^/-'85IR4B P,I.;.ZBZF:42,BH^[(0_'N MS-'9=4]!PEU^T5==$FV-@F@HAOX\U)X/%JM::\9I6)VNUI>UI=<>!B*1GM0F MD,&XCH,I,D;F)IBH(Y)$E]'(U)MNNXR/RG(PTC;A=,+MG?5PC/6BD2CR\U#" M]#=$H#5: K8PO-!!;&ZY9..AA9^'CO*%SL1V&AMD$ Y+(N+2V_TF?M,C\Y># MS:A09RVAM'=Z3+^+^-UM,JG4_.7I5E\UY(G,DO[E5EL> MC)U)"\G7V7QCWN@BE!-$(XF?1RY&HF4N1(OG2OUYC=J7; /H\3/3>RJJ=IJ0H^919M3-@@FS9)N=4R7J-#5CPTPOUQ:)UVY*K$ MT)3F-[B63W*+WI1-GII:U#%3J^ C$ :"0>V'FQ6A.,U^,C2UJ+-I8=_HV"&F M^:+-$8Z,=EU]&:]4:E$G(* +V@(WD+S#ET++W6T):RF28FI60\+&>NY@M.=X ML^0K([?6J9?BD:E%I>:[8=&3NRHRSN\-@['S7&\0CTPMZCI D3H:-!:(L>2X M[EH'Z1.<$:ZH9J_2V2_=7CR4 M_'EH?V;AV,8UAT)HVAI8R&/5"I.G,C\/;1KB=(:'5$4+\R-[J9NLWBT'(IV> M_P9?X.L9-^0XB6A*HT(-'36+O6AD:OY#I#=I8"U=U:01J/=69*A6L64T,CU_ MA%TW!S4^V J;VMJEL<"D9R8;#TW-?X7S\Z8L$0T!!/.%[2/UJTQJY789D?1J!BDG/WYP+O>)* MVQ/>5'JE-@U)'Q:ISE@8 M+Z-)I5=UU-"'#7F\\S70 MQ0<+.W2W3K0"T=#44T?SUG!7J&%KCI>L>M#M$&TN@FHT-+4#394@>42PZIJ_ M;+'R?E5GP)R-AZ:V8-5Q*'2I[?H"L$IE$YLU [J>MLDL)AB?D MJTRGCX[SR1NDEZN_D%2_J'H+@2QHY66MX:W$B()1-+T&+ ["?J,[L 4,A'S0 MY3L(&_$%>D2QZ8I )+JZLHC>-BP4S$F'6ZZ2IZ;68."$BVYA@I<%L.!18F9/ MH\5*GIH6KF)GJ;GX?E_FJA*]1PI*8=!W#F-3TJ5L)*8,UOL6UQ2E9GE6W4[8 M82\9FUHPVB@K=;W1=#6PGK5!I4FR12U(QJ86+%RO\W.;:70%,"3)<6NG8KU% M]%PLO6 30M(]C]#'7+-?!BW>R1-\Q&_1T-2"[;?2-ES;&*V%E7#B:.M\7A@' M\=#4@@F$T5FVEEU>R.<1N5?@U_O03IZ:$II=V!E'1]NX+1C\&%NU\X#E;#8> MFE[;-HZS)#==BEH5V5A(0W+%57 8FUK;@FNX5K,=#A%_AGC5J>C,S>@W43R] M!N7"BO>G2QMH8WIL=F8T0C!F-)1(#^T9$F&(+EL7!HRPJ_-JT68[O7AH:@VZ M*"0-TA/K-KL( ML$RKAX"@.<1]HFYRV\/8E-#L0''98$$($+*I$.50JY>$Y6%L2FA8;&\NACA6 M$C;RCM$UHR5-)M'[%M*K8/"E2;UD=OM(2 RMJK?C)@TF&9I:!4VI>U MDK ?$DI;JL\B52<:FI*$3J^\:CE=W.8,OJB+E:(]J,V">&AZP1B.X]V2RU0$ M8^O3>MCJ">,]FXQ-+5BYA:M@R$UF BE/,5%PEV4P/#PWM6!L"6Q'3:1&>T2-K'6:8"G4.R4.K/6Z,7>4-=GJQ4-33S5Q/1\L75\70)[U9,/5 MIXJ:/#6U#XV1I7A]I%U&0@4TMI;?W7G+Y*FI?:CHM>YN(@X\9%S:;/"-6;2G MK2 >FEZO;MDL"K7%QM0V.ZU(1O8D2F')8]/KM6C(0-M,UN5(Z^N0Q3)9J8_D MZ+E'%$0T/^KWZO/^.#(0=+LX)9AM/5)0HJ&I-9BZQL8FYMY&:X:\T5C8A:E( M)T]-K0'J][KVCEU+6E4IL6Y3[=@ST(N'I@5,H%A M;$K ^JA7RRM+7M>J=94=ZG4?5"/-&SVF3X(FA7?!/,(#AB_W7K]3+A97R5\>]/TSRVS5.5-?2@@3:O7V&WEK8'SR= TC4]7 M[@"4"Y0P'K?+90_,0Z.5O$!Z;?L^N74:H]E>\]?+L;;=L_-EC4W&IE75:JO? M'_I.!ZD:E7Q-7P-\*T;//:)5*J%&]2N8[ GDOKT?EL;K&1^9JM@156E=8N5U M56Z.A>I:G:2H1$/3$Y.I0KN) MU2E'L:F)C9=3_%>I%$6$4,PJT2W:_F5UF%L2F@Z"[U*\^9F MRX75DB\%0E[=L,G,TD(SQ76ZTZIWZX)/#X7-?+6>"GPTM2/*DK1<,I/Z5IEK M@P@;0W4Z)FN1Q8X=TX!ZJU ,3-M&2!NOH8/?$N+CAN.1] MTX>97@Y\Q2%J983D^D4:V4[;X2IZ[A'5JCI W'8MLMTT"5V&@*O6%W)K&0]- M^^0D+5]9E:N,UNSG-8.J64/78^.AZ<.,VK$JV BV4%HW)FN='NA3,WEJ:A^Z M6HO@++YL<>&"[SMEU&/5;?+4([8^-JFW)RRH:R1Y?>B5SBB,VKEBK&/3-.>(%F(7C$7 [U3[\5#4Q-;M>UI MD0BT/==41Y(;N(Y@QJ1 ')F8WW>1XJ:Y$9JU\18X<\)88;,N'*[)2KW!O%O:%O;82N/&LK(UY$I (?/D7KTTV2P9M>-K8 96-GT MYP5C7TF:]J=>M^4XV!1O!0UA0X_Z^=&NK+AZ$ ]-&UL=0MK5RS-9:+I&1)(( M5N[@O7AH:L%(O% 4UK,%$$*!K"[I7BA0?M)G/.U,YDAJWIAO):W$=-&(YL@B MA27K*#V=CJJ']N6IM6W0FMXJ.G-6PT"YBW=.@*O6"/>[%0U-N4CT<-G;%/;]#I%USX"^Q4-RU MV7AHRD_*\&[?X\9X"PGW1I4.]KN=V$U>(.TH-:4]"@J&-.8,W%& .L =6DH> MF_:4+G;AJ&FC!8[SA2FG37ODTAX!7OD0('Z)&27A=,GWK);T7/7.A6 M\!+G>OE[/D[D^G)(4 BB=?IE9L!S^"SYXI>ATMRUXKRC,V<$O!WO^YTN--\3 M._XV[^WSNU4)NF M/E/WM0RRI<<__,\G#/WTIVZ6PF?ZN'#\V-<*M7>YI!O/)=I:'>_<\%ZGAE=K M>*1SPW#E )!K1_^PRG6C+[,4-Y=&(7'WNF]-'R .(0Y/D[]UA77X%;2NOC*'A"HH(8=\)K@.AW0BB!1(I>^E MU\!E.&2W0)Q G+R7[0'E \K'N]D/1E67?\'4IN+T[ND72HFD.G,>01Z#2&3N-,+ S$ M"70:0Z?Q ^($.HT3Q93W5L"!.NG99 3YC%P\_>?D*<"M,-\)F_>%H ))-!J_+ ^8SM@!4Q7W0(H*]!Z?$=6DH-G M%7T&COM\WSNT)6\4,/1OK4(\YUCU2/]Y@9R;.U+D!BO) >[I:/;BH:!SBLW? MLVSA,W,<2'@]\-2.+UD&X-*B\SNS+DJZ9,K ?(_ MGX3H@SCP)%.1'$5T$^-"'*T;#,%ZBLI)H+5X[$6>1,T:&S$_RV'Y*:< 634DW?W/ISS^*;>P'$/R M_O-)W7E?3-]0+._YWS_E3,F(%N'Y=;X<[*577Q.1:K3WT8CH*<]7+2M$G39= MT]L+ U19D\:$E=HS5DSNT<:I)P)'__U_/R[@UW-6\CTFS-*5?-?@XO=Q]#_G M+-B[6U81!F5QQHT5J2A7:,2?;GA_61.P]GAYHY3R*OYV>*,CG+*:S/FY4A$< MS6^C&%A4E&:]OXPXI?#I*WE>.H%LRL?R84(MR/_: Y6W+Y&M)3R:73"'9G)I3F-JBO6T%?Y$J->G=1SI>U93N( M"(7^])4@(BT%+4!:N7AU[-WB[/RFP,NHEZS*! 6'<_P99OU1=^W-^*V+-(G. MW*WFNZ+;"4#-/*/;)W7ER.18V=UM(;18X[025"JS E))U5!K8C#^0[!D*4= M']HH'M$)CC]1")/BDW]"0CEW,?9=\TFZYAH2RF\32A]XDFH"A9,<,UHH]YE- M]N6YHX^HD:X99= .I[I(ZH43:_YOL@E?%)L53T1:'!!;RUT5:^0Y+U%.R(A- MD$@[*2"032";G)1-#C=-0C;Y.W?"]T*@I#_ #^4>=5.V#/!,,&#HLL&P@VT0 M-9B.;$=O\$1X*8(Q>+PSFY/;@E;:-T%EO#<O%!,-\^HH]%2"]7*4Y[EWS M2[H'[M7Y)7.^2VV!"*1.]5L('VRGXY9KU%8^>UY_8UM;>\A8$5J"07A8;>C4 M)AZ2!$6QB M0Y E!/^ *^;.,C Q)>MUU_3CC(FJM MZ%$B*B84@(M#2\2?^0 _66 4#8-502UK36' CM>].2HTJY._Y)48,$"))A!] MS>'ZS8/?E7L&1S*H^PR-;HR,(^3#43M=Q;;[*DV/IQ8XWH_PU)]8G5Y),RT;')/WI*_I$DOBY8Y5WC*XDU']#X()'QLDBSW@$J MNZ90'P*>4*JA5-^35!\";U"J'TVJB?.?T-$5#HCAGD&D'"&I\K+L=I!@ MM^)*CK_P''-7&DFL2(M)Q!K6\,(:WK/%EFZ;AO.'%G-:O71M\=U*?"L^AQ MBRK/$NV"<(!PN,DBGO.$R2 <(!P@'+)9V ;AD!DX9+\&ZSR!N=O&P]W&ZCYJ M;:\+7EB2::?.#81=M6:H^7Q-3%S@V ?-[9NOV!H!UXN^/XZR.=%'1Y4]H#Q' MY6)Y@)58L!+KH<-I_6^H2(:Q0;0D5<=RCQ5BM:Q:P-4:;EX([=XL7%M$?S?N MB4P24J//W,@25F+=':/ 2JS'3&J#E5A0JF]YAV$UT /2%JP&@E)]?U)][W43 ML!H(2O7]236L!GI,J8;50+QO_P 7_P!E]CYO#])#%%;"2XI%%_0$E'=9(0$&__TV_@]3\ MC$;7?WT'C(-,E0&Z8GCBFHT_5.B,7G/BE>F%H6'+ M+8F2AE'1&HE"%]=I?%2AN_E2C635\G/)!4K^.8D( M%&.EIO1*IWE=P=L'T83<2#@&P-FJ,CA4Y_6!;"W-Y(E'5$:]+_>VQ7U-Y 9U M4=6-SB+IPPL[X!2?7]2?>^)\+"\ TKU M_4DU+.]X3*F&Y1W9$NN;#D94HP,D??O\+:N]RKJ6K M2NZ_D>2_6V*A,P5''B<'X+ MD[TU@7#*EIR\52,$Q2138I)%UGVS$ 9J-A\JGH$0@Q#[PSL2(,(^5EER1Q#+ MD?&OH#?Z\P_0/CJUZXM?J M (]?#*7=L1I8K3B<+NPBBI"TX3!V0ZOP=59$,1$E/WW%"W=V#5P689E!]KJV MNOUF:1!DJLMD[LFR;_AZ-%3AO15PCG#*,WD->EB1*;/;,5="L;#56"Y'1".X M$'GU-CX*YFVCK:G=IMT9#.K5L-U+R(OY]!4C*4A>5[N/YX'9Z\UR+\A>V0C' M_A[+\$J;[]?#A_B'?OW_\UO(?7DVDQQ<\5AIV\TQ+HBOSC# MO3TAOR]WNG6?T$J]4I/ #,OV6G]Q!5@RHU=?6RNSR^*D;Z[T[L3*PJU01OPM<%!=G>4RW<6,:<48ATBQLN',HB<,Y=O9C%.3]Z1>.?D<7'2AB# M&6OM.S6.%TIC@C2(6L%TO3,3AB#WC:W6;1,"YB RN>U3H%KJQ8015QL6B"<< M.;O;X[XU\GM$R]D5\E\W[ OGZ'*'5!5#4&E>*93XC=RP_[S>]R,*N8Q+?)C9XQL/=MRNE+TYPG@C<\(MC&:2;8LMH4D*)H-M=L/^\B_OYOXP6^C=BMS+KZR! MH-I$VZ-0JMNI)-Z^.',"19 GBDEK%Y M(%O<6 7RS;'%Q[,7"$-IRQK:+@OC MP5P+U&)'7*F7(I!UUZ?PK567-'4X]G;EU4Q1&P=U(\Y>>,+H] 4$D#ZR7=:= MQ4D_>JGWSV32+G7]*=4+A\+ K*)$B:/",G%BT*?N"5B6[:7@(V.A28_S-7*K M[.I(XHF(\T(BXE6&$"GBR&EC@/2L%@ZQ^;#(#0BSH9%,J=%O M_"4YQ 2C2!Z&L./1L.SLO7O1VX9\$_UI/::TQ76+F[T02R7?:'VS95PLV( M/(@XK^!8C/#.J](OFUQP+[QQ"YNYMU45%=7R U3C3ROM?;;O_2]9X^^9*;&#YZ\/&;\7;+-,8DI^YW M136<(U:QRL8''_WI*WTLS'V+M'%653'S@(&,?YEJ\YL4X.Q=J @%^$K5D#9*EJB8RD$-7ZM7J70<+$AM$7Q#$-)_KH MJ+('E.<82+S3)PMQW"1 ,U<#"8,7'PE>]+])>G=C%FVE!O,G$[:[OR"O)C7[?6N2\YYK=MW.W/6F7?(ASX>,BO5ST M#RE_IQ3[B6!.]RWF=)^476%Z,4POOG$1AA(,TXNA &=B[VXAT36C4<5?]V39 M&*RZZ?060V&@5HF*B'NSM?7GZ0(_?-$AELC*T9LYQVN?]@UB6Z-L6MM,FO8: MV;FA1+(B2CZW<+J3'/#L<3M,)#XO0?SK#&T3[H 0DJRA%SXH6:[7!M[*.L8, MU4&_V#:0?"B$Z['-4)R*(_4#,^"?OA(D?:QY N0&F.(*<[2A -^3 ,,<[4<4 M8)BC?6_JV8G3LO]0K>+$LK')5TL+H2"Y2X&8T-3#?9DQS8Q9_!#<0.'RD5^]0QAP<[)&!"<#8E\>$$$28$WV:I M6(8;C+!*I"MY\3NY0^N-;T[2_)PB >SC?X=9";OM0$OE=DMM;2>80 \+@+<23>]2_M_,I+XE &0YOO[& M-;B[;F^IMM:3FA!*!$8#()5GTI_[CXYB9E@:VF MSK:=V5A8^[KXYZUEW^<8]:TKV"QRS1L5!W=)-F]6)&27;*ZMRIPXBO5[6HA4QX+=U/G_['WIDYI95&NJ2A'#Z5(2*>,.S\GJ?/).R_YS\\,E23 MPX]G92CQ#\N2D?37]9X*SN-J!^ M=UO'XVN>.M2+?RJ1%*@9?QLI(OE;84:G.D=T MX4:'A_8[-F"@4:NXV DMK)\@ 7ZYUM-=R1 M%:&"BGR+Y&52B:@R4KTT#&C=P"_U#(=GZHVZU%6&G(1&X1 M#!XHYR8O N_;Y8WT6DF6^[M2E^74!B]O*\-]N?L'793>(? 6EU0-;O<8DH^J MP5 G!O2L6DL%WD.5LR<4 9?=;:0OI4O^M4WXVGMPY3RH2UC%;P4+3EUVKUJ[ MBSL9:D-MHLR;FR47"AC-B^5EB@IHC IHZ0DY$5!]-HOW0^'"I=-X;@ 6KIV7 MEC]<>,7?'I$[O"XIN $%S9*!!%&E7:_]8?_4=X/"?*/7-^,2V]0#:6&;K95G MCHD#*!!?OE'H$T5 !, )IQG"ZZ=(Y@_3'B_R[R^ZXT-9=_>0]H &^S$N>"J MYF?)#K1#C8J4.V_Q47G7;:P6+KD:IQISXBE'G@@2H,2-)%[> $S902KHE!5(>:,HFL0'&I]TO([;,K2B8\; M0; G^ 13_XZ7V[>='UW<5TY-2'I/)Y[MI/^0G*IEA5>[#ZFF8]B1JAY'.,?> M107'D*S;C %Z\'9#%^R70+X(8*'.[B=KLSVI)B^G=5T*(YACS;F_P/]0/7BM M"SM[I/ITT'._KEY,\J?:L(>+^4+RT&V-WW3[]B"D88O%PWCQB5L=1BX5IPNR M7$&K)Y#()2067WPSBW MT&<+ #_H W5#?: 8->+Z!9$2#@!R%@T*SH$0D8-"NZ:^6QWFG3V[%!FKRP MU*L(RL^BQ>;L%L_?5OBF4Y':U_D)!A%D-,(\M<;,E8.]$WE;X_N NR2WOI&= MZLJ:EXZU#^4];\#5"](!@;/C!V?'R_*T[)&D3[4P$ZMC-RB6=RC/]/QP*\U8 MBV3Z(@(G?HY+Y0F S,&;8?_\90""PN?Y35\#S:6 S^$'$?2]UU#=6C)H8@@!_TB )T>-]T M>.W\#T"'-Y6J 'I$W8&)_;WZ#3,3AT5^@#1Y8E#?BBNQ0RF[@YD->4/!N;U4 MA+'J^?$+$@NZ&W]T-=E7E:/%/3GYLQG4[\5-!G(,[L7L/OA.[^DP.HRWI.;: MWJD4@TG;6ZZ*0R_2-U-A/5R,A.8RL7D@J>G]1&8R2#$ *08@Q0"$B8 4 T# M>3D[$.7^<-@#HMP! =\T =]5D#"(<@<$?-,$#*+<'Y& 093[M2DXYS';S_'J M7F)&]H]%1U\/V_:E7?HA*0R4E!\LQ#_(&)^7KF2=S_I\D[2:OW#NLT(KB"R^ M&4H$D<7W18@@LOCQZ/"!8EQSZOY\NRP[%VKD!O$HD3?QX<0EBGQ+F'V\!\D/ M+SHX/6DYGIE[.JX[$NC!C' A:&@HU<6 Y>HLV1?CY:7-&J";[$22/_0%0<0? M9?3_7++M\.TR=AK<],S7C.WY'=5?V:C M7[YA3SB1[<8"BB<_5F0LB- &=)@'.@01VO=%AR!"^W:DGC,'97]06JG2ZKY! M%@>L'LR'IK3M4VM472;22A*'_::T\K'FYU?V?ZI_ MQ9YT&B',9O MYU:ON4Z\]C\\D,WA. $3G-*&5MJ J^L"-^+Z8X^04806$2P-S88OI=" T.RK MA&;G;Q= 2/?CG?D50KKSMPD@%/SQSOP60LB!]^=M8>K@##K57P^&9R5MM[!8 MT^S2M6F_M^-G82)-)4Z@$^(4X*S;C=3/WR[D+\(_M\I9KO#D->5,QJ6IY!<% MBX]:PP:+X\*D0?13.$&_?",Q]'+^ID=GI2L$GN=O$T#&Q>.=.2!\D*GQD&=^ MC4R-_.U"#C,\;M^%]Q'9#U,ZVV(H;63(;' FILQWA+Y8IH9YY$W9+^<9+^E^ M%.?)5B1>.D>UO/0T"NHN^:S>0) R%L!>2L@;^6F*?'A"!'DK7RRD?S^*^+3 MRCKP_&1.WLA^YQ0Z59I$<&3.OK$$X1DPYMN #8>*,T(8#G(@@%T M>-MT>+L!\B!1 ]!A'N@0)&K<%QV"1(T;5;+.;/*]GF(T[6XLHE6429VH=@W8 MZY;'(R)5C!+#\5N:T>W5X$_VSE57\?9I6[5@V!XHNO_>I(VY[2JJ6SS\_E?8 MV14\V]"4PK^@]$^NT.#<1NA'=_2]FGYP9:*XI"D[?ZL%#O_\I2'<)0.\FFX M&. >[G=PM #;WA4/?Y?@]EK<.V" AV6 U\)8[Y+^7XW3SB\#Y#XQ9*#ZDF:I M"BNY5E)F^>@_KRWZ,R.JPXA>='=U"]U#4WKPRH,5<=/P?K !2CT=/B0'-7?_YX_?-!A E\_<"\: \-[+_5;0('E+TF)*=;W#C$Y51*\7D?D5@>8@Z'"'JWA^6KGD+ M"QC/47F_,N;8FCF!Q@MO&FJ=?H(%I2_?,()\0B'L%A'ATF[;.V2!B\O&;Q=O M8G'[/SBP25,7;?"_Z=NP%=-8V:;@;?=-;GD M563;Z&*!&>JK Q*@,1)@Z!->NJ#-_*&P ,[#)7IV*#@Z] $6_+&_OC(K>GZ% M;RV@6L0/.Y.9@TJESP(";\!&AF$@ODY,BEV!P'84,TGUX\1-3Y6>*/2"?GJ M S>/ T?O.\"!2SC7E:E?L8*IM^2+S6ZOOS,GM?GLS!:S5Z&A#&.56IM<]:!: M?XJN9J4FQ' '&8'Z\@U]0A @(9S5A7YOT'#TE><7&C[=@@;O[(5:72Z'?$T> M&Z%![6!MXP0EZ@8:V^;3&S[Q@B,(_(03OS)[I6[P?_M2 M?&279[YWLMMYIO&",N08I%7W351(/G]-K)B:_)\3+O>AJA8D.2D7*%E13,<' M.US7]E7O\-&W"XQM*4D!027YE(:()/= H:I9DB5KDE'X?H=XA?_F+2E08NY2 M_N?\JW\O F;6^5Y(5+3MM[_C?YX?*QNJY":@L3J^^SLF)',X(B$$_=?Y0/[5 M T:P?]C^R/KXBTFG__[?__-R\O]$_!1EV[#=K\_H]6)5J\,F(2F0+=7B/-;] M]:*TB%_\53)"*?*>@1'^"_\N"W[]CH#)/A1BO8KZKT+Z$8;^0O%T.S)[:4J[ MXHL=.^)FT5 7_M?CKSU_+P6]K^EC_^/87FJ3_^JJL?@12QO)PW]X;'HNONU\ M16)Q-:&2^,OCNK#X8L8O=%(O,#GYB_YS+G]+A96;8.F_1ASS.E-:"68:/Q#K M\5M?OHT2[$K:[3$)-,>,]9U,I?>0ZH\[?6H'SW)/9?CL#7CJ5:J%(=?F1PVN M.SQ&]#2ZS%_G@8B/S(CANA6V.V0KA?A3/+5&A1[%7PQ'\7\=MCL:%KAXRO$Q MMNI ]=<3_8W;Y<>K 4;>+X-+J<0C M+B19FF,P)$H+E10Q!2)$2I4149'F\Y(,HZB,XE\.O"\]RTBA25%JFW-*K+K> M3?AJL/![Z#();?QY)#9=<"'AKQF]A4U;+XA M).S)?8N8KAV"%E&1_'GD:C.8CN:[Q5SG$'\#!UN<,P?+>&3VH2M>XIB]4^%T M8@KS1;U3WE-Z& ]%X)^'UNOUB;T+1B8;]$9(P):VM,;2(I9=E%M"4+8'6WU= M;0;P)IS42)\+XY&9F=9EQ?/&'++FS8T0=(5QK>&8??'0/.C'H16AMFS32!W5 MA?$L:BCS0%/Y=&AF^Z5.E8N8#>6SK5)0+ZM8/<)+RV1H9OTPJ4,]PV ,?2AL M89(1.")*IYI=_[3%T-)JTC)U9+-9[J?,V._%6X6?.-3Z;+4(9ABI;S;6;L@R M6P.?)2.QGT=&PZ"LB="@S1TPZ-#/3@;")FF+'1EG&WKH::OO:DE\F M0S.;.HCD;H,4Y3*O!HK7448HY]GI4S.;:MEC8NUO_!E;&^UYQ+1V^QF:[E1F M4Q>FBS=,9HOQW)+NDRY581B1%@DQLZKAO%R7F,6BQ&I]<@WCLP7<4I?QR,RF M+HP5@2NEOG9_9'CJ-YZ*9+9G9+,855Q MH-V -]VVT,1Z 1^VDI&9F7;,)ATL5IH'10&E8]6MU**'M$B>(*IP5XU@JU6F M>&%8]3IF;:DNK'0H^O/0KX(?7]S"V$G>GYB ?UJ_Y0A.**,2 MBVB].L:5/ &#^N+!)/3C4 [>5U1;'/?U"!6)10E&=;.Z%$O9]6-^H]HE6H M.!PW)[TE(13==&AF_;[LU3<^9LFZ.I(8FNU@VE)+9II=?S,H-3BQ!H_XHC^9 M8%JGB0_E]*F9];=777U=KXB0+IFDTVS/YIM1?%-0V?57&]V9CU2##:N-0JY, MC$E%B.AX9&;][)A4]U1]V6!;T4Y%Z7Y;,Y0P'IDAU!YE@LP=HB_'37T= M=I(U97>*JM 5;B>4]I"T'WJZ+@LTBWI4^M3,PIH.2?<[[$!C!:[3&K:;71A#TZ'9A45L;>OK M)H/J0[*VJ4^+[6%Y$:9C,PMK=-71GB5$'&)"WXUE&Z0SI^/G(MF%K5S/Z?:9 M_9:-7(O01=4I3IQT:)9D&%K&+6$YA8;PCAJ0':%6G2R3H9D]"*A1I[/R=JHN M8>/A#%XLMIJ4#LURC3\ABA-ZM4)U"1I29@?1^,IQ;(9M#%+T2:HV:D$;3!RJ M;<]=[9MT.C:S82-ST$ [X^$>NTM5FJO,-=R VKUG3?3\=F]E;HH:+.[[$.I"+#P;XA3-1Y(R8P M++L'O0XWA_PU'%_>]JY?[Q)AH,:W!XR?8!S'"N0!M9E!PK0MZT:;V):,=&AF M#^8;0=SOO>6(Y59[5]M.&K7A,$R&9A<6[) NJB$2S$L>/65K4=D0@\/8S,*" M[9)M[O8FQ!,#;.HRF(E.A7XZ-D,TBP7=D/ ![4!"19MV@MZFT=\=QF:(9J5T M9!TRE@0O.6X]F/8EME:*EW9"A-/U2MLL"2..EVR\W(3W,!6*Z=#,+F!":5A< M#\I%76I4**/(40U[E0[-4$*=)\;TGEKP4(W=0=Z\T77JR#(9FMTP8A+1ZW7' M&>O%2F?<0TV"&\873C(VLV&K(3-;;?42!M6J-%?<[QOK8NLP-KMA>X+RJFQ; MAFKQKC)>I%HT?1B;V3 %B]AAC1]-]"&N16AYPQ67RS 9F[V?K&)/F[5(7]"' M[GC65,E@-.G'SSTA]45CDU4%LE-CD;Z#>=-@WQ@3Z=#,4V=MIS'F6L5Z+)N+ M?G]ONON*$R9#,^>@Q)K6'N?T@:X-]>EF-UK83"M]:N8U>GPIH)WMK5ES%[U]+'9_5*K44; M[%8<$L_VA.3GU#R+)S8U@9?0N:\/)]OJ/$&E$Z)?AY0'%L3-ZKRPZA.JB[E$ M-%\F0S,+:TV7;M^LFHOX<+L&.^/Q/MU.GYI=V'JW'W0QP8!93G0H@NH+OM]+ M'YM=V$3<50?+^39D8\UBWYR+ Q))V.&$2!=,<:$2.@V.5P=[=]?>MF2RG0[- M'&Z U%F#W2 ]2"VZ\TI?VN+%VC(9FCW<58DC1_:JR=;D%=(>UV"MN4B?FN4< MU\06+#>,F:&.#L_-;)B^ MJT.K\3B0H*BT-HUN&0_(8IB.S6P8/G+*U05F]/AH8$,EBBXB=JRN(">DM4W' MK=']EE?3&9ORU*X+65%B5SDAK6VGU)!AYJ*@$]&PV6ZW!UL;3Y^:V;!M-#$Y MV)FZ4% ?,)L56T+7L0Z,G)#6I)+M]97%B&&C"JZSC.)JLW[ZU.S><@QBC&:+ M?L0S.%(2%]%X3V++=&QF;SEC.U3[ZGBB;Y;%+D=I/:$?7P_("6G-6C.5CD / M8KCAZ9ZR<9T1:L9[<$+^$=C0AY"-%>E"K Z(D.Q3W5AE14X(-?VE@P0,S/*0 MT)P-B:)?=_QI.C2[,"'$NTI[U>3T"$>B.HQ&:()5\)B,.!78Q91*T+7 MQ[>*M8EWX810TR7\F=HJM7&(PR%7":&ZBK%A,C0KWDZ:$%GPO!8-=]L M)]A@F0S-[L)<=QFS4B,UGL.0>9UJML5*+#4CI\0/MS->E)S&$->+I+4@>J,! MTZ\>GIO9!6<:RLT)WW5CW*=*M--8C_IX.MT3NS ,2I))^ 9O4L46R\#:NEU, M^^IFJ9%V4'@51#V>J/GQ32DCO-U+AV9V01PW8(6?&S.^N&E3IM!H$VI\]\=# M,_Q0&M:+!K3A')Y8A9A);+M,EUL^]PG_2=?K[IL-U=K)?# H2C-1L(D0#I^; M /\D,L:BO4K8.@X-HXGJ0<-2=XZD4S@A"[?<9L=>;V/-=#E%NQA3+IOB86QF MPP8-F)U%C^XD82E939I12"'&"S8^H19?0VOVD_G!F M:;-V9[#$:^L]/U1$NE;=G[K(^:@5LLQ4FR?%9N=E'Q4I/ MPB&V&-87> F?\@R2#LWL@=PINGNYMH7U***,<%N7YEXL!B(G)$:6A3RF/ZW; M>K04:J5V?UB;^8>2'=G+#!NQ46N\B_0-9//M+0HY&G0H)I0AL %=[3-B'8_E M<8&=3E9%5%*7WPL/_3A6Z]+5<-1L.WH+)XS(HO@5U:2?RX;\)"X)<[=1[O3[ M.F,L:B73#(V@F,919*8++2:$S8W4@6ZNFOAP/(<"3Z./.<@_Z676%FZVA[U8 MC9S+_7$M&$4[B#[F)_ZD=O>E.HVH0P]J.6W(+9-Z0$OA,7WI)TD%KA)%@VFL MH9;/R-MH(5=%Y7NBQT^T2"/H?-@W(8B;^E$P:!NAR-+/H> _2?GULLS"16'& M<]H\AM"-,>E'\=@3HIU86L1NE%F-:C8V*N2W&(CBN^G8[-V'^O7YPTNG6N)J/[K9$X>S?'!4_^C7 M?Q$@=73J9^,F?/?YK<>GP0<'W)E*6+QPD;]XOAT_^^'EH#""V$?CJA<,.7O=2PK\1!?A/],AE8R#!.7S2.;S5 MZ10S XAT\ZA[=Z(8.# M ,#T4.?P1E]C< Z 'Q[J'-YJ#0T.XI,.XHU&U^ < # ]V#F BSH/Y_!6YW-P M$ "8'NP< ##EX1P.Q6[ 05S]( PY>4<,*!"Y.$@#K5VP$&C$:@OZ!/#_\Y>XBR[?^LMP!+*6"1'UD$^S"+H*\$R-U1D#]C MFZ9M'6+UT^;3 '&!M>AUF3__828FSL2Y(8KR56]\\'LI[N"+DDV?XZR^%_4:4:Z(Q*B MS7AE_NW>U/FFH%=M#G=$08SD:!DS,""A2P2OW!'5G/OJNB>B.0?N4*=5R3NB M('!S79*"7C5;W1$%5=2%)FN A#[=H'5'--2V/7"+?;J5ZXX(B-T$FA^=V_ E MRZKZV:3S.ZLN2X9DR:KW5*BH\LO"=? _A>O@2_'5Y3_;\-/X6]M%R_*JKJ2G"1-% )+\P?JXG^_\/$'<>A+EB*Y MBNBERH4X7C*H =]W(OI+(6T&O#O\(NV)W$*$$1&%Q83FQ, K M+B7)21[FJV;,W0<&31P;MA5_Z=$[S1,=9>&)A^"-U(S-!;Z7O#W>O$Y*SJ(4 MV-PH\,,.6Y35?4/'J"8QCU^NJ+)F2H;WOU^*Z)?"PG9-R?_?+]K._VH%IF+[ MQY]_*5B2&6_"<3I?#_K2B]?$H!J??3PB?LJQCW+%C\8.T31PB/!U:3 5J"0JF&RY8UGFD(RQO%%)>^-\.,SJ!*:@RGV-=I+?FAR'3=FI>J5%:+&-, MP;]\(RX+)P!-3M0(O&LPR98"!&#R,3!Y'O5/>FD2.MBPCL;Z(Z!L-\N&7VQW M.GK0EDEWMJ'$R:A_64!I0D2U$C'#*5\;$Z9(P;:W[B: 4OKR#4/0)XB@ *Q\ M>G;LW?+9Y56!YU'/494I%QSN\2.;+4H4$1GXGH.DB='F:BBA-RZL"D#Z?F&. MRY.&+C2T'MZ'!Z2S2K@,AKY\@Z$G"$(!EWU^CO%=W]Z95.*K@\H[8.2_\W5? M?QZ(G+JKXSV,'W,"3B)#IWL\(PU80=+*76%##+N5,($3-($3[(F$\ R>_ \ ME$LG8]\UGF1SK@&@_#:@#%1?TBQ58277BC?*.Z()0]%SG9Q6.WK+IO16 MH-F9)?]7T41QW6IK)#9,W:S;?9T*G-@I8>++-XI\(I&LH1* "0"3/V\T M"<#DSZP)_^0!I>4!?LCV:%BR;:I'?(FPCAD,G3K*;FJ6WRB/U]BR&GX2ODQ9 MP>]:Q*#*:A"WPE?;NNLO4VF%BJ65)XC +Q-+M@3NU?$E=Z9+BEQ3 M*R7H6A W'/'HW%/7K8&=@@GAA $^?(-@:DG MO)357,Y4_S='E-[PO" )N"C8B_B,$K4R'AMO7])1,#XS2SV<>*CYJX)J.H8= MJ>IQA!.X\DKRU()C2)9W9IS,T19=)@'I_MC_-RRJE<"5DD>)L)A" "*.;!$] MX@%R-K_H:"[BY&BH[J%6S2^OE7K;0=9_*&PD#*,J\0+BUQRZ;Q[,KNR1.=)! MO2-K]!+.. $^XAB9K,(V5-5K<[%J;3=Z"6KU13()R*#> 3M_&(SQV/AQ9HW=-U0>G_PU1]9G%Y+-W;U$;4@Y);7:RM:,W;='Q- MEA)U'8>02[LJ[YB[4D__#3$7N#+.YGB^8ZI.7.88],I)P J4VW:&]K]>J>Y>3!SA]M M5,T9TF(I\1J1E_<:@="56TCAO8QOZ;91Z#*2.^"'&TA"O8Q3ZK;9 ?BIWJ$] MO/=2[CDN,RWNC3T_;'0P+&PQ@\%V&5_*I2_?B$O?RH_&?7>0G@KNHL?-J;R( MMPNP V"'FTSBN8R;#+ #8 ? #OE,; /LD!MVR'\.UF4<<[?-#W?KJWNW";S8 M0'6]3T_TH5:3ZGUL6E6A?F("1]ZI;M]\QM98]?SX_8F7S8T_NIKLJ\K1*Y?0 M \C$ IE8#^U.&WSGBG08'<9;4G-M[U0B%C;&VCZAM\NLV3$93Z;)XAI=BE3B M4D/0"\>7@TRLNT,4D(GUF$%M(!,+4/4MGS#(!GI V +90("J[X^J[SUO F0# M :J^/ZH&V4"/2=4@&^@VR/H>DUN>/>_E$K<#2,$ *1B (4 D!TC!N/T4C'M@AVO3P1TD ^34 MG_]VTYDF;3:*RH3L0,R2"BL#L55>TA^OV/S#BPY>?%J.9^:># (BA)94;E"0 MQK0R@+8 :2RY#J5)7^BZ)FS5SXH0DZA=F?5)JDN%''M$=\G<;H& M+1,1,LE8>:\(>?-)*P/U>[>@GRK) 0?Z+6>PG)'M'R-IY1]&.)&Y\JO>A;-J MD]K*]JK%#G'<(,1B<2CKM C#XJ%?V84549"K\A"+!ODKGW*+_ &BWD5"2QY) M'R2Y/*@ =5.'GE-AZM,M^N\2IGZ6H1JAI_GP;B7K&JGC^AQ6Z:'73V2HQ'%X M2H@"S)7K!*,\+OK*24?Y,\3<((*D]IT3 $(A>X1G!U,)JJF\,].G8[\Z3Y6P MQ"&(/Y%DZ>(.P0=CITLGON1QS2#%"U#Z8ZP9I'T])J5?..TKCXN^=BI8_@3# M2]27^TV!+JAV5YLN9M5TSK"895?=CKK&P:J.O%^@N\?DN'0WB_-D(Q-_G:-: M7GJ6!767?%9O.I#AV@Y\D.+VJI<)1+2 %#? $"#""Z2XW3@[Y-G(^*E=AFAE M'7A^,B=O9+_RYM1E44Z$+>:%K/6R*O) C1?DQ?0R5-VM)JL'N7:@RO;22I]X M0KJUE>6@6=OT.(@+[755:HD56HZE6R1I3H0_X?B=94I=FVWO(",17&(@8>ZL MGC# #H =0!(+R.D"[ #8 >1T 78 .5TWD].5:&3TN_XDVU54MW@8 M_!5V=@7/-C2E\"\H_7-+2'(AY]+#W:.I)^FZ9)$#MQ+@"Q!^E'$H/2Y7'+U+ M@"L>65X ! !@\:2+XG%Q\>"O %P!N")CFGU8!P"^6X ;R[@%P)XUP$.GKB )=RQ/W0:28SNNM3D]R MEJRT:+,5E)?6/2(55A(W&O:$E]Z#%;>9RS5_C1C2KT,U(:%XXH82#RY+AF3) MJO=4Z$BNO#JP#PH_'3XD!_KWO^RXA\2N\Y<8HCV16UR@0*-%-M=0 M35RT>6VE!+4Z-&)*WL>5I$/=H!>O.55"B-]'+B.,'#:JU#BYB.HE8MD782PI MPXB23SB%73:F'J3(72E%+H_[< ]I;UP6I/EE"]FR)-*3&R0$\D M=?'BB ^G*3P(3UU<47B[=*#?K5!2U38-ED&G):GCZ]W&Z@]8ZAV*PGC;YYV& ML&Y"A#'O1.9PU-JI*4>E30JA)Q3%[XNC\GAU72/M,H_[D+]4S"M8,6\%74Y= MV*]:/?' YJFUZ@\@(5RAU5EWZFYJ=(HS:-H,]:E$(J!+X3VF\.5Q&W*8Y7IS M2/-*2$B#:Y70/B,(?$02?5*)5OL9]%DP8X0([_#,:,@R%6;=B*+6:&+T)R&KM[@BI)J0V(I&9[9]ON[6 M[0=K=^HTQSS14FR2GI9L63PH4E2,/$\8E=6C .[<0TIV'OHKBN5YE@>3<+4+9NVQT.?<(*\ MAR3JAN<%2?3&SVTT"YJ5'(JE'HXTU/Q50=VIKJP=6F[:A_3T&XB)RRSYV?)Z M\\TR,XQZR6Y.V(M(+4)$H?-Z0Y$B[77$GK;CU87N;C2')'O*'_9B24C[5".G ME^45V"-)GVJUZY3:/@35I"I41!;[(L%QS4EB"<&3T PX:P.YKZSRSPV]N$G^ MSUUSRW\RM'*/RGDDQ,OVJ+P<'>:NT^3%"O?\R27T/F=YT=_L^3T*D_JFJ7N2 M:*YK^S%][HLH;1_QWGO(V!?I !+42-],S1#S1QVGU0N3>ZB4&N0O=!'=*#/D MK0$GP.0\-WR\'!U>N6TCH,-;:J5V.3+,7>L_0(Y:\P'Z##/#?97CE6/3]^06)'=^./KB;[JG*TNR>G?S:S^I77>69+>[Z]9,#X_A[C M^^ [O:?#Z##>DIIK>]X)7*CCGBFO\+(,;?!Z:!2153- 0A$F$@-\Z51>Y)TG M1'ZN3?Y>P.,6DAK/+8T""KY^C[\SV_U'PC^G$KX=O^](N_9#$OB=I@(7X!QGSLY08Y$!8=[X\1&=%5Q!@?#.4" *, M[XL008#QX]'A T6ZYM0!^G;!%0OMT\V0(7"]9U) MR_',W)/1#VUGL2IMU&)%-YMP:;GBY@1A]D683 L[H3<9WIT_\ 61Q']0A^!R M]=]OEZ_3"*=GMF9LS^^H_LH^Q>"60\.[JK<9L.:L,I1:[>HF6!T8'/WRK02= M;'D#6/R!@F-!D#:@PSS0(0C2OB\Z!$':MR/SG#DN^X.RRFP]ZWJ[Q<+A!5J3 MH2GG\XJQ3&25)!3[#5GE)F.Q!ZIS-*/_7 (%.+/NMH=-;G6:ZP1K_\,#V22. M$R!!]XKJ8++NUR"DSR$Z.;9*K58,$J4D+IN$3Y9/ Y'9-QN9G;]= !'=CW?F MN>Z=\EF; "+!'^_,;R&"''A^WI:F#HZ@$^+4KJ&W(V7=0R!--A&5VB"#5C45 MIQ('T"EY"K#6[4;JYV\7\A?AGUOU+%> \JIZ5B*)<@TOJ6R+%-PELE0Y*#C@ M2=+!@W@BJ*Q3^6PNIT?GIEP7U/^L30!)%X]WYH#P0;+&0YYYOEL9?![DYR[) MX_:]>!\1_XI-+FST3+JOM[R-9*F14AOA_=0ZC[Q'_,M_WDNZ*\5YLB&)P\Y1 M+2\]DX*Z2SZK-Q M +)70/8*R%ZY:4I\.$($V2N?;"Z___+XM+(./#^9DS>R M7WES:CVFE3SPA);%MJCWM M=G867Z/&_6C7[RF+?2PE44E1_=,];F\ -AXHV0A@.4B& 71XVW1XNY'R(&,# MT&$>Z!!D;-P7'8*,C1M5LLYL^+V>8@15ZQ5.(NL.%$UF,ZR&H0T9I1/%*#$? MOZ49W60*R ^-R@N&[8'Z^^]-X9C;KJ*ZQ >[A?@='"[#M7;'Q=PEN MK\7 P9X6 9X+9[U+NG_U8#M_#) [I-$!JHO:9:JL))K)?66CR[T7F#51UP= MMJ$-52=@+/#4\K3_84O1#\:+AB7;IMI5?6XQDG9?"EZ\;D!)7/&:G+R\:P,)?YA63(D2U:]IT(SL-0# Z#0T^%# M",/Z@"U&N*Z1S>7,W/Q!(GJZ MHA>O.<'.J]%VW%^%A*X/&;B[[.SUYKH1LS.*O%0I"Y 5.7%LS1Q2+4-Q!7G:IK85QWU&5Z.:9EVE#X"24N M5DK[P7CBT@D^^5OQM1/4\@<#K[CCZXM&O5D9F7,H13Z9?.L)O,HVQX7I!XM']NI%70K.2 +/5PO*'FKPJJZ1AV MI*K'$=][<#F&9-UFX,\5LB]OD(D_T@*"?!'"0IW=/[:L3;;M";F?ZL*DA$H$ MV1OTFW]XTR><<*K[ WND^G10[TCSO9CD3_6%F,\8L5.O543=M##(6+BSC=?M MQP"2N-.I2]6G HFM5VFR=87$U3RA!\A=N?5F65=(/,T3 5\J?/-/[K[W.887 M[MRJ^,R8A52$-]>-$B/MF+/??VFUZE>OOQ.WGXN)0WL\IO>05(.8!8]P6&.V M3&Z_4A(QCD/4G;1%^ORLWCSQ#0#^F^]H]?E9N8" [Y: K]!%Y@I9M8" 0'? M @&#=D:/2,"?W\[H"NF >:+@SU4>I]H>W\I-!8$TQQ-ZKH%B0?_Z"A]$=%L6 MM:WW("X:KS80+R\H,U7X4I?)&QI?_G,!?\L[LE-=6?/2L?:AEB=P[X($PD=Q MD[RL864$Y 1GX5-H28[]?UQ&V5:OR(A:UYC%DH(F'!+F@A^2AF @D&^8 M-T!9]?QFRH'65<#/\8/8^][[:V7,>PS=;+IZC6P,]S5G7C;H]/XJQ?<7>9.) MLJ %50X/)7^8#%I0 3K, QW>;NN?:V?X #H$=)B'+!- AS>5$ %:4-V!7?^] M"@Y4YF9[2AU,=:F][/;YR%^I244P]%#@[Y<:SDVF0(Q5SX]?D-CMW?BCJ\F^ MJASM_,GI@\Y2(+?A3HWV@^_TG@ZCPWA+:J[MG4IM&([:_G@P=RP^,J8[Q*B, M.91:B@B6&NZA2QD^0&X#R&VX>7$44##(;0 $G(.S ^'U#X<](+P>$/!-$_!= M12>#\'I P#=-P""\_A$)&(377YN"\Q\L_APK[R669/]8P/3U>'%?VJ4?DK)$ M26W#0OR#C/UYZ4K6^0S0-TFN^8L'/RNZ@LCDFZ%$$&%\7X0((HP?CPX?*-0U MIQ[0MTN\4\*(&MB]+:^;.\L9HK(33(H?+_[XPXL.?D]:CF?FG@Q_J(C&;(P9 MK1$O336#]VIV9JQ M/;^C^BO[%(,7.8UHET=A"^*J9$_QC$%O*O53!D]Z.#P1$ P*-3]X?"R(TP9T MF ,X=F?U!:*0W09<#ZB :UUB;9H\9

7-J*2XG0@CS0@9YF44W4.,%>3%!#%5W MJ\GJ(;-FH,KVTDJ?>$*>8P;]?>AH!L9+>]XAF2)F=2NQ/$V$U$,/]<%<%B.$&!'S3!'Q7(; @AAL0\$T3,(CA?D0"!C'<=ZUNGME>?ST5 ML25,>[.E751TLSWJ+C'4]3M-.E$1$Y/_6SIB_N/D?VC@7=#2#MZ%_S9LS[N% M,(N+F_%M5U'=XF'P5]C9%3S;T)3"OZ#T3ZX8' 3"_[D!_[K'?5%K_J-2\L,1 M,GKUP[ZH41_0\4V=VL$^# [M(<#G:!F^1_0YF(D!'3\$'<,Y *V+6HMOB([S M["8?J+ZD6:K"2JZ59(T?_>.AN$9;DYKEZS4>-6![,-;'H_##QH\?5/1&JJ%W M59];C*3="8/%HM:8>W[0J^N"W=7'RY*X%OR^B,3K)9(81;2$@ZPI !+OL,CG M%B1RGW5%RW)@!D8\5.'\E>J>X. C5.@38ET;KTT88D*"'_)CO[*C

PP#F76([.$]GH5Z88H95(H9) FRL,[I^+A'U#AZ07*+ M&M<6+<[L$OD]J4"KUO31?B=0K+;KC/EMQ0^W-3KA\,2-4;JW*O)_SW]X9*@F MM!!/U%#B'Y8E(VDCZST5AJKCISA\8 (4>CI\2,[K[W_/0;#?>W,;?N1Z-.9Z MQ0[FAGK+;/\;I1AH3^06%Z@^KZWW=$G>81&+J-,:%?J&+.SZ'Z\^GZ[HQ6M. M^3OA2K1AFI4I.US/-ANTPI6812P*E)+"\BCYA%"74A] &LGK:237YJ\?=NG_ M73+%Y-HKO:8 <2LPDKPE*92GNMYA1B=P9#Z9=#Q=%C8ZHPQ'[ B7C:*:X@C^ MY=N]A-7G$4%.I_%Z6W!R#O2_H)C:#=%"-.@B):'$[$YE*R MV0N#2#3?ZB%6'4]98>R7%S97VD"C90(BI2_?, Q^(J'+&3/O2&A_&$:YN,S^ M=ETETN\-J]U!HZ\STV9S2YFEND1\O*[2>V3V#N'*KBTJ=5W5BI)(*#%&[-*[ M-JF2!L-/,([>"9OD[\9]-1OJVOQU]BOWM4RI:R_TDST%MP('41>2^BY-FN='4->S5:[ M]DIO"D1>B3LH=Y?89%<3)5[K#2)9H"8]&;13 T 2F( ^41 %(.73DS2OS6D7D$I> M2>"\]DKS9$R,OUM?,"5CK@_74@5VHF5W4?O#5MAO&0#'M4;@\Y69 T6N-8;F MPP7,Z@=O9-KG&GV*_[X5O/!O7XJ/[%PL^N)(Y!A65?=-IDT^?TTLJ9K\GTPX MPCLY.9=S__)MJ*H%24[*0DI6%!/_P6C9M7W5.WST[0)C6TI2*%))/J7!0,FM M4ZAJEF3)FF04OM]87N&_>4L*E)A+E?\Y_^I?7^M[X531MM_^CO]Y_CW94"4W M09?5\>'?D2)YR1%%(>B_SG=!O'J""/8/&!P!@7@QZ?3?__M_7D[^'[@KRK9A MNU^?,>W%JE:'TT92>%NJQ;FK2GI16L0O_BH9H11YSP@*_X5_#X?]^AT7DWTH MQ#H?]5^%]",,_87BZ79D]M*4=L47.W9$TZ*A+OROQU][_EX*A5_3Q_['L;W4 M:?'556-I)A9>DH?_\-CT7'S;^8K$,G)"!O&7QW5A\3V/7^BD7B!U\A?]YUS^ ME@HK-T'8?XTXYG6NLQ(D-7[@NN.WOGP;)8B6=#9C$L!.FY(=R51Z#ZG^N-.G M=E!*$5A$)!3&2545Y?F<$C$%D<22&O^CSN.C6*!J_#_ZY?#6\^Q:!F/>@*Q> MI5H87O:W^8)::5?!7=N#%0I#WST2/9$Y)6(F4<$*4%\A247ZKIJ@PK@6B'H3$OQRS2J:@ZDR"9/(SY]'.AM%-3+:J%98A6XMU MH]?56E(HXMFW]W>^Q\[HI:\7^SI31>;S5M1;BD1VI-8MC[K-&;R!-JVVT!3" MP9C70I',CBS"A-T/ND%'USJ&*8I&I0\C?;&4'6GK#6D:=D8LB[0#?[X,A5ZE MN8REW\S(J-.;8@N7K?'$''2N%$"$K#5I@, M)7X>6E].K4UUWUCRA+'>\-H &0_BLX=/D(EHJZI@\"K#(PR]VI1'6PGFXZ$G MZ,2L4J98&6P]2"4)1%BAF*D@\01.'.J@[6[H"%^T6&3H4K)*0SX%Q\LZ<:K- MK8T-:QO%U9E]2!;#-F;,5_$$3ASK:,O.^[70$?0BORY-N!5?C8E&A$^<:Y?? MXYL26UGQP798ALLE=KHI3%: M$1L(+_&US8Q%M^(T') QGYXXV*KIMI5(,N,9*EV*W\+5BNS&&LR)@ZU6FJ5> MF<$Q/BB[G= DIAMR$N/$B=-J5(=Z;$HA M9%(UO#LC-AZ^Z2>*66;HE*X:F\:<7/-#F_<4:UR>+UJI#H=FZ'6F^/ DHL;0 M9HQ5)N$*Z[0.P:<9TC8-Q9#,8K<),:'3#J'&BN@X\= 3!RN4NMUALS\@H T& M2;1OTI&EI$,S$S!,=BDLQ\M]S+$3HU\T^0$=+9.AF0E@42U8FF2\6<&@.5;$ M6-A;B M5KVX%-$3Y+)CZB+.5=DF&[5*:C"13LU0E?HHCXJ2+H@G<((&9 \3,;6^Z//":K]<<_-FR6C'M^") MTZJ2VU%_[I@K:#AO[.>3+3$9([2(G3@MWRQ;2]$AFCHCUKM\G=J6HV4\],01 M=.#^(-KP5L@/AUM[IM"V$H.WB)W8UR4^:D?-TKH#!5[-=:8$BG=[\5-/X&LE M6/*,W54![@X"M*<4]Y;LPKACQ7$^<5GTQ M7AL5M%J'AD6C''5[TLIBO@)&L"+;7Z] M8;2E;O([M&$A#7@9"P[QT,P$+$I'VJ:D6A"AEMS9'C'#%A,F0S,3*-?Z'K4A M=!TJSN"H(4_K="]F0_P$M&^G0S%S+[7#;]QO;J1YQ[JS6@2I=)*23H9FY>@O!BJ\>9ZH+ MFQV*S+N5L&3'0T_)C8IM0CRJ5EBU7=]!/N_67"T=FIE +#%HJY6%"KQ)5B/3 MJ?>KG=(R&9J9 ,53*J\8>X$5N ULC.J]MEN/-^L$%_CR/A :LRG/UOPIV2FU MT9EN]).AF0D06W4:J3JVXC?S&3EI1/;:A>ED:.8N<'T76;J+%@*9,+&@_&(+ M,GKI!#)S==8DACKBN H5;C6-]?HUU*>3 MH<\ G]I OYM^#F9MV38,R?'4K\\?7FI@B:GD:"9)# ;RP=#PHUWFA=G[:)3) MVKU\]_FMQZ?!!VWM?>ED)/H7^1R],'"^>;\?/7!AV^&S.>_ZZF!C]OQZL M6&&\"6^:CX[VO/3%ST.EN6<;@:]^AMD(^@O"_S$<_;E#Z!]CX!\[AZA?]G$# MYW*M<\%_V:0.G,MUSH7Z"_]E94]P+M=Y\&Y7 W',' N^3N7&,=* MX%PN=BZ_66WA3?'XJIOPT6"'RTJFEP^EN BE'/0#HG3"E@4T[8,1Z$GW*GZ;QU07=5_P*]J#[#+I!GFG_+-W3Q M8SU/_N>O'2D7S[M"?U[5Q>K(PH'8_*J/ MM\"HOW1^W JC_M)3<'%&S:SJ4_F!NG\OZOY;-'3&5AI ;0=J^\VH M[9_)%Y^N?O^VO'#:47!#RC21OJ&B.O$EJ*622B&6< J2:_%GPTU^4!;"OV"!4\(\38V#-M]>=+0-3/:T[V*N<096B02 MO1M](DF@=]^GWGWF^_61^/BRNO<'^1@*9K/2V(-A:.@*V]6^-FPOU(2/8V4< M>X+)-VL7W:PN?A ]TB)/Q;F45/])J@2IEG<00]1=\ED%.C70J6]"I\X=W%U6 M;$FKSI<3MF5><.VI#@WC1J6TWV)UOM9$AMLEQ93Z&"V2B: "XT\X 5].4@$\ M#^P%#\7SEQ5QWLWSDSE>):GJ?,(B@\&8CV;S@=19QCR?U'G&WN#YF[.>O)3P MDHIKDKP)-#>69S0K/L^EEJ152YZG)C78@"D%F%* *>5",LE+1N06=,*&AP0P MQO;\4\$+'H-"Y7F71%G3W.Y#W&3'@I94_TJ#%P@\6SH:&%& $04842XF8?PV M![>-,3(6B\T5JYFE=I?<0(MQ+^%@(N7@7S9_NP?SR<^RAYSL4T$^].6+'Z D M$0SV/&D&4G#5K6H%:GJ\R6Z<3QP!>A:PK3P4"EY6CF'^85_FR*L)_KUA2<:; MS7#((0'&UB8S>N]()#_E:#&M80@_810&["S S@+L+#<@!7V,_]FPK2.]2E&' M CM0E9H[]T4]X?_$Z/($(^0]V5R2] ])EEWU6?!1-$^.R3$6?N*OO56\4T5? M=JYI: M8'J-?[CY! *.4,R"Y;IL\TB1Z%7<(4JS&IT47H]%(!+-"D#G2!H#YIR+FW-R MOP-7-P-]/B13Z?(< MV+M0W<05Y4L[%=A[@+T'V'MR* ]<^FAJ^I(VK&'V+>R:JD+S3\!:RI>L\UE M42RRZFKN*.7V;" -TKXQL:2#_2IF$%AZ@*4'6'KR(N?\/N=#K6:T;3@;#RK: MT!"#NC6+Z= )YR<"#7%/-IZT[30PVMR"T>9Q0F;NS?B2,EG7MI(,]P,*'2'H M!/84,9-9T%1?8XE>R,#E0%J31MI7+G$Q05GP ?:5F["O/'*X3'):,/+'R;OY M$@&9E60MXX=IULM"%6D(:IK>:VA22K6@: 4P"MR,40 4K;@7O@ J\UWPQOF,'S/@W#?4>U,NW5G)U]?+.+-NQ1NFJDJ=6U,/_ M#>N9!P??6?!7I>H$P8$MMT-W]6%CL-W):*FGD/VDYW@:U B7?A7?_6$JN'^5 M\QT8/%1HY]R\B$GE**R MR59WYHSON:HC:"'+BN:OGG3A,%J@=0R1\+^SY;G#GR]+,? M[V@[IRTEM:O3*3N?0,,:U2L/V%9+A8(R3[M.$ZLU$KDF;3)./D%HMGS7^6SI M !6 0>*Q4.&S):(/HL*>).8.51GLV&&M3S7,3:\>=,,$%=)L5A*'SB\B7=._ M_]TU823;5D@)I6@OBH$'"F8 [S\PSUS>^?_,@>V$ 0?):KD%'R-5PGPO0Z]? MCPEP%+NE*4UYQTMB5.QA-0G>])8BG!8BI: +)IT^.$O?B'WF!D,";EH8.0-+ M#Q5OC9DMO@X59QNI435F-IT$%Q.'3%(XL5U.*(96U0;V^848QU:7E2"@%F&&"&N5]S60CTEKCYD;CHS%E5=#Y;E&:T0D8I((/1OZJ'N#-F5^^1\,X M4@1"88"M)6^VEOL74IXYL'=@P%]!$SS17#N5;-,&D(M _@< O,G.!/0;8 M8_)DC[FSV)>3VEO"C;\&*&\DF(ON>%&"(KT,3<>UIDNK_7B&:>-=ZH*EMQZ< MC8$5YD;9^ I&F+?9>-A&?38 M%09868"5Y3ZL+',J\KVTDJ[XYU=^GEP= /&%N J M>@E&'',Z7VMRK M&6(A"&HA8V%+^IOF3*Q%X4^F(\VU@@*I5 M'M/U33P/@B>G34 3ZZ9"/7[>%*L(*%$ <%*RN) MW68IFN,;YC^\(503(HDG:2C_.?0:3MIC%!S7WFI*$IDQ31YN=! M$&!(2F6RQP!,ZNHKS966>EEA*^9E)F;EWI&3RQ'O)=VWOB,D_9V93X!BT)M ?' ^SJ7/*9 A3 @T\2EOX(#]S5 MO.L'E:'$$OLP*-6A#47B88('L9!4>HKAZ\;-5;\ !N(M8#C\6M%0%WXZGT\" M"F#ARD4$4NXWY6H=C/*\*<"@DY.8G=QORM4:'7W"IMR7]2(1;PH+PPZ]PL*U MS8)F;57O)\/%5V"YN)40F-SOP,5#9W*_ T!?OWB42.YWX.+1)?F^#/,551%K M]_$OVPBDM3UCS2@U'L+:+ MZ4X7O "',,3WQ28M(FDI6*3T5()^E1,(=.Y;U[FO'R3Q2.AP6;/^^=%A. _; M]4G)PWEA/BX)[K8QJ+']!!V2@ B4>()^"0\W9%,XRDR!*Z\D[U-$HP='.F P MR%VN#8H\(3@$4D: ,> FC $?H' ,?R(I^,Y*BOZHZ">:?7)[.6X2K.='J;JO M;@+-2:XOH-C?CV*?^TVY#8, #.% H;T?A3;WFW(;BG"R;!CYS[WH^#1^9 MGH$NET==[K;-W$=[U(5D^;2GL,P>?L%GA4QRRB]O&FH]& M'12;%A?-U7R93#5)"GS"R6PQ7:#R I7W7E7>V[9H_PD0J,%LKS:U4HU5*\IL MT%_!@HB&R52)+]^()P+/YJWA:"5VZ]QLU]\LZ 0_8B$,_Z4J=ML6)\V*3W6IS0VU M(*4]>(&Q"1B;@+$I/^+1JSIFXSOG?F^>_3.JU==#_/^S]UW-B2M;H^^WZOX' M:LYW;NU=!3X*Q-GGFRJ"""8'&? +):0&! J@0/"OOQTD(9+MF3%8>/2P9]NX MD;I7ZI77O*8K]D*N#0MM>]-/-1FH%9%.G(G3G*C0PQ1ZF$(/4X"4F]_A_D2) M?UDD4U2&WR7J216,*]P3X?[DF]S_)=Q*/I_2V#9E#748%Q#X3!F=-QK1@(5T M(-P_2B!PE4*_TI_3RC/P0 M;@ 90\O-2+S1OY"?U1?U#+S\ #[1Y;A7ZMY"#G#3_=^O(OVX0_R-K? M9WM)A*TDPB:87ZT)YE?3-RYTO:NX['S0]>YBC^!2:TH5U$:CQ*O+&"L5M:QB M+[,CEK3#C$<9-A%Z?\)^F&$_S#MR OV49#@6"*-Y15!-6L[PR;I9R+25*6#3 M&R004#],-LJ>B7+=ES_H#B1#Z!<*\XV"FF\4>*"$[HTPW2:XZ3;![OD55!_& M<0/,B:P)FA@VP+S3M)2O,P,6X_*GW Z?C=S0\@[GGU[/J4:.=GS ]U]&ETX: MS,R!@U858 L,42:U**:EBXN(OD3F<=A^\@N9A&'[R:_9?K*+&+9)^)5S&%DZ MXQZ;U&FA5I&M+;5[?-&795,?/2KM$8L;3,:3F;"[Y!(6W2T7X0 WG M#Y=HH=5]I[+JQHH**E4[%[Q;KXKQ9EI1FXM83M.Y9DY=QKO9$9O&Y:W1-,N$ MLRU#CT*@/0I?7>M\TI8MTD8EV*?FTL[3V$ MW=]9AF&2WA["%C[7 (I@ 2EBZ;@$PYP)!M0_@&4I %=LZ!/^>YBBYO=PA#]_2>L.W+UFRF*PBN1=WH(M[.08-"RNOJ$F@F MWMT9.5F/S9)/XW2EP0'M117RE9=\:@[E9 :I.)DH?=5\Q5 NA#Z8/TLNW*9< M]0/D0KE8R@X'Q9<.IRIV_67=+Z8RHS:2"Z@S1S25N4(=ZR=J2QVP]+?G$'55 MU37BFPF=,6'A1EBX$7QE"$JW/1%BM35U_TE4+ER[G:"#0& M.5EKC^*X#6SJJHW+_G Q$!9I_*EBX#:ZST^)@48_WJDO8JTVUU='"6G]U,Z( MTRP2 U#+89AH//6%N\ Z;WA7K:M3WGHV4?1#\T1#DS#P[3L^WY44BM7/+HLM MNG+@?66QCXEZ4LQSLR6?I"BI(\X:SUP=REG<)S813:12H9?IT[U,?XA(N;L. M&U]-4_L8D9)J;6I0L@U:5+-2&1<5:9J)-3=(I"#5+1ZET\F[\E#=@=P(G5AA M>]E;U/\$&0*A#R=LLWKUI)Y@%[4&RW_!329 )+DK6W$F:%,0@B]!K$1RO!1$*S0GGB(0.E A-#5D=Z#]N M+P$ZP+0,6;2 A/Z0U:3##WPK*YJHV @I!=E;"YBG&$9S&.N9.[:2%#A BTZ_JK;-G NEK[B HIWT)K M_,,E;UB==:\R\;K*VV])OQ:$GBY!&6@ P00%0/[OR42_G"6R]S7YQ[\TGU;5 MQPW/R;5^H]+B'\&P/QW%XV18-$6%PZ+OU,<4%H#=J<)T<^%P+!-:$[JG2,O^ M$[?+:0&R00T-SH9I>+WWM#U+=[(7U*,(H(5&0/X/0TE"*$1TAC> MH9V=G/$;X_ M;Y<>BUYVUFGDAUO!7LB]I^*R(?:IX1":HPG<7)_.1)/,:[(W=)V%KK,_V'5V M:^E#CS*I>68FV0V-:G:?V@,N:S0Z^O1>I0\W?ZQE>:ZD\[NJ7EK''GO;PF"* MI ]*.$I%D^DOTJ[(><.;_8,OJ8 ?NY3_L(FPE>KH&.A?)%T&TT1#X!T_9\K M5<_=_I0!$*,^[]I6GX#B=-KE2^*3LE$R6UI>W:T.UVEM-F)EO*AP.[DR+_9B M9O*Q"*5HDNAP--3A3BN+0Y_:E6KOOJ0 .:F[^Z,%"#."GY8G^;0R7G3G0H%> M[J:-2>EN!4AKL9-;QK2V6+DF'2D&)2%!/5'33-O!<$-&=8Q61-:+ M0G4O'%QU-TE:@8= ./ J]*2$%7"?5 'W&6SQ91)TEH(L123;0*DXU@PXX9A] M-^@_QXH/B%G^V3[)&X5N@G?P0&5'7C=UNJ*)N@IZB+];D/_/N4\KST6F/#8S ME+T;C J/W97:D:>C>(:,M$@D7_.>?G4?04",_L]FF!O%:()W\$!)BNOF4;]# M4C1GO5W%5,9<4DA3F^TV6ZB4L:1 ^2Y1BOKX"1J!T)F0AB2HD"XM,R+CK5'RXAPYR7/U'V75=+:KIL M6T-LGS)LEJ/-;4W'"VFHP3N$DU'Z628JA*FJH2I*O>B M\[R;[X5\EFW$5^DI5959N3-,-]B:V$9\C^O>&?JUN<3WX$&Z PEP%ZZE0 =$ MPP21/R9!),SXN#?"NI.,CS"%XW,#2W>8DP&U(IR6\8=D9 1=R@0N@2/0 L; M' ?1^Q!HD@FS0<)^R %*_F@9*"J!9GAK$J[,7>)HA0%$(*^!A#\61-&P250# M_DA"'4MA)R"WD__OZ&?=F@'C*I&-KZGGA8DC8>+(_85$\L)2AJH\MUT"39(M MJ,JC4CW;,("4LZV&;@V!=2%.W*>'3=:.]_7%;MF[<*EEI+6@B?!K*,W'GE"*_R43>(I7+- '4QBP#&C43@, 7F1BZ M&ED: &>GN'_7X2?G%+TOZF4)\T["O).[5;*6TL3\[O)]43=:WG3B(N+Y+&;I MWI[CBY#A6X3?G;_IKE67U23.9?4SHO1I:U>+5+_$<:L*M.=&BY<4VX*Z&&Y8 MG#P=B/=%_45AMDJ8K7*W&M7MI,4\SVW,SG0RY?.50J=OOJS6!7N*I 54O%CV M-7'Q%3QES%[K!3 MV8L(@F8^HMEJZ.P)G3VALR<(JHGK[.F@\S4GO FPQM'$]R.:X>U.4(!JRV&R M;+=^7\NQ.?\#A]+ MCY@01F;,VBT!44[">J+0KQ/Z=8+HUVF0=+?SMEE/[R)&[D$^QF+PC/1[7#*L MV6CU-E0^-5YDP+"G%Y^@],,-<9-1BF)"KTWHM?F3O#8GE@.^X_]CH?24*[26 M$>'U"PSRB:Q!:K.^TX>H.4^MZ.?O*.8EB_^<9,B2+WMS()CW4_5]G._;CRX M.'E(A5_<08(ALS4:N@5,\B/48O(Z>I\)51KX$QZ$(5CPEZ*L"9HH"TH$"G8+ M9Q&;D;]X3; E2,;2WP=,+LGK'_^%_[B;$Z$^9""ZGQT!F44G<7B;HO[]<5+L M%)8.Z)BXR[8>\:9\F\;__M__X]_\WFR)B;JB&]]=!O2=:D; S&!>G(+8V #" M(B9,X(N_"\I&V)G.*=-0A"5=YO[N,3&"0R3]0&7^'<$_TM0#F\#@.(&E*FQC M/H@YK!]3P 32"/F:^QGFV^_XL?\L=5/&:=T&4. UNP;HX0>/Q7BQ].5WAGY( M(EJ#OSKGBM,/J<25,'4D3=D]7OXK1&8&T@S^U6OF+Y.[AJY\Y8#CA M]#A]@FC9(G-@'3(5WD.JAY ^!T$!JP2C<28NBFDV/J+3DC"*TR ^$JB4,)I( MR7@\3M')B2A^(V_]&*B=,/=%@GA&";-7&OD'# 1RB$:S MQW4AI)N- M?H<@7X _Q&I9#M<85BI9%MY"O9VBC!?MXY,($@N>P0"-XQ.4NO M&?$V'O'O/.)M/=+MP0_J7*/7A8*KD>4+%?AW,ON3*&L-6X6;%#]"*SVTO7." M*9O-20,5 L[(DHQ,R;0M*7%&&ZB?<0$[1Q86C=(Y' MH#3B]=WJ45\(F_9HE^X,=D^K-M&A<0OVK/7*NA%:1G^+ *C,+N'6+,,&'\;# M%Z[2\B6"3JBHV'%K@B M41,?(G^AKC%(RV.H?_)$5\*_T?_\C9)_3%M OA\=-YUN7R[HNBSB'<3H"R9D+Z$W;<& 8%)VD0Y8ZH85@8\JPIN/;(>F8FW\QBPR/A3@?HKVU?&V&>G&!@^1 M/#10! @H7_D7_NI$URT-:H>^:C$S0BY7^%9_HQU!TVR(A+/H\(#NI*X;$@J3 M1C:R-7-3V=$QEP9\H+R$\(Q,@08,_ [X=["T]LU\D&L!_H9U4 SB+&9^P8?C M/:7H1D1790M^X2'R^U0%51$%B%;4W8J^E#4$*+@)R!10ZT/+HA&X[8@@(;HG M7]. "$Q3,':1O] [9!,?5M?@X7#A'0(FRO2W#=SVT??5OSV=?$GX-")$)H)L M[#>%G@#_9"L624VS?(7M7\88ER"L MD>[C4K?[$&LF6! ,.XB""-@N@8C!B!" 2Q&.-^7L=6(KB&:0?X6<=0>5+[)/ MOYGRFX@S9[JM2&AG4"O'E 2_,[S#UY/C!#MNS8M#> ZH,2YD^/%FID-Y$=,W&GR::8]-69(A MT2*IBZPP_!V@R-"H(>(-/@9Q*MZ@0VF1L:"0-$_T4.S<)\X[,UA _376< X' MN0$ *$DP(,_3&?EM!I=@>0H-55R$A-,J?HY1QK85D71\9U@>-A'8_?>)@0(J MSIW\4=F[[)$BI@H+*%AC$["I-\6JP-DO MH5&>^&MP,ZZDO'B%7=J/ =8 VI-D$;K,H3 Q_6VIR9=5:4&Q"N>A1$G!CQL+6Q:-K A1Z67-O SAUG2X!HR^3M#=] M#%F)V!E1"#QHAL;& H&OBO!%7N;@+NI #4/Q>^$J@]1^#VKQ",LY'IXB&1% MR\9:*5'N1*P_23(D8\.]!G3SF.R1]D>^@2")/C<0:@$F?A,I*N=4I%-]%!L> M'F6X7K=/D>A0OOFL?T/7= 0Z3*>O^P(VRKJJ/6?DS4(HIUN/SW(]V:^?\=6< M7W=]7\VOWA =@)QR1$'80R;BQGH_\L;XQ7WBF^3;CW.;BV0E'8GZ3[O6X+XJ M6N31U@#4L^@D$6?[P,K9/>=T^#]//!2SW9S#.G]'9"C (,N?_1J_Q%> ^[UL ME_=<& W] ;\^1K-1W]LKV,- 9#!^!?U/)$^$7@T+O9R="6V=^UOK<0_XIW&:"W>I;F@73& 7Y'2!2^Y=RGR&I&XG;LLRA0V"!"P@/HJH2& MNV#""W&-SAZ-X,HZ>!!T&\J.[":'$DQ=\PKY37N)=H=_A^\#(GP&DLF'($-G M4 21V*!PBXY?07;J]S H_+>4JDM <50B]-@-)).8HNL+]*US<"3?<#&";[>] M=(>FJB+#R^ ('P=H@%H!-,,@)L'>789(%E^I2+$Z/)###9# /<+>+TC'Z$P4 MWAT25C+PZRHJO.[7CM( '^\1YT\1==3_EDR,BE_I+>1[:3H1A487M*>P$X7< M=64@0?DP);3@K&,2YY]_O-T+R][!P9$>%$L X1RGOA 4=J"%#";14]0*&>-YYTE&C>$![2I34<[ M19K6HP"Q:^QLXJT^56R@X8S#!21$)>PM8Z2=B=8EP_@G?"8?B?LK MF%T->/8AL#[=_#HFU/K>D8>[*BW183Q7^!CI68@8M)U#>*83!+KX%KS%F8#?@)7QUZGIIZGG M/T=2]],LY LYQK2W[E<2-$]/=V7/48=X+U&=+[I<419X'\J1/ 2!#E]YZC$: MUH>#W(#2>WQ>[,2J0&>I))T]]1B=7Q>4[![F(=+AGK@&ST6*G68=96+U.ME\ MKQOI5WKE2)[O]IIUKG.3])TW4'#)=;?HID"KI$]GO%"=TUIUP9OI_N84$>?7 M7141'WZ3G9L5/WG?4<,I0;(WFX7'9C*6I"=3?)K,;4S63.:G]P04>E M43RHZ(B90$15'1MH'YA .RSIL%$@LSEQL-[5;4,$^SD1%,%O0S",T48:-BKB MLY"AF"PSKU3&ZT<69+_]L#;Z2=E&Q"0/^A[)HM" A30Q!VC[K)\*///4P )V M*",W4T=0E^ZR8"IFCN/FQ4<#9[)SB+OQDK/WT ;?N_:\)";'#D]222>]ZK_R MY71UY%SV$:/+LB;9BR)=DXBF)$(&FL9>3X MD\WC"D3ON5$2S'*B>B0*Z>0OF:Y^8,H2<.*I_H0*X@O$;A24RP,/9BGDZ523T$]J9<* M:2NDK0NTM00&UHAP$&6?!>"FK[C4%M)62%NOT%;!N0$/2,N7\8C\72((B2@D MHE>(* M5(_%U"G+COJ'4"@GN]PFN%,!,Q(F7BW,;QD[6@.-E^JBJ3^ BV3G': MRE(P]FFG.#;J14F2O4&W%PED"%^CQJMT# M?I.><$8 DLW(H^ ="_L01$'S$G37@B'KMNG/@<(4 ^&!,X:C>X\ 3FMR7 +1 MB(GR4.%"$LE#9"/A["61Y'BA#QR2=FJ((.V8)/G[(CP?4&G-L9OE+21$#RM) MR'7F9%2=7F5'QAVZVH #W#^X2@0(T3<8#A*,8-$3(*^*<12+CI'!E[\R!L%91^%E'*5/K$VB$#_(L2+!1-Z%#PS\1YR6^0FU/]KVH=PP2=-/: \ M$>1=='-'L)[@*AC'-S>\M-%53*?B*)AE+W_@O>4A'"U#WE[I%2[3_AWU3AL3 MS)@0WC/PB%P7%+Y](J@4@ D7QB"^8A6-I WH&MQ>/,W\L\^N M+U:GXF(,Z&%/%">/@)S%#I[)5.X.XJ_W2=%YR<$8MP)Z_- ME>)^Z04_0]2]E)3(CL<(0#"CX4P4;7_^?Y>(]C!N<8]="O+@$\ MZ@(7X"+]"$?ZD6APN!\3,#"6 -<_(!\WW"XIK7B(M+P__ 5?$4-_0NF!QA3\ M[7W_PGN=O&/\%><>0^HTGP3"0:QUK5 ?^?]?)[Q5^>SB)R.2KWEM]QW U M*%R&@F(9K]^@>RGIR3XL'/=Y#,X]^? ELQPS899CF.7XL5F.KV=J_$1>!W/Y M':\G(?Q$R@+S.1F4!^(; M>*>>JU4P9Q)$CUM2.P]VHX-#Z)LFW"#W"O=W1E M$HT[&AD#44"!6K^F+SLY6\@DEO%M\)?L-%MPWXK4@;]D]U,;:Q0D+]&3M38N ML3')NY' CL$OQ:!$%M:"K&"B(UK_^3WO0[]$\GH73):)]);=@<. MC1_ #,CXFD.%J!#&T*S#;C=\%1G.YM O@NDHR$Y"O'N7H.@WO.^T8U3X[[3+ M]Y4O).WU+3B/Z/U[?"^!-Q:$Y,X/0Y6T]' 0?VB4G34#$4O7LTM>\2H>VJGO-*KM[,TFAQ0EQ"BV+L?TVF04GL'_ 1<@F\2M2;E\? MQ]6 J-MKE&*3:G:%+YF!T.#>OV;C^G$OET#RY0X3GH#X MUFWK0&-#69M.:9B%"L>7N #%=*C2?7D4,_RQ"T3 7C/1D)?$M'&SCPZXTOG8 ME]A &"CZBHCT>,O_?/[Y\QC2Z?Q#N-+!Z9VS)K2]#XWM)^_7O_:]KDY,CVZU/;> M"^QT="PA+!#(JY AV$==?TCOGT/WY4_2D,NC$)^X*0I 70,,Q#R^(\"ORDZ# M%D@+CJ.3I%[=!2G_PMU"3GL,981WU [# )?=P-'(#.)"1PT[%"3T?-[ /6;] M.LPE)+OU*(ZB" Q$6]"J([$)%4(9GUH%$!.2C]Z@9H,3X* (U(T8E/_8D;ZT M[%E=RVP96RQ#N;7Q7!L8A?C;Q ME^P\:![R5W.4SWK+CPN2<,0[-@$H*73J%,XX9/&!XMAQ)#NM\OQL"ZFC),B: M.4.,:N@[04%!27@O[):$W4_?X^U](R"2-&>D(PP)$[OSP0BAFL Y()%^_JP] M4G#FOA#+"9&+=0R#QH0"WK:(&?%T57U'Y2%\LP]D>4@L<5CR)Y$&EW_;RB*"1X$/5 M1C<6/NKQVDT=&(#^GE$.#N_U3HQ<_SK\_2R"O8Q&J"65MQ SY^^?O0:++%X/ MLEBLN-:?DX6 '9F0(AVLG;NA4($U3B1!,1JW&9AC/7E-(/?7F&O .I(.:!+R M%[K<)IS>(J>AKX.[_O *W<.!!&/!N*4 M0'1!]J+ -RO0)MB_S"U11C_ON]R9)YU8'!&SMV D(26+3>1T!14#Y^RYMQS MQ-F#GR:*\&ZX5/!ZYI/["F+15!C%"J-8OS7)HB>.<@U32:2F(YOJ3T$ZQE%F M,3G9H!).9_*#M[)4 [V&7,[IE)QO:4E#TN5Y%:U,'J]\E*J/!E,IO5"E32%9 M7.5\.L%;;X4BEQ_QPIU MJ@J&Q1A:>?+V]+B12K?Z1HW+QZA&NVO4IW%A U>FCU=NA%QN/]Q>=[+3$3NBCE<6\NURI= V%:I9K!7+13W5SJ4W<"5[O+(W6"EQ:Z&PG#J3 M5OUX/,LP=ANN3!RO+&;A/J?IX=.BRTTWV<2T4QO'T,K4\;0+6KO!)2EU62HVXG,ZO5UM1O'3$[6R;"]+L=R6 ]03 MM5 ;\URQB%:>G*C*]3OC93T!.*&0JV=DP1#->A:N/#G1B\Y7*WS_I;+8+=>) M=*/9[Z?D-EQYHZ#5=\M!@:\FQ'Q>?1IL=DWTS),3S:?YQCP_5#K42F'G M.Z'!R";$4>+T1/U-K]%_+#48*C9/IP1C4*K(LS9<>7*B2F*V["UKV36_FO<3 MP_%C*[\%&[CRY$1T[9G*Q)\6,K_KE[JS0CZI3>KH[2FV=33XX/F8SFH M,=WO]KC._E(Q,,FX=6*JOIXT;CS5[31[E*+HMO*= FBX"LL9LM+1((I3+6T? MJW+C"X+EWRCIPNI6@WM^$61D3G722YWHON9);V)L(2'#$7Y+ DL9I7SK&Y_- M%G5JD:/.X4C ==^)=N?/Z,5]!EK=4&)MH<@^XLA[_>CNB]_8>VIMCOSL -L1" +! QQ]>'F%"#_4!$X X2A^T]?LN@OO:IWWO.ZQFK 3NAJ"OHP__]QGY[%P+9!YIU M0Y]>.^+E-H(;+4?XG>R(S^E 4"D#O\P,R,<[DK?17/P M?-,@*;=IYW_&'T$/;ZFF-X&)>Z)SN(^_A?M+)V.I!S9SW^300.4@OT -H>0+ M@.0CB#G]]R.8%ONZ[IFR46CB@R386_ZF.T,M<=K<.6Z9KW0[W5Y4.6Z*.R>" M#V3P6]].UV1P8F_?.6X_BL'?LGF#S>"_IF?M\SV__TL4 9A,;DO<33>7X6.4 MJL\^SB>(9Z)^W?[F%N2&ILWDF3B;)J(?S5YJ3GI,>U9R4=%UJ&EV2&)7=RN9^[7Y. M B)*=/@ZMFY&V\5S:2KPVV=.76N3C<%L+#.U\4\A80YFD*#Y(Y)N.7\^&$'2 M(NDU7DZ+-WPDQGQSDP+Y;:.P36J;!K7:/++B2I%7PUQVQ*)$V&3Z9/S(AVFM MG\T[_[Z2]OJ'LP;C9PWF@UF#WQ:MHID3."H_*-5CZ4Q2-$#V:JS1&I43XY1 M]_G58#SNBH(Y3>=13G/\6JQ!!X,U/E"/_U/9X7Q&XL>R@S!MS7JS1JG!]_GE MII\IJ=-,XWKL, %C5C=[V1[5[&JJ/;>:>K&)2A&2WWZDXE>Z*0*@-'[X3>&8 M07\X:USUIC!--<_&=WR74I]*PQ>*J?%MZ7I*U)/ "!FF]KCB;":UDE6362]W MJ/8F#5F#N@YK,)^CB%^Z*>[ \=[RYZW?K5O]*SK1/U]O_=B+.FMA6JMH/I&D M6M2ZQ]2W/"5WBM59F\V]-#;7NZVG\H*7DDQ?H4"CE\MV]9?M>HD*W:!=QS+7 ML^ON^VH.7 CB\SGC8^_IGY4R#6JS0V6E\6MQQFUB.5>SX4)NN)9!=XX;ZD9B E2YUN9L"3QSE>JJ MM+CB/:':C:<<.QKKO-I0#"U5UIZ++X@;H%7')*]GU=WW/1&X2-;G<\;U[PEE ML-8G)0FHO)J61]QBO&ZHK>L9=8N.D!1*S>*8;ZJY-",FUV5AC#0H:-2Q5S3J M[LN"^VP3M*=;@O(UPGD?;=^='N=08+%08$FZC6J _RR)==[F*]=KV?63DE+Y M_G119%C^>3=93:\F7I1Z?M!=S08-?K68LY,<%ZMH-.K;P:"^25>2+X$(+]PL M\A:2^RN&W%!^2:S%1XFAY*79;QD*&[?;U],S4WJM.RUM=TN*D:;+DBSJG2:; MA>0>OQJY_PG1M)#$?Z$!R)5(G*729F^J M[!*U$TM?D=R#&/5R1S4?3YP+2,9?$!J1H6:[!AFH@GN!8:(Z&2F#>F!O45MD MH.QNK?V;!GZHA=OHEGR=RPX\% U=XTW''>%^EM=Q8WGR](YL+G*['-#$&83& MXN#+7;GGH(-GOZV2U\S1]G%BVYGDF2Y4Z_9S1:L7IK7Y@ MQ%0:Q7=( ;<[ULE[6E[++OI$*#0$PQBU%*9N2(5*EA+ZE>KB.=Z8/ ^GWW[$ M3UWK_\9]U6ZL]WX11&NQY]WL18^QBZ0=VX+>;BW5ENU;(EK6BM5!,9@<1G3C-!?KWI0;9%O+>[.6!9!ON@!8+UX.JI (0'%8 1E@J&D%< MB^D'814-5B$S=M=XKE*0Y,UYW?2+D&%LT8OE:TI_1C5[FNYEWCS+8P;T M3T&)J,(N,@;._'/T,'V_AY@W\P>U!R;'1.O7@K%#4Q1,R#OP_VBZN@@^J]GN M&<2@07@NQ A(+@P\(G-3?-.=9(02!)C#&8,'\^)^9F"1K[-N3)_$?FE6D;/T MVA.+"I\W3"?ZRB0=,LX#T[=Y89).%>S)^T7C^D+L4<39\H*W@H2FR)AIH0!&F2:@_ M.+_ O[C/DO9W.)Z>BK=(QB*AL6C>.X?")M/UL5_FU"A@W[9OQ ME@;B3,--X]U)W/N_8;9$5SC>A7\,NCO]'$TL\XX Q8O38AZ];S,#N*7YP08/ M!.F;XWPQSDTH)14TB?CB9%_,,\Y\4/) TA3?/K9!+7V*]Q1]2]@<##>"6X46 MJW<,#_+.2&5DPRCZ?IZRJ1]-F]_?W'[YA*D7RP8T\QA-=4,[?&TN*E18]_

,>3D[Q#(< JRL&( M9S^DK7,#!4QORBNY$>6]9DUPB*2.2]C(I )(Q&J2['3"]V:O^[9.)O@]1(+( MR\=()9.H_/,IO3$*/S&7*I([@ZW]$"\/;_!M ,]:P)HCDG@*((2+)@% #C;) MH G9\D\5.?>H,E)#HV/"*0O?)_EW[H<)H_+D0 M14HYGA9GPNL2B5.H$D2=F]Z[T3Q% W%.-.*B:3^8\7 YI$%X"(-,-CM^U/$D M.DCL-M*%"$J!MI8-7<,$@(8^H5%QULS0[>G,-R;PY+K!XAC#"%*FB68W*@^1 MK(G'0&+] (V&0ZCPSP5QK0V7?#P8871Z2(%7AX18C%@?&QD*E+'/7'+.M9]C MX3X.WW4V0.J!;R;F&;(BU >D_3 W?RSH_D>YT>$HMW"4VUE:?7N4V\\/EF)_ M:K!4_/([7G4]G>/+&[C;BO NS+LZ=Q_*0- M'$'> :+C8G7 I^$2,PE_ZMHCR.3=.L;Z!%NZ\&OP^82\O:GH>U.G=S*HZ]7! M3]BVD^3)!%V]WN,.'W!RSR^%';I!O2'DCOKD7)]^-R&ZJQW%$(F7J!\L@HG& M<>L'H%)D@20S!-)6CH@*W#2R-!TM$%&S,PG8AY5CG!T:,0YBK7V9PZ&UBOQZ MSM0M/^B. (6!!_4B_PH\K/C"GK"Y@V9G:YZ!(RA1]"[DNA'VNSAX@8OA]SS9 M]UPR3=CUBA$3"BYS7"KPR>ZT9-D=':8*JI8-Z 9K]SU34:?6Z.&7 )]L"_C7RK$'\ 2 3+Y,$1YS6N_]QE.!+IZ?DU M:V>/A[../=+!CEMH6!EH]WABN@$<2\T=\:Q!OB!N*"PZ).#0B;O1O^0'\.#$ MF$Y8!Q+GWVA$VX&RCR%8-T[I_LM1VD6"7[Q-&D=L:'C&<>E4QA]8R+[(^8,H&]ND%?A M?]X9M^6[A=$SUY>$G%A,4_9PU;2G99ZI]X_"MEESU)SX+^^M/@'%Z;3+E\0G M9:-DMK2\.LB&CB5^+L*)8>:_W+,($ U@Y0E@O$!GTA?G3(HQN5-,Q;-P#U%43,GU8"!_"3;V M\>4DP[_+!K9@H3PWIN! O!SQ!.%'UQ)U)YX[^<-S< M&\?0Z:+#UW01D]U!LC;D2"1UF M>.$;Y0PE25(G)ZR>VRQ7U:U5H]F-BR4*41)[1O$DVHY#3^27:_#P.QO17 ]- MN70L7I*V_2*7GS<3*6W)M:KY]F>B2:/T6;/>RFPX>RU- 3W/*&9Y@\IM'DY; M=7@"EJ@_[H3UWTNMCEY%7+^SR\KU4$WE=Y,^U]E)BQU$B9I1!NIC]TIWZ/M0 M7>L+7=#?&%.JQ)?E>3R=XV,F1#7#/IRVGKWJ7?K.1A_70TYZPQ=6R5EQMF Z MA;QD@U9,DC^5#^?JLOZXTL0.7V*5?EP:5I[J4\2'R=<4G0_*. Z,,7E94<>J M_W1J@"G**W&\:(Y_#WL_'(W_&QA\!+X\/#'! S03"_9LT?0Q_59-21 MU]D+N^WE5!;Y+"Q@6EG\'*&BB6Y+6?BM%DEV.^Q>A+_7=1S]-9+!!.5;AY"H ML]+,0F[ .1]']1GOPAWGP,-MIM3%M$NP HG1L KP5?O-B)IIC9!QC24T%:?H MD:T4D\5"KCOG&;U,K7+-<5=_R;['9?%31/;:1HG;@_917Z:]2G6V=J' E5(S MSHJ-02;;QQX-/;(#@F&>N#,P)>U%A$02-,9'Y@OD?)Q4X'GH]\3EI2RY"4*R MYL^W\\D0W9_WZ<0XF\;)/H>?XN0NYU=#WPF*M7,C M>J?Q1L%+QX,,*D.F4% J+=HJ2OP&AH5=J0=\ZTNG=AXDD7P99SOPQ()B.S(< M/M5-MSZ,*T4C)(F/K(NZ\017IJBZA('M_M4--8@[?XH/._%RY=/F\GB"(@W=AF\W3KJMS74L^*VZ\*EHK4_:R'[?4IMT41VVN.5$[ M[1FU$?/T]-N/<\;CP55/7/7[W/Q;0/BGNQ4% <+"ZDEBC9?AF&?,?K4M;1OK M+@K?O>:0^ZBBY^A-L?2K#7>"@*5G,'P:#=JFPMEL#I3&):Y:2T*E-_Z6E_K& MP/WI]BY! *[XV)O&C1?AB>K6DHFQ51/B:0X+F=.*[(^VC+V$#!-X 4EH8L(; M2\:IWF[BB"^9V5,0R'/GW7S4KF FS@L.L MX)ME!;^2Y_MJINL-\WSWXM6TD/VK7$[B[?39I3WJ,6N>>3%4=9U1U':K' M?_TBJ6]S2E:P3\"I:R'%P\1%.0'(?,,9A[)%;AGBWC+=.BWBQ])-IT+X(9)5 M41#TA="WDUKG=WF2.NC]T23R1?+PPTIQSTGF)H*8IB[*^$$^7XI328-,,Y_3 M U5Y.V%@9&!+T*0F"8&^%U\ @0/;6Z<*"LBK0,#@:0WDU_-)),[?W$P2\NM- M\@W?G8_0(F#C'*AE-0EG*#@YE&*]IB\YL.2-Q+B;TSGY9@!/#IX9BGW.2]RNU)LNA!0W$;?8V$R]/Q7R M-QCZ- 'L8_CWS=2O(Z[%D9YK4M'O)VT=4,UR-A#8^K19X+O/QF([5D9&I?L; MV1\_1S6]I%W4>_U"8<$L&NU%*YM9KI]17/DA\0XG4'#8]#4(QX265!_F!7VQ M>GG6ZE6E,^L8O^$L^CD(JWHML;;ZXSFW2DQ>,FU;+HL5%%-[)8?[F"\/- #B MLT8V+>$O>"=?A]QOX^7$.;#^ S8G%R!LGH4O&%!FEJ^FQ$4^)CT+'7JD5),; MY&%X@X(_+57I@YR7OPLX8?R\VM7KL22_*O(U=5-?RVQV\V[7C)M =&?)0Q_D MD_Q=X(NQ) ORZ13+53NC:OJ9[EK9)YRK>4JUGYG.\T%>QM\%U\OT99L9I&R9 M4FV1SS?*?#>O8^7FE4*87W4CXE@A5/J1L1,X:+.G07H(\0M!^@LPKGC%+#7= M/ ]P:3/K/V<3Y2FGELT4F/17H+=H?_L1.&:]$3S6Z4HJ-DGP')>,SQLK,Y/9 M5L<0'II^IK'Y,4'ZBH<4^ +2?$IQBB9US[HV#S3O-\J'CGW'UZQ3;^&30* @ M*TB2X2XN^;#H7;[74=M"BXLMU7QGR%3*XWH@?5C>F; ' A\JD!XK+T.%A-(O MY,RYQ )POH%)JJW]>2@368,*-#&]U*6N(5KTREX=9] 86!O@?.06)9N^)GZH MVY<4F>JZY*M?/BZ#)5V^2!*)LRW4%NWH2TY;/'\BS5&2%]PBT3!0Y@]N2 A, M\[!8#^F_)MH2KA5 62G6/HN&U-OBVHI/8L>A5ZR<]=7>^,*PGNU(9QEM*F+SNFP\>:PNBQ MMFX9HV06"8IOQ+/OK2S%!SLVKU@#;F=DIN-^N3;%\B*6:O?YG2Z*N^*VVVJOVG#ER=N[=EL?F4NV M124S968XV%!USD K3][.C/F*T(D9*X[)#I))JK??5(MIL EFXK8K0N#EWZ[/4J>KDQ8Z_EHGFP6 MN-B.[66*0W$C9S;0N#A9F1E7J">J,F6Y55RIV)MQ#Y@=XK!]WAU6%+'FY:96.[:(YHZ72KSG?5P5#,G MB]WCL#!XI OU%PTNI4^7LF4CKJRU37[1I\IMF=_>R#Y%070;#^3I9).==A,H@P%0BFQT7^)99*T'3Z5Q MC^+K!!(8E>;,WO:WHY.;@34% :?INYT\B+X#4&AHXE=5O*5'6H/[/92.H2M. MKU>G@Z!PFQ)O?%6_5N#-.Z?;4QRJ\<[ASR!5YMU]^_/R:V)Y_=(NS_F\K#22 M,3TETS7]!^WS&$E/WWB*+SK2=HYH!M M#]LSO!9:\^*E0634UT(R5G\UK/'+C$WU8^(XD>!9,*_^?- +B]7 7=7V_=])CW64-\[O!/R#MQ56MR_TWWT M1Y;8_*8/DQ1>D3D0*UM>JI_IQKRXHRCN8^^M_!?.$-%M$W[)_/O[ M+4Q =Y\M:'=;4!1Q[E9/3>ZXG-4V*]ZF*7N<8)AB<:P/X],KV7^^1&'JX?5Q MG_MOHC^^<_@G'DWJ96.3Z;F(PX2E";Z[/_@WA;*7G0VA'%Z1Y/X>IDK[QJPZ M>=*GN>B6X;[5>1I-3O3F[%?\E!3]D$S^^Y6QKKZL8]_S4;;C!!*9"Q+W]QB: M(?N=)):C2-&;&=U.CCU^L;M4&)NZ8EO@%IG\'L)P9>B M_]M#>.D0,X'$#/V0#IDFH*BA'Q(AVP03-W!O(=L$$S7T0RH5HB:8J*$?J%"B M714W_[$,I$A_F-)\+W"XIGIZ9S" )AKZ$,]7_D4^91_8]/4A(&AF[,QK M/HG"F(=4YKXI[,0C?([ 0G'\]<3Q-R=P65#R1PDR?S%J8WY"#&][U3R_5\H3C^9!(SN#J46"JC9:#ZE+PKTH2+[ MKN!QDYN,>%?O"B[??OS/!YZ?N# _ 0 ^^8'#37Z(L ^)GX7)1]=X7:4@ZO4LK(M;*AG^ M0BCVFYLU790%>SG/#,:4K"2-Q^*(C[VPFQ$[8E$R8I1*G;8._#B*(]=_X#GN M=AK![SA1 P_&:PHN*A1Y1M,L_P\9GN5Z>TDUWSX MW'Z9A8U*KJ'D2J)AUM%TXC1+]X3DOIK%_^V'VZ?\CS'P;Z@: M!A<(KI?CPY7!4(#^MN;G=0S-\6MHDQZ3PW5%A\O==C>4TQLMT:NM M67G!VH2=.JKNJ+&PI4MKG-%3MFI\YWYZTL/5FT7O1.=I1$&F$R&D]C5\O.)K_M*"(21$DLB)*G S7^3!=B31CKAF#IQLXWO2=T'X;NP]!]&!0I M_6O:(AX;O^=NN*H'3.LXI:3GG5)KP'4SVE/,;-L<:[[6G?V#Q;2@]BOY M6JTNZVI\G$"&1'*:0OQJ.IU.F@J="#&$@5,O!@##V(]Z=HOD^&<4:[ MRNJ5?I.WJY3PW!J7!\7I#57-Q9Q.E2?IUC-7FN7[I9I:H=H[),.22(;%V7=$ M0;Z>$Q$AZFIZ9' /'CH/0^=A<-7!<])S5ZB">'?2V_)=)M.,/;:;PN:6AGHU M7A6V\I*9+YJYW71%-9H[9;H9I7$,.15-)T.781#UO6#!+'09WH,F=T[\=.Q: M/=M?]FQ>R#PW"T!ZKE28&P8L2HET+6.G=PJE&G&U.#-J>G.;A>('18#3T3AU MM9J2.[.8SK>%)6/ ]:D!3/-[Z"T,O85_JKONR263 M?!=)%(H5>-AXFODG8NY,"ZC.")+0.?,G.6=N X307_,1_IJ*UG)TZ\)$[F*> M/1CZ$IO/:+-?'.9XF[47LWD_GF">;AB]TWI+2MYU$FT^SW!R1VL7M/)\@^9* M(N<-':69=UA/H?,F=-[<7#J%_IP/\.>\)9YVQ=WJ49\_T537;EHRJ"S6Z5CV MACE@[7B9?BK.5,JN-IXK I,I9_M8/"'G#A-EKA>:"XRU\#[5,/\$[854?*\8 M>JE@5U$1 P.=X(BD2YZ=SV[T&# ;](+GY[.A=!>B_D,4T?S:$?3N[&6_P)\/ MK43=K#Q2O#VAP<#*ZJM%]Y;5!X56:[E)J%VJNK7M3B'7L%>-*1I>CLL/,LGK MJZ.!%VWWH:$&D,<#)@DO>.,^&TIW(0D_1NE]511F=$.K[=;C'E_5DNU%+)NR M:M4;ZKX=+K]ED\7Z9J%NY.*FO^E)2Q:+0MQ#A::NUD,EN'P8=L3(@6?$($_ M*P#] "5WUB=++DKU,P)]F*#E>+8N;?F\/9QOC8R8-D!V1..Y%_%,-)X^;0GP M=^@=#*1^&$"V#9APNT/O8%"$V_64T"M*M[I1YQ+C-B4O5K%LJO%8JTS[5!M) M-U2$FHS29WHFGTJWK^;P^_:CIUN"$CKWKJ!?'D@2%DH22;?'"K@+@7N%$6J? M#8Z[L.]O[QEL@'/2,BVPZN!IF<:[C+/MC6D5+$?5X4ZVXC-LTCJ(!V-BM*I][8; M_H\E0#3_<%UV(Q,Y(7H.Z#ZRTBD?D(2'.WZ/Y*\_O%?^(_[ M5%$!@H&88.:\VB-Q]!:'!2CJWUYT7+O>BW\\&']$JT>0OH1U* Q&\6_D;=[*^+"[H<=CHSV=>[,>961/;;!NNI*GCI6EK5GO)^/F[#E:?'GRACTW[,"@MJ!>*#:4_G MGL$"O?[T^(N$P:^?2F:=9]I#1BF"BIQ)XZ7)XZ7U%,V)/>,ESLO6]GF6W8TJ M%0DO/8%4LY>(M[K-?(:++1/;=3G>3'/-]BA^"JF!-M!*RO."XW:9^8;C=_-J MN;R!*T\@]31(5$M&BEGPI>=EVF">6I/"#(UB.H'4"K1G-?WEJ;1H/G&=RG)7 M3#%%-$ON%%*54E'H51O%.->= R;ULF7R%8 V>@JIG30HL]OU-L7MM,5SOKJ( MY;DEVNDII+K=>:;=U;LQSF8?!YUZDBL-;+ST!%*/8J;>':1S(WX5LYIV);G* M&S'4]_]DJXW"RWC0[LQ%OB\F^&Z^S!?[?=1']F3E]&EFSIC,F*?RFT*]7DFR M[68,K3R!OMZU:ZWJL*VOSQI:D^ M+B%%)T^A3TWL>CLF""\<,U)&9:7:2[04]/93Z!?[>CM1BJFI!3 +\@+]BC"=)#-YJ[2H#L95\ZEF<$!$.SV%?J:=?%J+]F!,-9>UNFA:N9BY MP$\]@;Y:FS]V[#4\>/*I4[;']=1.:J"&:2=;32PG+]/=9L-1S 0,GSDJ;@^F M&[CR5*#Q4-IL*?+,8LR0=LNXO*7ZA?F48^3R:FRVH15[\LQNI[%9&O6J0)6D3*[QLF$?^?X4 MKCQY)C_ERVIK6JEP@EHNVM)XPF]$7)-R\M!A39UUF-4*<-7GAD S_9396V]0 M"M_)TOKSDI4QD1*3\>2J5#-Q[6=EY^TVJ:6 MQ6M/J&JR-K5Y(ZU! ES7,F"R8U>3-5E[0E;2D]Z%8H(:4[L5:&S:TB)NT&2M M2U=0G41:OZS9).*,OSF&>G6AL=W%M S%",IX&YLE,[2Y&:&E-+$3X#> E+7> M6LU<0\V/K-84N]B"K(FK*+R)JHV!+"P=ZO41J/O /5DS^)E@ QN0Q[;$.;3B*5'#+ &$/H/D;?;RL"U M2_A_]*DU ]!6\T861G0#/=BT#)O8BU!Q6YY_'M[(3%B#B*9;D1VP(F, X#L4 M:%M+Z&T086M9!,CXPZ]!,[ %;8?,%SKUCPF70'U0@FMM$Y"9B.8D?_Y8-.[8!OX)5!4T\3CU]-][K]R MO99=/RDI%4K)19%A^>?=9'58*)+X"4/)'=X0#&.4[[0DADHO M2WQ_6Q8F[%:O5;D--.T>F!,+/ (QI[CPNS:8&#^8F-%0?DFLQ4>X5WEI]EN& MPL;M=O9F8,JM9VN.XRB+!V#59(QMK92-MQ&83AT5'I@DV\ \/@.$&RQHDX&( M"@\],R.$A;I@:>$L>6B]12.((#!PT9&CD-O-)1"1O:3LHM<%.GV6-NG4LKG- M#[45GV_F]:6>+O+U8OMF0%\/RW11>N9JBR1CCN/I3FVC9R#0V8?T)]$F?98V M9X\E.<5M7[3%:C)7%LB6[G4Q@3%B\ T?F8CCH01T@2(:9W"&/PWK+1?3^)3-TS M7^/6^H4HU<_0N(NOLP2M;A?+5I?OIA=J?#49M%YFB<7S% K;Q,-IDOI5&?]7 MW.8?!H;EDBZON*J0S^%> ]"=B:_NHU&]'W!.O5N*$ M>/DZ! O <0+_?!J4D^(EL]!"_60SH1X"1Y>4@]4*,8"B)=0C 44+4PZ MQ$OP\)(*KY= XB448X%$"_40

G%6$#1$IJ40<1+:%(&$R^A& LD6D)M+)AX23ZD0KQ<#R\_V:KES32+3P-" M^B> <-6$AD^%P$G6YTU \E8NP96+J^\#2&_<^W=--J*NH __]UOZVR]"ATD_ ML/'C5A0W;2R6_GD2&Q^\TP^_;S^\E$Q2OL!24?(#RDG\[W_&7YVB;D] J3/] MI.Z9@-Q<=H=^Z#W],(?T$U[AX14>_"O\@[DC>] *^LN+TP^[H)E?E:^IA\QU MP?/!!((;LO\!E'$C@?FZC_?K0^ M;VK 3)S0HOET@7E=AOE@:8E+/+^\K/Q\ MHH!BY)[((KQ$PTLTO$3#2_03Y67RK@3FR3T:.F="Y\P?YYQIP>?KTA^@-P1! M0-Z76R;OM&()B>,&Q'%OGY==*4_AH"P3#_OA/)>J95X?N/2A*P3O\].?M'F?5? MATJRN/%J2"174,2^%)'<6T[7O9!*^HO122A,KF+QAS02TDAXX82D\E%.@"]% M*B?RY-=B^_NYGM__)8H 3":?22]9<67+!II=A'JYRQ,9M_^6O<;GYOO]1<.X18RY=4R@D/B^K4\XA!N(5->Y:8, M:>N7>)(.P1:R9*B\!@ANI)-I"+>0*4/E-3!P"Y77D"G#FS)@<"-=)O]8N 6N M2O%RV"*)WY"W3;@=8$1(VTY=,V?RTKR'C,6W C)N1"[X18._0K^_/,77-*Q1 M1]"F(+N53?Q;7=9DU5;KN$G:R)GC.WIE>F]N5Q?FNI%7!-/$3W&_XQ)3QT]+ MSG,3BV&NDI\J.R[9J12RZEA0BLOIP93JF G$[Y)M[(!@N&.%E]+$_.X/+Y.2 MR.;D>%.^D=6M4K='4W)\LFCV^Y58O;RJUN+M5YG^VP_:X^4#T+[^I9C[I8]$ MA["] 3HV<]:FV6QE0S&=<3PW&6B+U$OV*NC(2<7MH#\KKA?-1I*5.Y3*&N;F M+710E_ 1_-2"P&>3O]6B^^JR^7\^+*!TN\0'/&[;?RKF(7%\KH@C"(J&("+N MB-B0:[$8X.$/HR[D$4DPI!'?+8R>N;XDY,1BFK*'JZ8]+?-,O0\%HE]X9,U1 M<^*3%E>3!JG'Y\J\GE]R]KC52=3U[>/(;G^+2$"454$Q__=;C#V0#=\U6Y5T MR_G[\0SX5[:'&^%\BY@0S_ +K#/Z71R-4K6EI$]:26XE6N5E?#.LQN>;47*4 M^/8C$TU0"5<.N* -!<$]=-*YC2"X@31[31"H$\GP=R@:/BAZ=_>2X=7Y8Z&& M$$3)T #6&2D@]E\*8C)T;/>I[CS)%R?CUFA>R=[25'C,C>O+71X4>::< M:><'N43EQ M/!F)(I8-J6\_DM%D.AY:"Z&>\(L3\D(](9#2X;S!,*7:"W/9ZXN+O#G.VX6< MTBO%D,' 4,A@2*'A41>UA/LN2".1W0)8 T5? BEB 7&FZ8H^W=UI"=J-0[W! MSUX(9/37([B>1V\=).%E]C M*- &EER5J-)H_%8$./[U(L!OH4116MG$LI.9+[KR,OTRJ0Z66WUS%90,9IEQ M2Q\K4TX>M*L"W3+Z4S;[!DHR5PX"WT\6W)=->KN9;/^, L3 *'P?XR!^2YPP MS4%EI&O]%)<#3)7,\W%,J23\]JOZ$L^1Q!&03/TE<3)>]W+BE"KR/G!BV%JQ9K(_9Q5)Q5 M,DBXI*%%24?CR5.3\L.<2Z%T^>S:TAL*EYO7FH5ZRI6$RWG?5-6>;CA-ZU%\ M=3:Q-^WGT7:SSD)!@H+9-!NEDZ=NZE"0A";//92M!D:4?)"/^RU9TI974^%I M4RE30FN1,B?9Z:HCWM3F&2^9I^8XMBOPH V>$O*T6-+[6)K$H='#1I-7S(T) MI4EH]/P)1L^7$R;OMWHR*95BN\.7&I7<,+S]!!:;KKQ!XB4%E95,-!D_]:F$ M9D^HK=Q%Z7"HK5Q+P%Q(XV426:EH,]N%(,_2@K31'C=CY$)!47EH^632Z0\/ MRW]B#+YG"% 20)!%(%%$+/0;7+X(ZZO#^NI?X>Z>1T!93<*_-"!MN;R]+4Q[ MU6%1G'!-+='9-MG$JC6]3GR]7R^ :6TQXCCP4MTNZ#%GT&]66#-?+[[^.D*& MH[DQ[@^ 2*UVC[48N[(&5/8Z)>^Y;+PB]2KVEKTK MR.>PT/HCA4*?$\9LJI:3*?LE_02VUTV0JNFY12EGUC=CNIE_ M[FU&:10CIZ.)S&L:6"@/[K9\XH/]0'^ T^=KB8/W>WQ*L7)[8G;[B<6NW*65 MM3X8+X=M*"#2WWYD,IFP@N(KUEM_;/@ZU!;N33R<]]?DZ^7Z<[*CIJCD^*6U MZCUQ"VN 1 &*5"?.R()0%(2F0UAY?25IL*ZM&$5B*_0",+DJGS$*@O9\T]IK M1=I,&[-)8K#H)SN]20Y,2]DEE@?QT'@(C8?0>/BJ N']UL.ZF:;2O6=3H^RU MQD_78%ZVZ"D2$2EH/M"G B(T'T*=(:S"OG\1<=Z",)AA65UT5F4JV5T/"ZIB MZE,&:0PHXIM,GW9O^UI5V"TH,=&XT[#N.JR[OE)4F)"8Q^^K&"WV#7&]8%KF MJ&UW"LO5E:+ ]+,M&G,P[RP8/0GJ# 3[N/56T#'Y]:+ APB@I+1869-/3F)99JDP[13= MAH=-H+XY-/6:QA8*CK"8("PF^-IRX_V>H&1[,.%3XZ*R "-^,)02FY=B!4F2 M-/(5IY)7[-P=BI*P7#K40 (N2P_EX9IM5H8-+/PJ"CD MS,9#]2.T6\+*Z"#XG8_$1IWOM0R9VU%=M9DOR:TJ&%(WK8/.4GI;'DZ'PB(6 M4S9:!N2JH5;H\G_Q_]MZL.7%E M61N^/Q'G/Q!]WAVQ=H3A:$;T/E]'"!#S# +#C4*@ 2$A@08$_/JO2@+,9#PT M@VQK7?2R<2%5568^E965E4]O\CQ>#^#6Q;_T_$2EJ&CO$ODAT9WGGXPFY[F+Q.Q496.VPXY$8!W.X]CRB.[GV\OG3A>_^EU9F-&^ MR(_7H VNK2J].4W9:]]2)O6J)DQ8/&O]'9,F:;NBK& M_@?Q__L6:+ Y,7WL2$.Q_-\<4U(>7>#JK)A',BM!*2_0>DV[;VDVO.C5RO-L MJ<*6E\M1U?8F7IUH0K A?_VAB2A9_H;1AQ^!)2% S3#$);X1E+P_1K'L*JTJ M/9>+7-WH<7:?[PGL@('@0@-P.1/MC!+MKW:4^B/ !7WX0",_Y1XABT(JPX M M$Y+GXIC #_@&&//<@T "CUPC+R7:\5SCK#5"DFL%/"] 24.B62\I80VDG6.& MY2+A]O3Q7;<\=IZO)J4.DV5=22*FK*-.=<+W2N Q;+3GB?8\T9XG I-/;WI* M_+@FT&1URN9S]5PO+O9QW0E\E>2O/^29\K'1KB?R5CY^(AM>?(F\E:MM?%9I M7;(YQ1LB;GIN.,->#W$XWU?Q2:+/)*A_E\O)P1LZIB/H7_1NEP6<+!LB2:+@"Y,*S _^^6UTD?/?!0+,@O@4AT:MS?V]"/KV2$0%&M#VY)F*\>FOTT0,/!63LQ0LU M&>$H/=FJ('5OT>]5[&EA[-YU?Y(>&TBNPKQR?W*4@@L1@?#W.$)-\Z4_Q?1P"O/;UE=B4K5XWX6((2 T9U:/:OVSGR 3L'O8:"4@U7V(Q. M5!=__@_\LWWN2)<$"VK^>//RG1;#]VQ $$'^=8<3,8S8&NY.4U$B&(??:__? M__ZO_=Z_V&)\9.JF]7MK<'O#VDPPYMN>(L6'EB1H<4$&;_XMZ)ZPLC?#I-$$ M26VS#7[OC!9.1(Q.(*E_Q?P?422!D_Y\G$SF5%C&]Z9L8^IQ79*=WYNO;3_S M[?2W_]C_S$S;O[/[VY+ 8@A62OCP@\?Z@G',V6\,+$B'BD.@B21Y(U$= 2K^ M(IC_$V)C"]K^_W3JF;.J"G\&)@-,7 \>ZP7]W7STZT\'6E;,E&,9""7^/>6- MY@I_]J3^FJX>SO3)#.[-$(HGZ&VGMWF18G59%&D,^!-#5/^N);DR5N-RK\ @<9HKIK#1"LTT 8C T.AARX7"3!&+KHVT#*%W"N:DWM(, MC\=.GTDG!T9AJ>,,E^EQ+7O.9*2.6RT&GD39GH[[6MNL\L>:7V1P* M6YZ\?:#A2+S00G)(/57-=B>(,:YAL"6,R!PV[<3G]9'9MRAM12K:0HU/JQKO M\3B/'+=T*)S$LQA#<_%YOZOD)+NZGBN@YF::K77.94LU"% MSSP94AL3&VR!E;/<7#=*#ER>") M69&N46T)9Z<"UM+I?'(^]N#;3P8?;_?+\\IP&$?JO;11[\E-&)L'+4\'WQRD MLP;&)4>L5,BM&WW+:9$S!JCHZ>#'_56_1Z1=3D"SA5&&X$DO>U;M^VA%$92) M6F$S*)[-R3UNI"H,4*>39[+Q47LZ(4LB*R!+M)QBYD,O=5;M&TV6:O%+ZQG! M+G^90^JH 1G1'GQ!+FQ0Q"5;C\/#N> M4OH(Z2IGQ9E:#LO3['Q@L+W9"N/2:6G*$DCA!=?D*;G1(D;SUI6:W6!YW:L#]D>T(V75U:2V[0 M@SPLVUDZ6JF#[PUYE,C6EJNXD4(P01\NXV,JA=H>#YMBMUB1)Z[MJ/(J^$@U M@&=B,[\, /3W8L)H[JH6:*C" M1ZNRZB\"ZL[!BPF^AQ?S!#OV^;((:')67V;ZQIS+U#/FS*1S7#7W=MG]K;_) M;#IY8>O:VPR8"<;+V9+LZA55EO8*PM-K*SX=JVU/P_2\B'G#&HL_>[_^D GR MV)^,P6[88/!P/6Q+,\=/R0,+[E,,#B@1@Y,LF[IN>L!YB/E.:YEBN=#U/ MZL:>_D8C-EYQL!T%'K$NS&SI]_:'_4Y!+W+3(>A+C0(?[-!EW=NN;OS5TSV! M8VW?NO6V@A&]+Q$3)WP'^/7M\9[WM_=\$SQ3!K:PG9+M[W&X6?\=./@>F(0W M/>O-7L=_\;:I, 16X#K2/3SJ]\1UT _L]U[V27\9ZL BH81/*&@B=;%V4227 M!\D%2V"1P810,/AE]NM(+ _#L8LWN"*Y/ ['B$@PX1-,M+B$4"AH(MJYA%$L MZ!N4M9%@'@1BB50DEQ#*!7V#K#J2R\. C(ZV+[<3S ?OC+\9JKSS)-PEU>NB MXQGN 8],'7[X__TB?WTV>H FR(<6G_C,!?+AP4LW.1=#4Q?]DSI+DF)5\(>Q M'6,-41)?SIJ"DATX\K2MW3&,].=O]0=)X(^M7G)M!:JIQJ?T)X+:T)M*(+;3 M?\_;!/99FT")!/J]; (>6U\)+=\(5W\G)<"^FPY@WV/%O)<&X DJ@H%/!DJ^ MDQ8\EGWC]CCP.<\G9!>.]G.J8#;8+HG/D49CP]1-905SPG07>H2@TY(%E,,. M,L_/+5+B$Q> M9/@J^CF7[6U69L4<^=\Z*.Z8 497E]N"+FUK.K)./MFPY*K!JK:\2E8+0ZTG M?KRFXPFQ5UW>YL@>YU]V=I!PYD96K4=(*#5 <:3-R)5J=^ST,A5XGP#_]8=, M7F+C^SN?.F3V\A#8"-\]UFO!!A'!!KQTN0<;V%_"QC->8.66Z]61?+(\[JSK MW##951X&&\-"BDO+59+6XA+;T)5V\IF;, V* ;Y.G%[\C7N!9HA&X6KH(9 MZ -X?D.%&9?)1#^'&8,FQQ(:(N%(O)\;C:FI,)\;CW,UJ&D=\2AI;6M3(/NL M+XDR%#CJMZ&\/EL\97 M)FM+F^97BKVRB^1 >IRWP;9H8R&4TFLMKX@ML[,<-*LK>$$9Q7SH(%/7*T0? M@I.N5X,[IW<*9Y9DPP@9&)HT$X!&2/KJ(-X#M&I[U_!* 9^?!IRI$ 1$WXX, M7S'>$Y[@;QAV<9_PR"#L^:!J,X:XN?&Z1=;5R)LD:U4^P\89%F$-JH&DI,]3 M>AR"ZRFI^ZD35IZWYNEZ +&>W#L)B7_'GZ&^K#@SD]! M#>+Q8PT9:GS"&[N$&EE!+$_:U )E>W+>XI89I9FV[H@:PP%"I>QN?\P*)63> MYNA*:J3"ZA\40 WT)JCQ$SV-QYO1?2 #?32'6*@@X_.AGXN.1M^-4VXZ9[-Y M;_F,Z^J\D;.:]X,,TN7$J9U/KI%V><46G^/$L\/"^D^I7W]2R4L;MB^CP05JA5FT=634ZZG:#D,YP8K>7[3&/EYDM9L#35ZR*+:021DJ2 "6J@M M#%@4$P> B9S21$49/+?.X'FXX3PNQ>?A0P\99AQY9WUU32Y&)1%#U)G=:U@Z M3KC-CU=A_VO,,!=>A1'YU%+KS:DRU5VUEY@',8/Z]8=.HE'ZSGW3=QYN-8_+ M[WGXT,,"&!\KOGIOP.A,2+)&$&4.F3?HBC;ONYI-PGK:J5]_L#<.X*/[%X/?%H$_K@:?":J+^ZE (S\MR' OQIDN MUX)WS-@0_K(I@&X_HN)X>S261%>73/E"[?&)1(J,JBQ=U(('E8N+:EV'4"Q@;Q55(PVC7) $%56+ M"TVUN#>7E3M,PJ5*!7U)L& ))\@ DY5&^R6" MD(WY$;&E9/@"\U<)'06+[\^[%Q8P_^YMII>F+.44IT$Q'/P)PR_5M?@N3A<9^5;?V;>Z-H)%#M9#00WZ4QW/ M/(-ES'1(J-U*H<;&J75NTDW.)NW:]J+G$T)=\@#\P M,G,&@4JY>2S0Z.G*!Y/!6"6))+?S9VB_=)!SEBR)$%V M)"ORKOX"M7[$]=P-A(7G;.T;X9F?B1F F7X&S%@_K4\2]S&-@59[ ='JO3K% M/[O22LLH7I>8+)%L15+X9+!!I(A+53V^A7L67+65_0S!PTS(3<&TR'>[M>_V M\#3NQQU#/GSHWQ,HW^'XG4]5]SK>FO9<;,ZNJOFN8!=D)$,S/ WA$*6>"/K- MT@-1JOHU4M4!%GOPGY!?F(C;T@AJ(,S$LR7C6/WRIBEZJJX7IS-!M8(*'/;) MD5--L"Q> WJ::NG+&ENGJJ,N:I?YLM;\]2?D%\VN-P']EC[MTLHSQY57.%=. MME2]KC.__ACF&8L[^B"F[IX?&XV!8DGP3H(54S:O]SGRRDBQ(52]\&GJO^>"T=&4X'A0)I-W/8*GIH-)9*F ^SN6I''V X;ZJ M00$G@N4#-("3H!JN$'Q%\%_$DTE:I$4"Y4=)4>()(CGB:0''^91 BHB((JDA M-0(B^%]A^PVPAO'%(4#05;FIE9?%K.:D>"XY4^!L'KVDC/&&ZRPK2$.>FJZ)5F31X[?6:V^BE>%6;%YHK/(M@:4Z#A_?(<4NLQ$@YJFR"EDT%E56^ M2+@.;'DR)-65RGC'D 5-:.4RC62[N_+6SRRR%=I,G3ULFNQTSLYJ:,\TUG1Z5KG0QI0*O M_I\,OFFLBUJYTZ0UH9TE5^/EJ$PLX.6]D\'7I%E.?^[B!0VC@?D64;-??(9O M/QE\KFKV^^4NW='*4C7I6/E&IEZ&;S\:/#],ID:(/ (*2: $3U IDA?D),D/ M<3DI"A1&I.2M^M_XGEE% J @U6<2?):A5"3!ENS3FV.K66\DC-2U@LP;W;Z$ M%2?2LL$$" >,&^S-G0OM>-@,O=$]LY.TX:-=SYX#1B1B%99IL^W'^(0[+W!W M85'WISLFB,#_56W'\B\Z^!AJPWKU,5.6U9$4U#D?@;V9H(+M^]Q59[Y+$%1" M!]H1'PG&2-)U_T:RYJJQ[54BHHUZ=)YF_W9\5:[CT>HA_* M8Z#+)"#2B8P*C.+K88V_.F M+9+-(/$T+>D4BC2ZP'-XK_/QT0&C&(]OO#%-1CA*3[8J2-U;]'L5>UH8NW<8 M<=?5ZU-;6FO::HK8:)?NU8RR]TY_>*-$SACHC[^/&NG YU5E%;BS E#!F.R_ M?Z=O\$.@LT>>+A#XDZ^N)Q=1]ER74.P8BX;OQFQF BH#G,? N+8--S>CG;%J;]I9DNB.)''_ MX7 _C2;_8Q];<\R/K,1-.>[:N\T'G-?@K[HJ##=P$!NN8L)L9IE+H%L^B\/_ M"]MV(TZ^-U!]N%BVX!S49G/X&E4:SN#<&VSX;$"6'#U56 4"EP>9SA48FFPA4VG Y;5AILZ+9S8EY]O= M=%/R58I?!-T*:E\(KF-N/PAJ7_B?W+D^QIL,5=&]\@?5QXB$$CZA!)6=([F$ M3BY!W>E(,&$3S!MT79%8'H9C5"27$,HEJ(4="29L@HD6EQ *Q:^ '8DE=&() MZG-'@@F;8-ZB-(OD\B@DQEC58:F8RR*0E,1^S: M]V?7_@[6?9X\^X=9]VVXL3]DW:@AQYF:V_.X.:N:2(E<:^,"O E, >M.7B*G MC%;N&_!@?WG3?I7F^J>8]DU9K#]DVE3-7J240I;2U$%I;'1%0VKUX#7[U*\_ MZ!-*7JKE'S%6WXBQ^AL8^"N$U#_,P&_#-_TA Y>*0J-(VUT"D32L;CERO.YE MH6<.N:71)R1Y1;:.$!RNM,>FY<3A9&72N=_W9.TAP49?HK%AXOZ- P6?YL8Q*!.YC[IM01&3NMX]+?,KS##PN5^+A M0P\+$-XEF>(2[A5*3DK*CJ8>E\><'E59.PMYLB$"I+!+L!?E4-PFA^+AMO&X M)(N'#SUDL'#;+(Q+L##1\()'SYY'W+S!%FB[1LW-*JP%3@%80&\2XHQ\A=>3 M+QYN&(_+SGCXT,.""7=)W[AXJ)N9LA;LSM,#BV:48' M?SM"A[\:R!&T^%T$0[@ +O0)-OAW@ [[= 0>)Y4[_HK[Q7\0Z!4P0_V #6;S MT:\_-W7=X?%PQ4#/$&,N3, (6?+O&^7G7MW]-8%Y8] 7VWH,LP/@(M' [B%C5\7KU,B1%;CV>WP*/D M<6&>__ZO=ZTA>\/:+">8CTN*% _J&_DL[[\%W1-6]I:W&4V0U O0;KL%)R)& MPQ.&F/\C6 UQ\E\OB\I>=V E];TI.ZB4OOG:8;%T_[%OEEG:6SHP-$$=+KP$ MV.>1-Q+5D2>*OPCF_X38V(*(\C^=>N9L[:4W-;\3L%/)L8SIUYZW=UHM[)=C M>DU7#V?Z9 ;W71,\06\[O>7$>V:&JF'86223:;6>)UX)+^)GJ0--J3RB4(9' MD?FT0,:E9:N;FC1!RQ-:.,HI]M=B7Z'8E6G* YELSP7;.T<=."CV:@IN5.+: MG!ZO5O-&1^&'WCGJP$$<6PV3;)9"IDZ[.2Z4&U@JR9QC^5-G25MB3-?4A)31 MC(M#I]-"SY+GF:V%;U0$OBN.5B.'&?4[5YD9MV:U*M MN5X;-1D>VB8+"*)X>X3+X9TB,4H0H2&(L4/4\*0%Q%41$@,)7#Y9"Z,/-=6RS/78E<&_NS,A=1J+'M M$J?T@"TIK]!XL::M:MK$-0=)L^LTSTEW["IK3"[3-)NWR=K2K,7ED@))'$^> M*:!\FI.L>I&=$L/\8(3CBRS+G),N5JG:Q(+F,DA;S=%:T>RRW7'SG,R>5TJY M:*5Z!-MN,+58EX1&BCE'>/AL3)3*A+=( M+F]W%8$MI:;2L\)3IRWG"#Y>SAHC"ZE3?:'=;V/C-L?PR=.6:V3-S(E!+#Z.&1'LI(BI22 L++I ST9@A^$E((<([HI"Q0(UH" M6KGYQA%SZ64BQ V7R*O?NLA \H ="O*S-RA8V#8H 5]>S%.=,21N@PR]JJ#[ MNQ*X8J)8D$:S\1--"^Q:;!MR,,8,TWGA0S+?3VXT%'1(U!>SQY($.1SA?8M] M/KG=-LD^NGVQ(3NRI2T9'V0CB\%M@$\&IT-_=BC8*O@#D-41DU8BUCU_IV-+ MH30#LVB*=FQF@3<8L*,S"VP(+##YD'1)=T5_("\4E%.P&0#>A#^6#47V!7?Y MO)/E[]=?@@8GG,6A(&MJN[.9[F_/@&*\2ZA@PH(-%@0BWU&"M'[F"XM?H%0; M,7J"'?PNV!O6)_LN)$_MT5@275VJRXQMN]. C#1G6CE!M;J"[DJ,79?3P<#: M<%Q9, Z?U5H".N+8&7-#]M0QTU)!TL7TJF,)ABU+EFFU)6NA0CK(@/JZ_O)! MY86<\)18RAB1$U=N"";7+DP'I78Y/9XMO!].%75G'BB*3B2C6K42&RTFA? M']#KZL-;"]0CIN/X4FJ$\J%'^7O5'P_@/$2WC$-5A3Z"]A!U_ZA&;"4)EAV5Z;_6 MM9)D^,KT/V :D$<5-/_@%9(+Q]F,S=?E_?/KI2E+.45I<_E15_?TU!)5Y\Q! MUG+")G6YS.?6:IG :%M;F]TE-Z.[NR!MNCL=-PRIP]6;SUBQ;CQ3 M@_BF*'^,2"1/DWROM+)'6IR(9F$7Z_T&MHQB/+ZYV*7)"$?IR58%J7N+?J]B M3PMC]P[&G%[6DS*I3ARVMQQQ=I-Y%@MX,ZC!'R,3^ V,&?U6QOSU]N8G#IJH MVB,@""<&5"A(=3ORRV+Z2S;2=]FJ7\VW^I):>[N$@5!?O)VYEL27N%S+JG7F M623#CY?#4FO!5*I'%]/>ZVN]W!60",IGS)@XL)-KRT<7*/%]\LNS]F)PS M-ET;F*#][[LDW5CAJ1LGQ]TR.IXE$BHS2?BYJP8/22J-LK!"*!;BAT;6%,,H%25#1)9_0I"^^ MN:S<81(N'5?W)<&*L0;L4>RV64MOX'CH#O)?3X\YFHZK9$'@WRM%AIGZT5F_ M;M7^='W.>D(6>(>[@M@_+SD"SMB2MA6'KI($\* SLP_*_Q%GB>'+C[A*."UJT5^/&;]P?*0%_;D#6$%K_[;65>J@?YT/$E?2%7?B,]4D\SBLJLE MZPS/9L1>1K&4J9"A8?$:&+N&&5_78N((@<, 1$%\E07_7J=F7_A&QHWV$1$ M70^ H!?>\@IZDH.='K=<; *+-&;^CI6K:G!&QBZ!-.OLD# M\ UEC0/,1\UH]#N?"31>$4OI=I&HP"+K /=2J>M'WD/F P0Z29"<;2;QF_IV MT0%CY 3^2$0\ X)Z>^ZHTPF%L%.125G]1;RQ?/9X&H)@\@G#D&_E_,&)^AW; MUB./^>0"D>_W'7V_Z^W?P^_2G0P^]L\WPB_.V-[)E41V.0)-@QRP,V VLOD\ M1I7)FI:GA7H2*_0KTY4"^PW [,P^]M_?S*5K!$P?N$KB'H&.8F<(]3'ZYF"M*V%Y:25:=Y= M^91? #JI)^(BW7G$:0PU)CR.I*^^#>WQ)R#PW6S$K^!?X#^V I:MCLDN'/M.NVE%,A9?"[)Y#'BV9#/;8B+-TQBP8< G4!?3)^U M"W*+27#<8DS8+T7HC 4G:*W:X-N";1H .5:Q$3!,R,@-OC:$3'"2-5)M2;Q MWQ:AW@_G2#333!F5W!)$D;C0"N%A4Z_B=EF$:^C(M2RX\9V9EH]N;Q1] '^.EL^_V4%D@OD^NTJV2-"A"8$A MW-3"4Z7FH#=KF,U??] $&=)5\K4:(%<@)SVH%GA"5GIKND[''&EC4P>88[-S M%\BM9CI^01[=M%WK3+V0%NHF>_%%?HI@*ZI8JCDB5HW?JE[(R>W.HSC$7E$7 M,G&J(L9:HS'$IH9E*I8P?4P1G3,=K!NQDFM(@940OC$@3_N4PYMYM6-I$X 5 MM)ZL:DDCQ[3 -D4$+B:LJ @& L=IO8QS%HPS]@]\%'P&AOP'/GL[ ?Y'Z'_^ M#=W,O:^Y,_C!;9"3X@EH4@B_,1J^/18LZ44VFYXQ2]7FX9Z"[XPEV-Z7X4FS MJ@\@?+*21);JLU5C72D=7U=7J6'>^CP(GW\7XSICTP(2%X/]#'H6C5ECT%Y2 MU+C&MIMDQ>XAD[HW F@,XQ@GP]N[N0*<)*#71^0QZDE"(81U198<6GZJD6 MUYRMF%\7%S)L?R'#KBJ19HDF<;PPZ6CUOM4AGS\%MC0,KL^I"%24?*3>B='-3B\^6G1*W M6HDIBK![E#/U0BQ*[ .B9$8C28=^K"0>=<[.J8:@-^"T-015!-+U&YR5;&&\ M6,]F#-7@>BL]7K$H+F< S_H/1B6(,U *'.= MOZ>%@I)42Q)@9O<(.+W7F%] M>&$+E9S>'ZS;DTI=SO@KC?_NC&F?WVC4[&Q\8I7:,VY>2793V/,R&^]XT%D\ M8V:;E2T1*QK!_-\4[/97GQ>O_9HS/VIG%\\E;::P[994*TU6$NW4[PUVE%;E MIS"A&YAD-W]T6TRI]?$LYQ,8%5WY9G+5 K-3I2';"&3GBWA2"J= M1H2L(H]7TP55(H$BXB'80LJ6.8TY0(VA<.'_/[-7?!$?0)(;R') IH:]IE-O M>*EM)7R0[:*;XHC7YEAR04@W=*%X M3K9)7D=*6ENLVZ76A&CAS]"%HA*GA (O6\2/82%^#RS$/^?DOBD>R7$+LZ%$ M%S5L,$FVJ:&>:]>9.V-A,M^9][.-,H<(;(6AATFC72CX,;,G_%QHY>M"X>/$ M>'\H[/)R#D',"9B?"M%<9WIJICZ&;B.1H"_M*!\.A8\3T@VA,*Y72XPA*TEV MU1,'57U>4Q23@;EKEY#P)5BV;UC@M0=V=T/X.W#-;R"356WA6*5^/ZO5#7J9 M;9#Z(I6^=Q@-&T]Z*$9/AQJ66N6*J8Q,K-? 4I(X^92Z (!A KC'"^K^"&=9H1&@:$>[R4;@AQ3;DI%Y;B),[&A_:HT2;F M+:8-Q($F$Z=7OPX#9L>I.C=.S(% *AFV_R#&$-GI3#=7DI26#$E6G08\\S[- MS9GC;#=;6[MUS37=)$'/W)*E;G!3-5Q)9)P+[7C8#'U\)@^5B+'51J7>9]E8 MFJVQN6(GUJ@PM7:8 I<['W]#6'"0K_^R"@;QRH :"FX8_*!6?.BOB:,]$0=9 M#+_/:EJ0*K:73C;2)<&"5ZK&1PFH..S>+7@N7JW.CA';&V&[R4&I8_**__ZO M=UVRV1O6YKX-YB>9*E(\X #Q*_'\%G1/6-G;2Y9H@J1>LF:WW8(3$:,32.I? M,?]'&! G__62=W>0F[>,[TW9 ?/3YFN'Y$_^8]^D(ME+^--8$OJY)GU<1Q]9DR,FV=JZB0C M))->%M(\(\$ZRB)RWG-:[3M%+E@2:LQJ5* M51I,A&*R6E M5'U>IU9-GCQ]NY2SFP18.VI(KYHMEIJ-F>.-8Z)%8=\4Q.2Y??LXQDX5+\YK'4Z=OY^:+:ODYW4^RTS656U!2 MWE7\^F')XY:=91,OZ>OUE'6'5&N51?B.T57XY.DS._8ZA16ZUE*;4NTD4A=* M\]6H"5J>R-VSB5:W:M0Z6GQ%%.AA=43F&K"*SU;N1UFWEY?3[3+Y@445N^XR M^MFDTJT3$0NR2QN[W%*P]H1F;2W"Q%)]%2RK&(*@Y[-*[;W$Y9@*7%Y5T/55 M< %NL3LF1-#8I4$_Q;RQ.AK'/+!;M=VA+TWC0(^K8[801_/'C^_CGCYBJ5?YT/7J/:''[!=7^7VU@55C$T&233 M)F+Z!Y&ZI8$CBRARF3L%\U M,#%'!^@HLNTY;+#9!73F*=;*$=X"Z8F:V.L.V!4B*)_=J_F;DC1TJ@[<9LL2 M#,6_3I1>O339%+MA/##HJK"$50^V.M(&.C"R5/_Z&R2C/6&A#;(L*\@PTZ_3 M&:WN50E+MXHS!_-/W4^V$/_:B%FU#KR])WB?0 2.O!&HU6LR=DS8R>#^RNZ4 M&CQQL[D'/S6RNOJT)PV--V/4,3MW!9O(U1N(@9C8IS% 0,YHA]D>,]&]O;2?ONP*L+)%\Q64&"CME,:R&KP..14(,#JS@D$S 9X9%UNJTN?OFCWNF!.B@8KC,;'DW\F3K:0 MJZ/R.M.=L5-^4#96B%><#IA??^#\GP9F?H;.'L[E/NCTS;ZDFQ@ C2FV(L12 MK:>SRM&.#G8IKB[C0;6:WP7_?_R<* ][5"-9TR@USR?IY\%HA#8?<3G35I>[ MS:/_OU?,[ C4H+,77/\]LK]7T4Y:SE0+@!TP1N!?;:Z.[)PL%BB $Z#LD3F[ M1^X7?-;.Y]^Y;/#OP.D$GKB_-?9?%FPB1!BUW501CLDP9'P"X7M=*PE@\V&M M8O@F%2X1V]RPBJ&D_\E[_. C[Q=[G_<+SVJ$=]Z804EH1VAP96;[RQM&A:%G MC,HI&DDSTQPVM3CCQ^2OTWN.#R@P[4Y$*G:1-&NDB*S#% M=D9<+)O/(X KP!>/PS2G$W7S??.CO$'TK%/AY._;__^5N7M4:SKFJA/S/E(P_JDRL4+4E-+/V04SMBTI:,Q0)_[ M[3&X1EEKBIS3TBAR,<:4A46G4@\:P_$(3M4W$6/>A0YT<-SA@\/NY\]@PSS= M5=2YN6QIY86]F%A=D:BCS0BDR]H0P20+1^H$/T=SS">J-A@D5NM3MK MDIWXHIXU,AY'C9R46EBG*;3KW>CTZ ,AI6TH:3^FU-D[DY' UZ>[3')_^[6K MA;CS-?Q(OQU3@,HXQW=/CJ4FOJ2";85L;S](Z\)(B[='8(&6['A5LAQS6UXG M#C?IL-W4%"7]9?EX.2L*;!5&H3;G]()MN]/9)JW9DFQ7=X+R*&]]\664FR.F M6U<5&(TET=7!/OJ\H04*%HRD"[H5&.C+Z/QCAJ/CS3SPMV9\,R\/TDUYU.*H M^A#)D'1-7+>8&VG=WHG-?KFY5\N9^-_TRZF\KUCD!PK4!)V"QTB;#L'#E%%P M"'-X9K57!W%S8'5Z*.A8V[?N%;;[]=["IA2:P"X2:NT=_^P]'R;=RT!#MU.R M_3T.R\K\#D[X()R_>;2V5VUGUU08VJ;N.L>U_>Y<)'3O>^_7@OTZ@.\KHKFM M%1K)X'$R>+V$*W&Q@'DDEP?)!4]0D<&$4#!8))=0RB4"LD@ND5P^ML"D(L&$ M3S#1 G-3N7R0%>/-S>-7YG5XS\8LW.,;F3K\T,^:?\=8<2*!IT+%?'.8GGQ^ M?H;GBD3ZN7.__M3@;?E28'\L?@L$,+$.W9'!]5H$/2/SI(=(\W:F76S$GPL]C\HOU2JM!R+#DRJY1R$87(65HYB4(+X=L8OX.*5\I*/81I,S&XPB1=YXI M-F])RR*9([IM\7RJX(.02ZH.8R\"IQ\H+%75- M&.&'AO[EPD"/ O((M>^\@[TF1?''+ZG=W@5^N:1&W.."\"6%81$+ MJEE=/W,MEYN[Z3(K(LW7C!J&##DB^'Q' M3L7WA,\;^L5?"CX+F"?P=77($?^KE02"20Y@27$#):^M([UNS>(HS>:0 MJ9JM5ML*/^Y*L*(9#IG T'.^C%_ <@,83!\9[7?T$B_1A[7OIH[=;3;XF[)<>0@#=M$(:N%M,80)(,3_8Q:X>#M7\+BH+W#U M:D6NYLY2=HJ3!@33**UXW5(@ZP)P]5 RD3PE^/NNV_T(=:)IN#[X?H?(ZDW9 MHZ\;7?U:X#M?C)YU%:$:G(JD6FMC*J9R#4B.DX0\%8DS[.$1^)Z[R_Z_?HW& M/Z_?XV"DZ$HQKI'G>V,82;(F]S9PH;\\OV$)I_AD4U>S9-K-:N+]7"2 MK"!N0]2R:.O9*1Q=EQ7L\H(X*+IPN<*%!Y=5UE M "1@Y!.>PB[S:*M^'RX6PWT*^&=."M"^%/&_#]7L/67YGH7A:\3N;(U7 M6-I;!#KKTFRWS<;-&JK.IP#X)G_'7W\E:^R[B)#C1'Z"N,^Y<=.6C%)ZJ/SZ MD\*>$.(TN?$OC3'^8&.\BRC#8(P(;J>'II+L<"LDJ_3-KBT8=6B,5.(<4_=Y M8S1@':*0K(SWC'$4:[D'62.ES3JUVKR8T>:$/$91(U.DUMZO/QB8: JAO\W: M&+:(U:W-<=I++_IK@YEQ4Z(_25)CJ?W<:OIK(WJ&]/NL.08' ^^PR;NMC_?< M^CYJ?=2;D^<"8CV;FLKI3*^V&A>6-+!(E 8+)'WU!?+1%AF:,,:M+;*GU-=\ ML]QKK+#IY<25M4PI:0J])/$L5$-A MD=E4H+[H3:QJO6#S<5B:2)[1C?JVV1"P\0=_7@>+Z*_)] MK/PC2_ >FW1&F*E &0)8;DE@LA<2%'K.=5Q+@LNT8(Q.3G1\!9CKW#H[F77V$AJ+K/-P5)GV7_;?Z:#%]WT4M.7%&+ M@E_A@W[#65!'!ZR$?@')H[.\SMPXER8@!;?.]7T@W"V]@0)P.>@$_ MV3UTN'JS+YMOQ0R?V-FG(/6GT5:AGH!O&[%_!/ODD0?#V>?&]5EP?2)3L$A8 MTLRTG ,Z5'^,>ZRJ__;','(M"XP73$A D>NS_@(7$T_$N'T'$MWC5]T2_$T% M,(T0=H-.;>CV[*?-K[#GP$H#7V23\_;/IC-MIK4C8MVV]_/A;,BV'OP.\+,(>!TW-K:A:CV>V9%O^)MO@I51VBP>H#$,&AS8Q+KONL)&JI/H)(<;'\<38F]0>1W MHO"^"T4VO!:1Z\D:&^\:H[F=G!46'<9WEL_$"#<^U$9$3[&9[@*AS'RNV]O+ MP+8;27Y=1IMM@R4M5-.U]56P?_1MSU\T$71/5DW9 M)HA%C^II4K'D+.659RQSS1#(:EJ66C31-'562$_%N4F-.LEA$[J[9\(,AZ(" M>\WMV,]M79$M, =TS"( F1-\#3 +0;=HO67[]C\&QGC(,HT$ $D8' [/=X00@#%3!#4B\ M.51_D'Z'@C' )_J_0IYJU8!H!/E+3= X3 M/2!\N&\!*FE)_ASZH0AKLWK=,FST8JY@:W,&0/TM1&].QSG21A)[DG1NP MU;XI)&E6) /L::'_!E0(*([?V ;K>DR7;#M0UQW;,' A-_B%J]S>G]U[4Z63AK?N,38F_S>:8FV6QUHK67SU.9 MEVK="@GTQI$V];[:D.P;Y]*L6#C[W^RT1Y_V[4)@_Q@V7T& M!_Q_NC#VM(U;[X=$%HV],( ^&(^(3N4WXGX@J!3L*6% M?X/SKQH! ?66UFJ/O&ND@X? O,?Q9N>W96C X:;O%NQ=KY(18,0VNW&WY423 MQY1<__U?!]1CNTQ,2"MM6K^W;!)[P]JD&V)^:J8BQ0-F,W]9_BWHGK"R-\.D MT01);8DJ?N\8*>!$Q.@$DOI7S/\111(XZ<_'R61"RNJ]*3M@K=Y\[9"XVG_L MFP1K&\$XYNPWAB:HPS1* DTDR1N)ZB@6@+\(YO^$V-B")OT_G7KF;.*F'P(Q MH/WH!R&0S4>__G0"T)"!$^>3?-N[/$YAGXCM-5T]G.ES,RAL4X5%JC>@W;Y5 M1#*3 H*W^'1Y:#(PW/HK>-NNI59 "G6Y,YBQJ\)H@?1:!K(H*: E?=QR3"&# MU9C#NEI>22'95E1^T:^,FPIH>?+V?-+!L%)Y*7%NEBDM<3F3H?QGHNAQ4YG,=%Q' M&>>1MIP=+.(5-ZD^*SS.(\Y]+P^%FNCQKS*@)8G0YH+"RQ> MUYL=5LJH%;*(8ZVY#I]Y,J3XC.^@S3*^8"ER:6!ZFLU( GSFZ9 &0Z59ZJ9Q M34JGC/5$I^E1&S[S=$AL7UO%"ZJ&(OERS\JPLA0G65@U[V1(:<8A:M,\17683+ZC29(4$#+DVDJ8<6!7ER@H'M](C^2Z,55LD^S!9QY-$R\@GS6463M+3SGD.<-. M37JR&)#N5"UZ0 &3)W+MCH5^;NXNV%6V-EIB R3+6U"NQ(D('&>\J)CV@I7H M>JM1J*)B7=O4$3]L.4$L)IUO(+@VU;U.=>C@& HFECA])C+1L\M%UAT@\6Z\ M-*=;$V!2FP*+ARU3W(++E=-479O74;DW7T\*<]$#+5,GSW0'%&:0KLZY\:&= MMP9Y 1.:0*E.9LDT"635;1!%+D.,O'Z6R'>PF0=:GO1S7)D@ZRJJ,,AJ'5\- MJBA&+6:;PC%',Y_2K5S-HOK<:FPRE1Q:U#(D UJ>]-.Q^QF4E!N.YK;8%;-R M;;+GGE54(:\K=(9^+G!8N;7JM#F-77UEX0TF! MZG?2S\$SU5)MJY=D54[&UV-VL4PWX#-/^BE/BAXZ;J*L5B^-M#0F*X;K>7SR MM)].EK)Z8\-\1JC.:MWRX@U1Q170\J2?N,[;:J\P*[;R#6^A@):G^BD-.*5"+ H(U=6663MKFO3"XU.GSU3K M:87J01C $M3V8IS5+Q&J]2$RVS3BY3"P:KY<8*:'F*SL4T MC>45$D'BY9PX \L3,@%219'3U^<=>1"7TTB%$UHEEDFZ1J8X]Z#K?M+4,1:M M)B=R:Z2^:';'+5V)*]DF;'K253%N5HBX59>1,D:O:Y/<:HSU%=CTI*\8:PB= M>HHL(WEWZ4XRN:JJ=D 'L-,.X .1(ZKKG,GEL=X@PZW;14QE8-.3IY*(FI.R M%L6QTZG)\HUAP\VU0%_/+8_"S"TA+8SAL%:17LST,I4O*+#IB525;M-L%,FI MJ4WS64^=FLM,FO!@TQ.E0NEV6460QD";RTJ:)CS/D,J@KV<6LXJDRDUEW&PA M0L?%\D5/:6- I]$SL"ULHE M1K-)8]+N-\!3SZR1R+#?4^==(JX)/3+EVCGI>:$T8=.3#MBJ5-81A7$XMS^W M2GDLZ:8!FJ(O,'6T-0F^..3G.-O-UM9N77---TG08,XM(#O8% OB2^ ;DL@X M;[7&;[%A^<2I64C/A=^S*U[UD*(U3 U7B#21L&G%8[(+P0M!U-OV%NW1Q)L\ M<]-R?!AO)^>=T1R>4!")TV!8$'(]BGT#D1R<7/DGR+OXJ6,&QU_!'^/#(%SZ MZGG3$WQ<$ '_*3+]Z[!'S0]>;[.WF.W9/9"_?_OSK-@S=/&YWB?IDH;E.XV^ MH.NM8<8_[$B^3^JOYPELPI(P(/IZ6-T_:=Y]^^S!HS'275&ZQ?'C*[$SZAV* M\:&C+I502U9V0:F:FNK(!:^S*DW^(OOK;R\*YX*S(""CW6WAL[K1+/<'/4K& M>EKO6<9JYFJ:E'7OUQ_D'0=A_D&/KQL73XZF@BB=/3>">N%_?7=P];0["@,J M=N'<*C@<\H]UQ" 8OCUG?]&I;:[!Z1)RDIVXX^_>K##P*$D*NO9(8*J[CJV* M4ET.TDA1.'-UJYAM^\O -H*[U'L%4V(\)(XLN<'9('N73L@ MNU$\V&DX*ZJA!%AU5NU,9(;+:MT2$;5>D:>&()9K)>77'\,\U3KSY8E;[?(U M;RR(P6GBMC"1&\?H)R6G M8JZ]_2"M"\#7:(_&IB[9\:ID.>;V"#@.C]M@NZDI2KJ_3-W.KC^?)/X>_T.I M%G3@?F266IS/C:O# MKCS-I9@=&6 H+B6^9_YSZ+2'<*BQ1O*3ZIP?)C%<,IKAG_]1LJ'/JBE,X>9N M=ZSP\G!MF]Y9H#US''YXVGQ:_RVX& [7\0OW;0Y75[\UM(A-$O)MZF6\/YWT M7$ZRKP5Q?^IC^^*YY8)P63$"J3.&>+@5/%HNXD:FFDL9W3$7UU""S#/I@F$P MH5PNVGL[Q(-+( <7"C9)$,%)NG^N'GS##+(F_/5CEU*YM\Y '?.S2E_N&@!W M$PS;$J "Q'6HK>!1H(V_7X4/6P1GR9L%QG[:RZZXOLP??D!N2'@MH[>2'"(4 M6^.BQ637FM8,#LC/)SC\GWKFH')C7+_^ &=)_1-[5:KP$HAA@SF7P,@!;@A+ M?X-X<-7G*$4V@(T @F:!7[9-6]ZEQ&[^NKL%]M(,7A("LC-'@1X![0">G^G9 M/F$]3$BSP8/L?_^^BTF/QI+HZL"1?]<5$2;H-K1Z^?@2"+P>8G= []*@C;8S M?*RL=;X^"<_'#-(*]"E.;'(+3/ W'VKYU\S0T&-'[JIKBA)^4\'I%J[T3 M^;WG0_R1@69NIV3[>QR6S_H=)%U :'@SVV&3?^*_>-M4&-JF[CK2/;(<7J^M MM?>]]VO!7N[*WQ8?BX02/J&@B105R26$5FMQ+LLU:"$@GL6QD)/ :_$J"^%>'^ MWFJ!TM]-+[#ONM#>2REPGR?U6^G$U;#BY^H$]=V!XG/^4\C(Y?Q$+9CO;L&T M8E>RKP.$(1OE(X@[8=Y(R*;A*L2=0>+%ER?N_'#I]7=2LQ4-6$.K#0O8PA37 MRB9%\J#.%32ZNMP6=&E[.XIU\LF&)5<-5K7E5;):&&H]T;N0MG_Y5AZSS2@] MG[G)!EFNNT1\?,>ZB8J4FBHF"P:2:0YF&HT6.I4ZK-$!*8^?4.PFK)N!0QTR M6WD(9'Q3KM\@Q2&"C%>N6GT.,I[Q BNW7*^.Y)/E<6==YX;)KG)_R&A3O%JP MY9&BU8WVTACDI>$@#4M 4;_^T.0I/U7D8%P)+>CP>9-708L@E> 'H\7EBX&? M0XM!DV,)#9%P)-[/C<;45)C/C0U%\693$^I+I.$^Q$4^_4'>\+PT\HP7_F "Y9)$BQ8P=L0P5PO M)-V<0:E]C>ATV #O\LV=VX_Y3&3U1I==OA>@_7V 96M'C"%F7ZQH S,;B#/Z M:(L1Q?B$4RUR20W-$EXH7*I4<2.(>[;S@^&<0!91Z[E*,UBWR1,PY((] MH2GJ=B&7'P<(%V_ ?#% N._14A@ X2\\G/< IZ<>/,IV\.0U4I)]05^/4Z[ METJGW @0^")!3_/]),&6VZ5*GBZ/17$**Q53/B#0-XG!_D#WX/)-DJ^$!F]= MOOA>:/#WX9'WH,&Z8O%E9C3$$'4X[R,=(C/&6@] [H^K:$>G>NQT\:LEU[A M*41AE:!N.?E$G6'-_!II"Z%#@XN9_U\,#7X<&-S8-: MSG&K4B/'KF0'1=T5 M/BE/'Q .*?"]H="CO3([7RA9N:,4A$$![A5@."3YA)*G!([?+%^E+>DZ>.&N MZM534+57G*J&"LMFP6LUT0G3;5-8'IW5=<^82PB''Q;H_?LPS<:8\X$I P!F M#NQX@X.["L+KN99MYPV:G==H,>Y0.<7,/^ (JS$LEM)NP>AS[=9*K R*-;KZ M#/EA_( -19^6J(]R9&Z>(_-HH[QGV">$PP\9)OV%._@Q3))25;?9;#T[;+TW M79&#$E/!T0<$D=52>C18**DF@O$UL5899[MR%V)2$#-";G*L'CE)%])P'FV1 M]XP\A7#X80&DOP]6?0R02F-QJ+6,-J]A:UK*%TM$*6<\ )"\9Y.L&;7N6ELQ M;M'@*Z,,,6@&-';44PJ_32)Q!$BOY_D\VB+O&/P*X>A#AD=WRM7I\+2'5P;JY:$("3A@Y(Y]0ZM(Q^]=+ M)'JKP'ET8OCI>-@!D. 2$33A87 PX"CU[S@]>AQA@4QSX>Y"M4*L^CJR2G7 M4[0H[FOXFF//H<8;%]#]&I7/WBU0REN+& M?'+!99B^-!^/JXL& 1?^U*\_*/E$4FB4&'2]<,JC;>).EZ@>/3'71K6-E_ &FKS--S9L7RRNDGJL5$33MN:@%31_&,E#B#=OW M@QG_ZY-7_3GA3KL-R^&MF;CN3A3X.AGCF9#+2)CY]'.0WD\-" 'W/[)-V?& M NS?]P(/@&5Y-G3C_M=FECD#-KWR\YVDN:OZ#9]BA@3^@2QRZA1R$5JJH/O$ MY^^FO7RAFP[/7#( 6^#<@;&H1F!0<"8]U1E#NO;9AL-[R_CY0LB[1X^\Q_\9 MA)??3?WY!#D97ZCX[LR]=QX-_(%M.%492 P-;*(#;?B49(^C&*_CBIT:6V?& M@VE=*7J-D,C2KZ[4O)1"2)B&0MA0?B( R:$0D&I1#*B ML@JA8")K":%0T$2TLH11+$B"B$ LA(*)0"R$0H'6$C%9A5 PD;6$4"C1DA]. ML1 )*A+,[03ST2R]MX(NW_$X*TQG]_[W]HOL?Y8+BO@++BCZ>]' MH(]!3'L3,OXZ%"?ALIVF7T_-_D\1ON*N)X"]R=Z^A"I'_&]E] MY/_^0$6X G2-5+MR"WZN6Y1!GP$:X*X@AYI0>08@3\6@4*HAJV. M(L?H)ZO^3W&,OF]"? C [\MY1 U+'47NT,]UASJ2-8W$'_E!X(]=07>CX-"7 M4_M+(@W"'Z?_7LGB-\[/-[H^^(]?G]!T;<$0[7]_$V"\BH9#>J1F[#U=+FNY-2BF <466%%9^JIUI<<[9B#@N2 M,S9?EWD4XW'TD*@-5CBN"5/)9V:;B;+-L].9;JXDR2\4[!= WC"P:>MUN3X: MK0::1 Y)Q%W9Q57W\UPEY\L3,Y8E&(I/&I=>O31I""OX$>.!<6\";WNF$)Q1 MGBEPGAUUZMZ<("N()$T'7#(]MM,6P],\]NL/14=4MC=,^0W9+%R%VR"XZ/KE M 22K+E11\LD,-A#BYJ86GRT[)6ZU$E,48?[[M M1W5WN(+L<&60;9 9K918#\_NV]KQXAN/:>)VS^ M";0T%+L2AOXP3/F!]^GN7F#F9RGQM=VX+["X1:+Z@3!R]VNY]W6]0N-N;[RQ M[2;Z2OY8:(;W(\+2)^.-_7/]J/0;A'>?"#!-YOD%EQ;&%2[N5N4*@M$>7_N+ M\?M&V74G,^B2 #3"19L"S:>\SZ>UT_4P0&J>ZR[J.9:I(?C'ELTZ5G!)M MCT<1&(7&4B>AHG]_2WN)PM /=9Y#!B_W"EH_ F&N&L*VWXAA;X''+AH!-GTP MDEVRYGI2*K%E3EK,IG4;<[1^18'@%(2R\5-\^I;P%(6R(X%&RT@4R@Y+*#LC M&"-)CV+942S[.X/*#PQ"1;'L+X(V42S[RXCJ!\)(%,N^P0 M73%XSW)X8,]Q6QK%U64\,.;?!?]_?'?E5%TBGI79GE,L2.ZDEQ)JS/%W_ZK3 MP:_P06":K:F@_V?_QL/FH_VU>P,N5[R0&3)-C6+(40SYCGYLR.0>A2@C@48H M%84H'QZB#%YQZ%%9_^&87 M$O_J)+;5ZD)LLW&"SZ[Q=%U>E910WT=4XKDADDT/\YQ$_/_L?6ESXLK2 MYO>)F/] ],R-.&?"^-4NT>\;'2% [" VL7U1"&T("0FT(,2OGRH!WL#NMAN, MC!5Q;Q\;%U)593Z965FY#"L+MSV1(H$541R&@ESLJO6;J8'[HYSV*R#LLW(1 MK[W.) 1Y?(HL^1J)B4VK-M<:C>Z$RQJ+;A-S?9^[5&;B;:CG M4W53D@^J/:: U@%/DZ\4__0$'-!C]E,)W$B5W)/0F/X>&M-W0^.A3\.3RL2P M*A_V Y_+?EE*L=VD(4?15EW2,]+JPX$!PTD$W%/( =P[+?R!K"1ZM\+Z=_] M8?/:Z[R0)0\U\(0;*E)>+C%(,%[Q@5X1L.90_T9F_$-!Z[BBXPES7FI1]8J@ M5CN"04ZM0)/&6L'6H4!!D1^_*))X0]E^\7NQW2L&J@<$< 9L5T;=+%49_N([ MF37X^#-\ @G;C4^_2+L=>?.M/0<[%+&VPNTQU'?@1W_B4,BOZL*\LR@VA-Z( MX4J+R&E'2U9$B8LZ%!*&N^1<"UX=GI_E=DC@TE-/Q%5$TSL=%/-)S@GYT,HC MA5Z3-2L%MKSC80!*S4&/MT'DL"EIVZ13S<$'OJB_M9MLBK.%7O> M;U?-.(G)+ !S M9PI<.2B;7&X@=AA'AP)FYX9@D!N4,6F9\R5RVY MV,6V)5^%]CFY]R1@:!HGD>K?-$[BZSL$SB-@GA_XT1/V?,\IR#F],Q40GL2& MC=D6-3 R5K?QB1_Y;:#$?_GP11=@AGG@^886[3XR;(!U_R?*/ (#YO_&R#C\ M )BC/U,STL';D3$.J\^LX?(S<0LJ-1-/."--G;6:<=4EL-%@-:_=GQQ?LHZ^ M%V]TQME]&])$LJ,XG8W^;R\C6XX', %6#[@BLX163<;1,O_W,\Q$=.-H:DG7 M>T)9'EBAE=N@QNI9Q;-JJ_1>SCMIF+4DUQ6[50H%K+@ MV(<]<6$_\$EFJ;J9>'$9R8-;JCCF G!XWZS MO>^6 K^Q,E!ZR6\*8WLE%/B"LW28DM L=9XAG/Q\Z_JQM%P?[MXKWCWJ"07; MT\&P)*S'%)==+[(K"\TY @\HB-P?G]PS ,$6W%HEKJ\9,S\P3M3, NS;#! $ M0%)YE:@[*?'2%@&_PUTW[$#:RQ+%6/_Z'_#/07K(%C"YH.Z:[7'^H)D@P@]& M+O*?B^B?YTWN,.*@>A_D"\KLUA7/.O[W?_^OI[-_=+AG9<=RW)\')?ID6;-= MEC@6ZU-=S4Y=53*SD@;>_%.R0BGR]LMDT'OR04'_?%#$<",RS#V2^T\F_A&8 M_#@9[\?19BZD3?;)ENW5=]92-?_G_FN'SV+5^S-^['\O@42#Y/GIJA:@TUJ% M#W_VV)@POK/\B0%;"8ID\.M^701Z3Y,7(M4+DPA_),S_2)F9"X'\?_I\X52J M_^^S]?NQ6@ 2!UK?4",\&)32KR=4?XU7G^_TJ1V4'NX#=;)LE*;]%I<=S,RF M-':,1BL$@H?XL7O;P\C6K+&0R<501@V M0WH]F762 36LZ&H*11\^$.K>@ MT&5K:K419M@1B>-GSNTAI^5KU1DB#:BP0G&H280L&'GTS 5NVA3>HR2$%T.^ M1/1YE!1"D121ER.U>J!+;G%-^(U/$S<[U%19;)R9(KSYM3W9H'O:7#@I%'S]0H(MM9:?4F%RW$*L-7 M,86?LR)]8IY#HL@5*O12D(IS?;$N\(/VN -&'CT315FC; WG)-(C)^-Y=[0E MNP[L>7?\3$!*E1-\#2FTF7HH%JMF>=L!(X^>B9,44C%Q/&OV/)WH#IK*,-B& M0'4=/9,)^RW4'C4*G+'H=F5U-1W5/#CR\,P7PGGWO:FXPKE!L;4->#-P II@ MED'--5@1#L5_O/HM@6+#?J 'N?9V63!Z]50"'??0G^&3^:@'N\R MX%@FSS*&]RPZ=ZIFM,"RHLR3UP*C=?<-&,J[LY(TR7 ?#:2=_9C9O__/E/73 MB:C 0#,6P' !&RI9.\6="&.^Y1PV%:P/F#;RX_Y":R\#[92UX4& X^'8(#@,JL .7X/V^"XS"LVGB M1X4/3N?/0'6RTD[\3?C'/W3@[,YH!ZMJYZ( %I4E+3WUY^&'IY."5LA^0E 7 MRSL=_MSD>>+"V-L[QS:E[Q[>NG\:NEO1GUUJTTAL0+WN,GEB/3QY/CB)NAI@ MP,.6''[/0G?-SYV!&()-^*UEMK>5XQ(&\JE<_,[L M?T-R\2V.W[4P/40$3U,N2(5@$4:SE>"M7QS:DXK!KP: MXC[M.KT\PK49\'^ M3OXEJ,W'WX+AGSB,TPD\R5:\?V]$0IZ%0QFZREL3Y$J9VXC%9G0D^,X$9Q40\#F;!'E(?XFB3?K3< MY3XUYU(9!LH*41>M3_NEH.-X4,)1 ()A-YC;U6/_$K'P7T+QWA/TH;: MUW1:7 RI M=ZM-,BLLRK0Q)%>=_FH=BA2T1^@W2S)]51Q=R_2X$3OC:\F-CQD55Y4]-@5S[O) M\]MMNTB.EIOY)S5/+B%E=@AYPSPA#2P_0C!2YK)1Q.F]^M!=FC!3$I@GS(FC MRK\WB;;46Y)Z2U+#YA(BYR.&37$Q(49#-,H+4;\%]K,QP 1.!S().E"0>^*M M.I5?T(%2;U@Q!D]2EN[1/9,J1ZUR/VA..PJL MN(#MJKYP(P)9]R,.B>JM.(9M=%N1EC$K:=?#L'IA;+=YYAC+\'Q%*;ATWL@6R3G.+0:<@ MEX,.U6A\S2"6;9]N=L:=P99;],:Z)K2[/>#\>,)> M7!?PZ=\+CN>W''^L@N4>*O6=++@;T4RSI5(]B1M&5)0'"DR7R/%A;6?)W@X]K#3YY-BP_DI$RX1[H&6F?=KF,_25P0G_? MHN&9".2JS.;,6#M<<=]]#D'2CA MQQK,SRMM7KB^8=4&C*KVI4W1\&!Q='!T/BY6: P&/7&@=6?" L_/]1J_+&V5 MSDZ(@)D"6OAOC-N7$;U,:<.C))(W!"Q]GZFV"GR3R_39$=>[CN1'CN>UHT'& MES8QYFU/A>+25>-"]M/HBY=/!ZN+EU+<+ZEJ/_"+>=W(YY\JJM:H9_ M-K, ISD55IG=/=>%:H I%!XO?''='_$Y=I_M-[O ]OV+MY]V(;]D+6/MNY89>H]B5Y M[2/!O#"=\^PL5VP"T4 2]/VQX_L__[Y+T,8;#5=_!VW?Y6[&5O3'?&W8!WVX M;POS9]+]A9B"7_3 [AT,Y5VU;C G8(P!]0Q4?T8)8'>3C#R#YW'O\#:P5&!B MV/$J/!].R(?:*_X=VH)9W\DJ\&/WT<"$9GCHN)82 HL/O$'-PM7L!<$_P-3R M_H6/WQ4*A.UJXOD9;OPR68I+:4L+)X#=;N!6PUKCF9WAF>$#%SS1@:?;O<9[ M%#"J]TX5"&7&XP9(/K!FI\&NI#.8TRM+OU+E\1/6TRD.VIW'=KL'Z?#L9 ;) M,-T)>.\.B&/9"J 7#+:S4>'!+%XJD-&2Y1NJ=_=66?A/.(S_OFO0NS2=\&0G M@*S8*SKOI*83 MR8=.8"E5P&.R_R!O]Y+VY,Z-.KRQ[ I"F>,IN8Q'W&;-Y$-H9IWHO/2P<8;V MY) /N N^-"/%[SO9S.I83IZ6IQ= PR&#/8.C=WL9>CDP/$E&-#5$H"RZVT#X M<#T>-KQ%919\#AK$PJ9:J)9X'#&6!-E#<#2WF>W0<&Q9?!H:/GUO/@*'W+3D M*.Y:SB)8KX"5#-V82KZ/B#1G%)$6FP ^)K M!'RP$]L'4+.V4MVCG95E-X"A5PW'UF$WTX8AQ?YS0SV-BDU08EMZ3BDCV55. M[%3YHKXB.F\?*.^@M?*FF/E"6_T;N/S);I_<6(P<2>/NQ#?,H!3VN%77;4P' MX=O-WV+I; '*9<'S%WMC<"E%L2VW-V4E6=YQ/=Q]L#\*/(Q"=[4=QUK&'NJI M9$FV#&SEF:KZ.YWRV&;GB]#E;0@454UUW?A#UO/45T1^C6NH_(38=,V>4EI9 M5$7H+,K@2(02;PBN6)I,5=5^%"FAX<^,TPTIBWW6>])?R NF\UB^09]*;/'# MSD&[ X($N]Y NB3+]CXQP=@6D);@A+(Q8*LBZ_P^S NC^8@_!H=5LH=%GN28 MBK6=MZ+V;,G5I_)2G^>K:L[H_/CUQ73_1Y=?]EIS(] BC..U:6DHB4;9@S82 MF;L_E9WX&H)>/W%!+7'*]HSQ$\9J_.&23;COW6=LU<]HJJ*ZT )^.,)"U.WD MVN,)'8Z$GS](O_?/ E[0PDL?Z& KVT_[MH&-1J@,; Z'CPF\#FQCV7O M+\$0- =Y:=]W>._&0IDGG[WT:%4!_RI*[ *Z.[B3(&\Y.T<"V$P0T#( M^%9ZIIYZ,QP!IRZY #/P%T4%,W>6,*HD(P/4&_YN=F!3XCM6\"#)/[P^\($Y MN&]UIP4PU'8_X=>G]XB[)Q-]=E2%JB\&SN.7GWG,'[X5 BH6&^ MD.:.^\!!X"&>H1B PV!AUEC/ON"JT^UNOUASVUS:W#9M;GN25W_?W/:5-J!O MWM^?"DYX:%=:6M#&9+FP6(1?JENY6R[4Q5X'7G^\;&R*5)6R)JX[76[E6 *R M9:A5V($CF9*.XL/$N^7*DT"GF@TUCA0G\K#OBPT:4X5"C)2E_IVB<&9 M)3N#ST31ET-1AS(6U:BWX,IR19O4O$W)!Q/%C[NZ3OB*72AU I$+O#(E%8*" M4Q-TD3@>6:ZU]44Q;#,FUB'G@U9YJ*9&BE3:&W "?7&O+0RAP.%;.HG6P0/\O498>=FR+!KH)N*U>=,F3W5^%>4 MO&Z[-M"VXI<+8S.H^,L/J[2FEPG:^^,N1^8ZK MX4A[(9FK6I.JM[?:K#*#2:;HT8[F&]A*W>1#VRS;BQ7GC&HKVNFN*I>)\6 M&*5LC35)ATNQ]%$K2$%(ZJ%U<[093HZ''I$?:=D1HMZ MOEXT);[;[&HZJI*[H4?D=[DL,VTW\A/!6%F]):\M:J@6S_68_H03.>N20]K( MJJX'9KB9MR;-#CR;'*VKT!D[FCDCBLBJE-LXSK;2PW@=#CU:5]78KM=^*<]Q MP9+5KPNW"VB+6&QTSEB6/0GM!^:H?E*B=73ATCY- MQ^TY8=\KD?A<$88+BZ.:;;_CE3N?'(EWXBC*W&=:7/\0C/=/@^_U_LVTN6ZF M5V&[7'(BLC^;@FUPKI:C8SH.BJO2O,<2*S.[6LFZ+05:2=1?TC$O>6"2\,#W M/,@ G/YV;#C#H?I?93%/X^7BD]'O>B]#L^(NT<].02Z*CC4RS/)4_^]SQ0- M*Y[YGZX0NC9V?<;/L8JE%7B[WQUHDAOPV+V[BP)/4>#4X,V3I\K@I!E?8>Q\ M4G!2,@Q9=GUCYX6'T27/7OK/XT1]&.02N-%^/BE_31V]V-3Z$WQC>QA1O>G YC[<5 +].7%ES [=P^8IPP.]](A>B7V M'\"O2;[C>GM7@>W$9W'X0;"/Q]GM.'S0-&;!>. ?$.M9;X##&A__O+NP_O>3 MV[R_Q&2,*M96]MQWJIU[&1RSEV+6*'BS7%1039ZIGW-!VJ3ZIHF"WC-X2I<$T@6_1ZB4,,DC#':?*I<$D@7( ML52_))$N@#!,2ICD$29%2P*)@J;*)9%D^5T=O)0PUR%,>G1)(%& QD^E6!+I M K1+*L4N1YAW5G_\K9_R%FNM?>$*N@^]>LF/]NK%T7LR406N_[95;W_FJFJF MN4LNYIXG%[\H&7HC79^ORS_(/7Y;O9Y;,#G] _R3BMK$0^7U'NCG[7].Q-;F M#6%B5USY/-+R;7?"[3 !?D_?&@]@MZ$Q/X\#R-NRKP<=D_"2ENW#N%D/V^R@/GY>@CL^#E9J[M">?9=)$3"JIB_*>7.9;HEC/;G MY.SDX?8*G+V[&_]NG)TXRI^1KY,'VJNP]94::ER3K9.GJL\IKE.^?K@_^YI\ M_?4\IJV762-?WQERC=Y&QV?B*S0=NWBGH_T9X=KKO$SSV'?72Z=/9D%5F@UV M/;#HA3#4S1*&"Y-(6^D?[I4&\+DK;-< X#RN*_W8V,S5D"HZR&\M9$$'O:"L M(C@RA84$\!^_B+L2U'L+YB<%(DYOA< M5^@L(_::=Y##/?#8'>Y:<4E/7HN+-GK\(_IBF)ZZM6",@C-A*SA25JBLUU?G M2ZX7BA2\FL29.Y0Y;GJ;7DU^_(QT&U#^746C6X7R92\8_Q;*%66SKCDSMHZ4 M0ZHG8,APZ&1A)6X*0)F^P[#CEGFI3O[@H?!6I=G)5Q2PN+VPX <=X$XT!WC:\> .,,5: M]:#G +8"=@T9_K@; MG%NWO:$^%)IX)XA+J!'0=W?2ZGL.V!%\2MJQ75S:B+ MI>5$ZN%]APX*F:4EV?^<*Y0Z,;M]70?%B6VX=A+RE>\\K[W\]XKJN$,DEMZ( M7OQ&]-J,<>4;TVLO/T$FS/5\"OLF+D=V#*O ]E"P >X)8V93J@@]PC!+7*2R M72/?DI!Y W8CI'[\8K"+Q#ZF"O;U*^AK ^G*5]377GZ"Y,CU?!H?DB,>1V'- MIB"4D(+BT3R.+@9^'?8JS<$T"82XR'U#>NO_QJW_M;%TY:B :R__KTWUKQ0S ML'O%H8=A&C7P75.>SWX$O_9B$V007#/NX#63X(0AL%[+&MWS-I&P&I@+HS&J M-]QE*#)IY,'W2XH^N^?AVHM-GCBX2NS".\1!MJ5.G'6WM.)6$E5;XNC(XS(0L:E-"K;4=Y"<&(4"S:IC89 M$5 6Y&)9D*,OY23X;K(@\:G69S__7WNQR1,&5XFA>(> M5L5.S,:D5D9"<]+3"MOGWIBO=U=]5(0[LU3=W47UF0IC?3,.OWI*^]6.4-]K MT=_VIO6;K?ESDL&3M>CO1^5O".;/R8Y.UJ*_GVJ^>A;PU0X97W+1-W&?$R<, MI[ZUS\Q 3=B]]CE;_B1PZ6>M*EXTUH:BQC7%]]?<06GABL6Z7Q.B2,E1A#>D M_$5XYG!8[!VWW)SDVF 3O;;JQE?:AXH +RJ,(P^7VO5)6^6K)8X3AI;HE9>, MLYJH'1%%8?0KDSU2WQ)>S7E^86';6@^IFWQE0X9T MLX+H0')=WG?R[:"?],3AM)OR#;E 'K'_$O*+P;(H<]EMURQP]6B<%<5Y3HHA M?UDGR'?#>]+3 =/>RC?DRW@=[BU-'?+"K".:]4I/F>1'RJHHQW"_K#?CN\$] M\>F_::?EVW%*_(%EKQ<[;J/7"DV3IZS:5%Z71ED_QOT?NR7^RY< 47\=QK6" M!2"&?#9>->SL+,YH_@G(]8QY7T+X\9OPCW\(Z+-S&BS$:&C1[B/#!B_V?Z+, MX\11;,]]AQ_ O$J.F_%G*OB_JZJ9!7CVS,NHX+M*IJQAWI3HR3=N,,6[8"#V+*T>(/ MEHX/]L60K(?J\KLR=*$36$IF)JW5S%15P9S H.RACOU]<@C6!VO0',MR0H"W M3 R C*?Z'J2+/XN7>%1I[W'-K]36]V>2#[X&MLUV_-V>08("TL#G/:7&*]D1 M&8!N.;!B@9.1IDZ\BWMZ.T#X9CQGO\-3]?G6/O 3>);A*) ?%"#PX?O^B=_O M!!Y@.^_?70+&,Z2?P[QY+L=Z\DQ5 DOE-19,\C#'GBH'+F!-U>,VNZTIN[DC>4J%3Z("BM_GZ)02": $?D^^F5>6 M$N(3(9%2(@F42%5$$J@ \$"\F1684N+35 3QIF"'<;''#PHW])Y\Z=J_:@\9D>JJ!.4PYY-X<@]_C1+=?78I$6]*I_@$-2^9@ [M\1YOC? M\X0L0C?,5V9MZ(8_DUC[G2ODZ]'V*!SUR]$6^Z(JZ[*$)8Z"#;\<8<\'VK%?XCN!XU)TUE[1.C[]L0;V?7W13]OK>N/!TPG Q=.:X8 M_1E=&]7-8&[W*Z&.NA&=/%TI^[4V6YT-U@)%HNMZ.<\L1CD6Z$KFQR_J+5WY M!?QX+>R?C^LM+C[7"IVQ(5US>KNP\L& L+ MN"2OVQ/VXJ(^F=2C'MK((@:)JML)-Z)9^>,-SBXE+M!^;S*;5I8MCFK6S(G5 MK^"\!.)Y#"K%-=4!: 2G59IYJ][&U[PP.K@7,C'-,NW E6>2IV;:EF2GWLP_O#E* MT,UG$DSN*U@$2T7SGKO*#IP,&7DO@G*;[-H;FU4"&;+2>&C.'(-IAHD308[' MCG-8$!(_RZ9L2-QF74U<[ M"'QU1KC)L\,?Z>T-L\4]KS5L(F7#+[;6^2G'5Y.GMV?3\KK&L376E(JKLA#* MY; Z8X'>AD<'\FM?=/4=7[*^N6_O..@\8=6TKF_J_[Y&;B*0NJI(554:$XK) MEQ;31H?ICEH37:1V=TP$>1&W]M4"]2\5EI]R_[NKQ":"^ZOJDF1F1;8D8.YZ M6"N)_%1IL(#[TQN=/\I:^,9\_]%RJ8G@>TU3%:95[S21Q6PY\S@][(LFE/KI M1&[%\-P0@ 8>8'/:6=GA6AC29 ME11>U$:]3*W4WQ2U?,^Z]A4 #_X)[,^7>NG:D*J^ (OIJDL'B I;+QJ>;#E> M<*K8HXUZ9&ZZ)/-<;QFVJ<'44;*;/78,.U 5UG]CG B'H12%4B[L%@]L"37BC+3 M**YM*L\,5PY"K\8YS+-G-"6#U5L@!K MP;D H>P$K@PV%-;AA75S/4_U/#@4/#F>G2U?JU;M"7+T'RO]Q@Y=^K^]W^[$ MXVZI&R#AXPJQCJ89,ORCJZX--?0R"D">J[Y*G278*$A7)0.+T4+,Q1[.F#2P M7G!<*S>S#-REX^V*X3X2#$QCET;XW8$0^V+"#]2XB\GQ2(O'23VE2H:5 M96 L@ %6=/>L"#*JXF5$5_)5GC!X&Y@CVRGLG:_4<_?KD'!?*@ MN^+_'&367<9;@@W7H#%J[<3'TG76QJ&(-7CWVH!" #*Q8@ #WXV+.T/N!CPN M[;C1EJP(V+->)J[Y!/D7LE5<.5M=&( IE$#VP0/@8-529=]U;#@<(#N $2VJ M=W_:?(A+,CVI-"5;JN1"EI/ZW__K M69VLA_L16+[8<7\>[/8GR]K7Y\)B$UY7L[LR7)(&WOQ3LD(I\O;+9-#=E7)\ M)OCY8/O#C<@PT'V=B7]$D7N0G6_:L]/'^:\^K'\>/_6TUL#UA M?&?Y$T/O82GF)_6A"?2>)B]$JA>Z 7\DS/](F9D+9=+_Z?.%D_;@;W'4C[4O M0$3!B8M)>P]XDIX6$7N-5Y_O]-$./MDA<-9C#I.&TDK4&(F451*C@<2;TV MT*YFVD2!,K/Z>IJO$J&W[81@Y-';G?8LURU,J(7 LZL>AO9<"3'@2.+ER.%8 MB'(:LE3-H3*S.D8C(OLZ?/O1/*<".^'7W>%(H)K#'MV3<[-1%X[,O1S9Z3!S M:Z L43/B\>(\FE,BJL.\J:,5J6V^LE(Z\ZG YQ;;'EUMS\M5F(V,OQSI3RJ+ MVM@D24Z:-:)F&N2555<=PE#7HY&+9L'! MC56NAF!DC>]WE+EN..$N"^3Y2!>A2MU!BDS:Q&M+IP6<>+7ZET],U4<(ILX!%>6M4FHTL @8!'BU^PP_Q@24& M0X3':[4Y:UJS<1P=_V+Q(DZJ4TE2&5$A2(@3!1>G**6)FJ)(X!-\BJ)'.!FL M6U.9V@J^&1B*V6)8:S/BV%,XV MDZMB)K]VQF6(DZ.WAZ6P-_353HL;#EI#,[MJ\H-:YQ1/:[6:&G:"4=9)#G37"TB9"3+U'(.CVA4:%/>RU!Q9O4N.*K3;\:[N*\GX\L;TMBG35G-:$\GKNSC348%U48 '8T M3W%#^:*QUG,<988FV5?]2*3"7:C8B[>OL69O7!U*7!WOT'5=K.<\$C[S:)Z2 MPJ&AI!IE;E48#:EY>[VJ3N SG\]39#",U&2:$G$%4T4B!R3_E$)1<2=/;8U:?$Z2M56G]%$=/B\26-LL:A13*[*2=FW=6A>U) M*=ULE)K$H(-LD5[!"Z-<9TG4VI!/F9,FQ74Q4;1/&V^H(KL*>GG MB=OI&K8@.BRU9.LLN@X MLE4H.P1G%'M^;]9L8T+0.25_YLBRA,HCWN;J_;*D+%"AS3/[(.3G(V=97J[E M=:MG2D(+18,.-\RUX,CCB9J]'H57Q'H1X;/*AL?GYJ1PFJL4.N^65RSF($-O MO=K4D7!L$/HIKEK[XP*EV+IA!D,BY'I>T&#)SA&O@)%C0EP76X6Z($3+@=$R MG 7>IO5=<,0+"46[GEZJE8M"5'8DK"'U5G8?/A,]%GL31B\B>(\Q(W4#-#HR MH3L<=%8>+6FM-?HM<\@BIK2LH%G=6ZP]*13IXY$CIS(2QP8B#D4?S# RC4W9'C< ,HM6@7;?6CA8_ M\VB;[%<($5>M7(A&'FT34H_HAK.DA*%0L&M+-KHI%F:PV>^ MV":14)BI2@"(XHB$BL1TJHH,J>9$A"91DM8D1$*.'MY8*#.9C%S"'%::XZ@V M%/MKY:3F,3N\,2CR8QOA[E[I*_I)G)+BJM-O M$$L948MX4^Q,K:Y9.XG32%^+=A_O580A$O)CE0P1/M;I1Z\OAI3?6:@8(00U MNHLN:4J7C9,X)2A.R+4B33;+E%%$D-5 8(S3.!VX^<9@L&@2W-!LJFP%G2$P M..$$3OEBKUBIU?4!D-1=7*U8N<&V>1*GMCTGHD*%X(1@NNIGF;Z3);?Z*9RZ MRZPZ[0%#DS.4\C@BA$8P;IW$:5%@^U47\6MF83KISFKKU0)JTU,X92H6.MHH MU96Y6J%XN;[N#UON29SVY475%)NE*8+5"D$G2U;Y$9!G)W Z'SMX.UQT-Z94 M7;I6U:.E_KIS"J=F.PC;3KY6$0Q-POT%DV.M?G@*I\VR'A2E*KKE5HMYJT36 M=8^>ZZ=PVF@,2OJH1SN(L2CZT]&B,@Z4SDF!WU!2S!$4)5*HAM%H3F'HG'QDS^MK6N^4"C*RX-<;*6S) MF%H\J4_S#7>^'$WMAEE>+_)%KE$<=YS.*0O1VLH\W@_F'C=<#4OT)JN? M0G29L[F5%U +4R6*U6Y^L,JU?/V4W:?T-[0L:]844=>X7&,U=<;53YYES/*F M*8^9:AXI]!EBV2_E97_*[BHKO7C[J+P2!+WG".5YM[?"L2)IQ:>>H[?S_;6_ M'%-!4:BW\HMB'5A^S=5)N\\H%\V!-MNL!&/(6U*VWMNNB9/86Y2WR%IJ#6JF M:K!31XDPNC@]B3W?7!6WYAIUD+J,E<1<@,^)V$8[S-/8_-S?A>P]ZF_=FQSN M0]YQ>X)=PMWT 1]X5UVK8,9>1G.=!;QP@.W-UH82P 9TX''.0G5W-PAQT[KE MTG4VQD+R52NZN/L7>^[^]=SXH;X*O9 ]6;4EUW > U8+^]EZT)$=0$+H)<=% MD;;J0C<M>49 MV$;S679=3P)?WC^RI?J_?TP_6JK/GG"8]='8_;-<$IA9S5F!,!=,65KV9C*3 M&WRX#>;16_:;(^DJ^N#SSF)/G-XF:@&])_N(J9;G2QQW!D?+1 MPUWJX6(@]ND=7Z=F/23L*R-M;68QO* 8,\"LZ_";]\Y+&^-]5DN+WS1P_EA< M1MH$Z9:)\HW;YB6;,-^WBUZRZ?*-F^HEFS"I>DD@45#T/J5+ NF"W>>^:0.^ M9-,%O4^/+DDD2RK&$DD7_!Y-Q=CEZ)+TW/??;,+M]6X[[X*_0ZO+$SOVC3M? M'N_&B6S2P^W^+_ M@J6QCQ?%WD!]U41 -\D-6)]NS>6"#D\7SX-!A\^CPHXC#MGDA@]J53W;&E>T M@ O$,N:9JV9C6& _)7P0)L+4\FL&:WD]A.="O*@V4;'K[#NRWFS1[&,X_^=" M1XD4K"_*.7UQL ['YJ;27M<51*JPVT#2>7RMZY\%UK)M8URP&<@FA:-CD^!0 M1F(A6 E@"%T$K,E3O/\YGQ7\C<%Y.BC[BX.3:4_8@L-J"+<21))6VN14GGX: M.+M#EA!ZN%0PHSR#";C)20Z]SZ?&J8N ,SZ<)PV?ESBD)VR-5SNWIQ+KMLR) M0=5QIR[=B).AW"J+N:.:GV?YXO]B.D&*[P$4-;6H9@9&'J: XK*F"'R!W<X;&Y5]-IMIUSI?$YF.BSQ-:'&9+<[]H1L MI-$*YEB(M=XW:#Z1FWX3M]47.?U^,^/L6PJ>V]+WE,6XU+J$8DA@=SO5KJAO M N33]+U7FG+UNCX9"U3>IVA]*QNP B,!S[4H>KES;4)4_@4:2KRC@,VI'@!Q M69>,M"OZXF72-H$-A(ZE*O_N*N"< M*'_CI?5O7@/[_E7>XZ,N@'="T"?RFNL32!1,IPU&5_,S[G/P'I? R0Z=D:&6 MK CA:RA1+4X&AE[6/U8"1_\=LYXLA/-%*[)0]#V=IFDE,'TNS6E,(%%0[)XF M4L(DCS#8/956RDD@79![C$GIDCRZ $'&I-4,DDB85)!=DB[OO-_]K75\B_ZW M[W<;_#NK+G%)+Y?.>_^-$+H&])]NP*=PQ>],EV^Q";^U$Z[BC'\3&T55?@H- M]+S0^)U^3GR.V%ZE73L#,"UC\(28ETENW6FU:Q,ZJ6G-UX9Q H1[PC3<9RJT MVT+%N1*@;T:Y)2N^^#83H,^NJ-+1N5,L(05D6'1K-6:> MQ3XMO6&RP#2.H9:V65?"5KLZGN&CN&DK]N,705PF_HRZ3H;^9X:D[I9$*K;B&!@4$W'T$W*R/D5N!;C #)F6V>56G<%TL2QMF?[LT^1674#"8@&K MXP@_TG6[SSACJ[-OMXKE+B&WT$3*K;\U ].TK$09> D3B^?(MKJ^&^$RROU; M:O*$\6OEY:GM:+)$S72EP6-!N M^PLI5VJV]^V/4>QR:OM+Z^B$V1R%FW357.U*/?F'H_-9 0FC>7KJ3T_]B3,? M"HDV'^R(Y%>%I5-$ZCTUFS4XLM,3/BU;EADTJD5R6UYQ*\<*9LM1;SV,6ZA? MV'Q(&*1?RV-[$J3X\7<_:<5\N/N+/WGLUHS>HSEU<2).\GGPX].0R8?]@_D^ MCOOS<(?X)#[S^'&^LP0BE5(/YA!&WB.':TE(9_5ADS)2X#L9)(/ ]SX-:#P/ M+9[E&\5Y?+_)][),/'S,)IE-%51P>XF1DRS/V2,E/)4Y4,$*HP?\QRY!CCAWRRAV_N,\HR MH>.:&< 1RW4,_\<4AT-^"@G\(!0]OZ]3F?U$E@UM_%5UY:L1Q'N^ZXQ#7Q5 MZ3LEQP4<;1?@C%U#]?)1^6%;6+ KQRW7BU&%8"98;V"JG3%5%%I(N15TOGG+ M];WXB?$&H7WX8)??%W_RR3F )##6T33H_$U&27, 4Z(SK- M:$H@75(AED"B@*,0EJ(E@81)$YF321+4*9T2:VQE"ZI-99TNJ366 *) MDEIC225,:HU=DB[O#!GYK9_R%B^P$!_%"H;<$PG([$\3OI."AM_Y+)*]YA00::YWJN!N1\%=QK_W M+0IU_,Z9=A4Y=?UM^7Y@^)V?*'$*ZS'F-;7COJD=E\K]5.ZG$)0O#5'9X@0X[+GIIZ8XS>EX2M@W_]VS>E-NIW"#T MBN*$&RI27BXQ2#!>\8%>$;#F\+7"#?2K568?6I8^9O1*5EP[(2Z[X$;@9==H M,_PXG==J-HATL8_UV^)6H,2YN>KE**MO/:O9D,7?4;3A22XT>*,/*3 T_-DA M'[IZZ%'+>IX*_J?TI*H<[3++)B)]EA;Y7;U*8=D13Q'[\P MXHZ@Z8L4GTT<:L]N9]P,=M]?=>5[@O>B7<*E+CVB;OA%9X M93-J*G>Z^4$TE\PADMM@3I63HP!6Q,K]^(4R=UCN(E6QDF=&7>W"\79 _F%[ MZYNA_)+VUFC=8A=(K3#GZKU.N-$[A7)NR (XH^B/7P3U;2O5J)9D)YW6^99L?E>]5KFWN( M6>%(WR=1+F"C#HT[E3RBZR(%O6;T'4EGNN16W$''KE.B8&YK2,7OO"T'%"LKV>SWDAHK6)J4Y+N6:G V1O[L>OW!U) MDC=H^GR',/I$V$C?#+Z7M)%*\F19V1HS2:C;HQ724HC"L?1ZT!@5M&M;HLM^QRDM"$H5I,': M85L.+X[K'4 ._,[9+>A%7 MEUA.XK;%:F6A@WTG+V6U)C+2[5K>OF^_#:FME\C5)\S6>Y>?XHO)_TJ.G#0F M<]?GL#DJ$.5)AR#*[)5M/5&:BR9+&C5N%5:D49-$&A(: G+ ^#KL#D'Q[V'K M)2F^[D9EPNK6A S4&38+:>,<7CVLM,F'WZPC^1 M2)6"9IO- ;(F5$35*KAEAA6"IJ[M4ZP/I[U\T.QEA6Q!:@AVL;XJM'21@3Y% M KO#R8LHFQN+[+M5-)[+7?A%X7A)"Z]>ZKO6O&Q/N%71WRBR4!Z.)B' '8SH M0RX#NJO?5E\FG34U3IWQU"IF9.:.7_K /NB<+RDF=.MLZ$4 MNN,LMQI3^>R0$[3JM@-P!QU9%[)SKA^5]S*+]+]\"<#D BB8 REH:-'N(\,& M)H?_$V6>S>ZED;+[RX,3&UO^<8O >!&'Q^QE@>Q8EK3TU)^''YY.E@+/WK=> M7$B;;(PD^X$<64O5_*?TR<:8CC]YWC_1=P]O?=+(\<XCIS^19QNBI4O MM> 'K! ?A0J&W.>8FX(*C(B[FDT? ?)3 M=N W?K2KR*CK[\KW \+O7$2)4U:/\6ZI#?=-;;A4YJ;^MCS39VX6_Q68X*_D\@V1WM%VFW-N%DB(]+X(%WQM MTSP5?ZGX2\7?9<7?K1BO"2MU!5-2X;4Y+*#FI:7\SN5S2=@>G*,T0NQ'N9WV MO^^NA8#^17NYI';_)1>$&$XK*XZ+AH7!"&]0J&!?N^ECG>DW9FL384R^'\XF M9HGLF'G8%!@V?43ND-REBB8D#+1GMS%N!KOOKYSP/<%[R1(+:'X@>[F>*"#2 MRG JWJC7F2TZ *7DCU_D13IW)[* _&5J2R5LD:D)E9I09S2A/M1]+JE2>*)V M9V5O6->1WG2\\*6*L\V:URZOZ:P8KC_AHZQ90#E]TY-LM>I!X9P#PAF[8ZA+ M-TBD\ZF&CX[OB@)%MR'SM%)[1^L").J0 >XS/68 M"E,VVFS3*E_;@LN6NVQ6Z*QYH4#H%!41OH'HL*TP_N,7AM[E,#JM')JD8*]$ MV&;?#):7M,UTH=4;AXSH(P$FAHPAE4AUU0'X@X72F=NLD_[M([*?O:4 EC!U M#?#4BFJM5;@L^ ;)]K+'KWE/XGYJ-7U3J^E#1^>DBN@H=2&[0N9.PR]5*OJF\#D-[6:OADL M+VDU]:?+YH@M+7R$ OS%==RMF7&T MC#]3,R%LKWF3%PE)N0&]=ISHY]F&"5Q\PLS)=YWVOU@?W+[HL;DQX2*(VI26 M5F"B4B!=.S"-XC:KJ;*Q-)/?-MQ)5!V,Q@9LCHW_^(5C=U3NFS3'_H1;U1N% M^N=X]FX.ZY)8[N6[R_)V_ U MW($)E)ZIE9@<*_%=WHTOICF\58-U\EBNSI4)(BI2?2UPL6OW?/3SW-S4Q2V. ME"E!JO2JXUS=TH%"@3T?J;LNH MV6LK(Z0#&W*B -47N55(9*C>)_LZK[G4ON-+5L;=C MX]JK3)C)^<)9D4AU4K$PHK=:CLK(@IDVT2AG=-?.M:^O.TZ^,$#L+B-@6;J\ MYVMIW XNVL+J]1"NKY3+I$2>> 6O9R/N+Q9 MSN;\#3L:-8WI\B M(A&$B/LKIH1( "&(-]V8*2$^BQ#(/9W*IC-2XITQ&+^U62^]ZEMIK_-6O-51X,]ZNE],\R:,S<]"HE[+,P5LA*P$+#O@)@V-#4C\ MX]GN+<>6 ]<%+]U=1)V(H]C4L^&:7N[J(PTA3@KPCT M5 M'\XE0%Q= ]?$M5-=SX7KG4_F6P(;Q401T +(I@&SBCL;?"M7X B>J"]4;NGD) M%%L6BGVE,D*,2GV+7=0.<;S6 M4LOJ31.)_'G-J:WFV:"MBT2<\7*'(1ESLI_97/<)N+W5LBWA_P?FR2O M8S[?4O Q,MOB0ITCB9Z^L=?2^..)<'^ ^75O*A,-1YZ9Y5S-S7=G#[YSE3KK[4ZTO )R&]&T=32[K> M$\KRP JMW 8U5A<]:E'#&F%&83,R#1&-%A-KT.IQX:Y1+4'=49?)14F=*$E# MP2=Z6:Z^UNLC_HG-8VJ(0%ETMX'PX7H\;'B+RBRX*.15P\$\NKH="U%N(EE- M2J&/$K_UG@YI) \"33Z.$&>!.$?>.+))[ZSW/WZ&+:/WJ,Y=7$B M].EY/-/3**@')H2A^([[\\!I3T*NCA\7O_J>4@^&&$;>(P>#'>Z.^L W&1B. MGT$R"'SOTY"E"V#S'_3?W1EDEVT('K0SQ ##+"TG@H:9GY'W&8D9L"8P H!4 MG@$V#"PE,U4S3N![AJ+&[B?AOG>_H^Z+="#X^SY=0]KS0+RD)]LJ6ZKD0D$P M>T$_'$[U$M%EK]Y48L0C:O?(Q="7$63_^W_]$5,\6=:>/[!8$NEJ=A=Y)VG@ MS3\E*Y0B;[],!IAR#T?5GP\B#&Y$AKE'T^2%2/4B)0U_),S_2)F9"V7A_^GS MA9-!@O!GP(Q Y%G__?3.>?\1.(S$23:.EBGLLF6\!Q4M/8T;?(U7G^_TT0X^ ME37X/;.;] LX'#*=;-0C<],EF>=ZR[!-#::.DMVP<083]OJWWLQ[.HF]HT^D M^%FBHBHTAJ*(2.,8(1(43HD2@I.B@DH$@M*XAF#*C]V^2 <%0*RJ5,3(2T:0 MS#K%VZRHY%5?2-L<[I (@6% M$$R#[F"]<0>,9%Z.W*@(+:X=8H3PU6@BAA54ZB_WC=R?CR1+A1IC=1L.LLH3 M[L#EUB9/PY%'ST20&C8U#"_+&<4^4<((:]1%PEWWK.C[6G'/A[:F:K:#CXVF&:#UNM-F MAK4\#>N.("]'NK6)@Z I?#ZDM?'N9J[?B_0)CV0#=^C,Z.YX&,&D-W6.46 H[0@TY? MRH.' CP>#;7X=8!6MH3,%29J9656?==?*B,EF!V:+'VT7S%MFL4G31-#"5G#O:-)LK=J#E M?#1T6:Q/5F.%<.CQ M9+G9B*$U'HL$(_0KA563JP5U,%G\> ;=&5E"9OZL8ZZZ(O34 MG)Q'BJ62QW##H2ZVLW6INX*3/2$I.XC'\H41WS4IH^0/AH&\0MOQ4X]HNRJL MYMJL49H)6,N=54UJBJM2_-1CVJ( >EF$UDT5U76K:N)M^#%=HF2PB@8(6MB#E54D9!SJCC-$9@H3W/HE$0P>8I* M1R3>BG5QG4=+7. L.C8YX@@U'Y[20TB[)LQ98E-#I+EFE#MUL5WKZ*?TT-0* MPEJ_X-608&.,R@ 1>%/HG-)#?+ !:L^L&B8?3=N%3G%3;K1.ZJ'BT+5-*TVZ//:6'E Y&>871:F,NALV:8I?[M:6F[SML/Q]:LZ9CE)>Q)E16M&MNUUN5F0K06.C5&%];CY4F51:Y4 M8B8O%D,AXNI]8="4Q]0@/*6R"O4N/NU.9(\+U%G+F7/:=AB//)XHR6&M<65B M5;E@CE2P3G5$9\LG51:Z9AJ!P8S;YJHUG8P#OL"3!'M*9:%]H;3,5\@L4IAH M V&Y0/*!V3FELCC?$F=T >LC4:FNL>7U')OG3JJL6:7@!WU=4X4LKX;3;405 M5FAX4F5-&Y69-EOS4W-!KAE\'DW#'M4YI;+ Z[,6LJ 9!'.T+=(KK_R5&)Y4 M665BV* WI4Y=R)(>XE8F$W/"=TZJ+*L\;:G9AN<*!MHU1W6=W(Z'X4F5)8W[ M#"%D=V#0=4P@PH3C=YHI*M5ED;/F]&I-U?FN7!5)H.U;#D7GE19 M"-6;M((2J0GJTN4IM.DS;E8_J3$,2A+Y);M!3$K6>*J^1>L4%I[0 G"R37J[ M=D=V3C <7-16X58L#<%DB1,:?ERUD1*OM$V)742#YR2Y#1RT-BRQ^4Z3H^[:+F.HY#S%WZ%)U594.0^4V*KW]K+,S%=SF?>05;\%#QI* M$S7T"VWD7Y:\@:O+K.'R,H87>P[5C>%GEF KU;N,X\8?20L8-0A^E/Q,>/ V MNJJLQA?&OI/Q5,O*2/;.90F_M92,^ ^^*]F>IKH9*6,9TNX>)F/8<&SL4K.B MW9"]$WZJ^J&JVAE8Q H\:"G!JPEC*0$^A^5V]J%UBT="9!3)5^\S??AI8/G& MTH)U>;Q@L83/\S*!MYO@;H7: 3]@"@\ BFOYN"J8I+L;"UYDV,L WH%+M@)F M/C-45W+E603=]?N_[9X,5K*;C&'K&>W95JH>=*8;WDQ5[G8[MY V_Y^][VIN M&_?B?;\S]SMP\M^]D\Q(6A77;)E1;-EQ$I?85MJ+AR(AB3%%RBR6E4]_SSD M2%#%+2J4C(?-RA(+@--^I^# Z0'=^#+#_3@?OP5DO:6PEW@POK/G>..7QM[X MQ:TA#/TF=F@ ]!9:(!_K$,_#H.#5C%HA87JOLOUWF(R(OSON8Z .[O0'R2B4"1(7A2D9 MD"M,[QH#[Y8%S$HK#-RATCGE#%I[>)\?.%%"./$HP7\\4A@QJ^LY-S%+F5/P M;L"8T0I\TS9<=LO'XEW%"2& M\ %/(!B'MV=?E]RD("2"D/10L/5!X -&,"."J_0L7C: ]P!R( @/S_(0T[F MQPF*P2 S=P+.5)ZO0#BM4G(T^)6D %2Z"OL=0TGH^ MW!;"LYTV3!.<'RGSTANP\8D!?[SJ"HT*GZS?RDM-Y5PZ$3\AX#$AF(21 MZU ME_PY4F?@/P;@^7D1]]KV_!Y,(?4BA=X67AK582F>&I 6/5 LSA.NIB-C%4EO M(*-6+A@8X_CT818F%[:T!*1!T)H*N2!"I625DNYH$.EM*,] MZAE2XO'-3J:1Y,&87^X;W,]!,2]^SF.%F,_MEERI/+==\F:50$..6B8]N5TR ME5%2E:AQK,;HFR$,\[E]E+7DK+7DS"2GKH!?AX>C#BUF&AYS_%5N()S8:79"[ M\(3)TDK9S/+Y]KRBZWCL;>SA?C#X-/8S/>8M.8-:>6A'0SL:VJ1J1^-QCL89 M;1+@1:6.IQT.[7!HAT-K1^UP:(=#.QS:XUH MS(?W"ML;3&TCD3$HVE-99>8ZEX$5CZ2+;GU"CJQ8+H MI(FBYH$YZ8%::3,'IO)9R0J-);757+"T5$O;]W;6RH&TR':FHF5IN2#[#VL% M^D*!%#^+7C/ 2T51O.VUIO^+15!-I1OY+"#4LGN O%S5=]]H\D9SR%S0TKHP2%4SR)S@U"IS",?; M?(54;JF]F0GX,JWK3N#'GOWV?Y;%6+N]6+RU9X9= T\SO35=[)XV&^Y?]JP> M?<+4XU*/RY[.XMN^B53C$B:NB"J=>S.)L#,C[WJQ*AX3L.SI+)Y5>5=^S:FK MQ*FXC7_9TUD&IVXLAXR:4W^G2G'9LUF"]>=5B2O"J7E/'!MEY4A$>,&Q[[&A M/,^U%T>QZ1IM6.098>]UY\V%% -F)OG'2M;NC$7M.=,[:_[YJPH>KB\CT;#.PKYH7^U<_&E]M\YUUL%..O]^KQ MU\XK@\ZNO.-WU<.KT_;5[E6M?(7AV*LX+'9,LW^%?;JI3?>[(07P]UPS#.MW M3IA<01+!-UL*G-+*=GNN&_ MKXJU5WA29\^,_GWEW$5OO;AG^Y'X_97AF3U84/&6M^CJUCT;_]=('=YD=/M. M:+D^MA%_981 6+@3GN[8_[ZZM*[VJ]?OH\JW ZO\\=U6Y8=W?;SQV:]?5X<%9F!U MAQ1?RSPMN8;'X>B"BGBDW;P(/X3E?J6Y=?)A\]?5(/!_>(.E*(C:5FNO^NZX M'C5[ASO6Y]NC3Y;U@13$EE80^>_Y-@<%L> 6;0\K"#IP76KF2>YZ/I!5(Q8T#,<[Y:%D3@/WKPU'1B=R6/AF/6(JR_+TECWOV<62=$IEC5DU#[F7F=%0IU36F%/SD'N9(:?JE,K: M^:E"7*%P M;O,B%:P]/^B+_:MAW;/K'>99(&07B;B)P"PKQ]_.PT[O7>/K;G7?^USTO/U/ M]6<'9NO2R3[P@PMPL=/W[8.OG?XU(2X[K.YM?/KYO;O?_+@_W(F/JU>!5Q]< M5:J8N*G6"ML;&SHN^QLNSUKJ"^'_:'6Q('4QA]30]A<1ZW>73EN_&1WPXNA'9[740-M:0TT U=V3350SDYG MU^FEV?NV:\FYTM%=:=9=S1S5I1]A>RT=;IIIMBG+R37@9-N/ 0DL1TYG6(N8 MQ[GF"?-6[OPV.^AT+IJ'UA=WX.[>59R;ISNQ?;L=4FG12%T1990O6= [2O/) MCZLUNAU^NWH>F_O^K+Q:)[4P!V>UL;Z6[[IF/V1OY0?UK5OPJB[O^=$S[XID_+UD MN8LN:T?J^A=IG>@;Z4^5_\2Q1H%\JWA:A<_AD4&$[=*]G0=MYW;"XS'6WG;] M@5P1^7<1N>]M*V#F=7$ :_!WWP\=-,]O ^::>%[DR#,%!]*+Y:5F*_3=.&(C M\YQ/-K]4WDP8;;PI(+\/?GRL9H*I)?_.+QJIB;(MQ#11TK"5%I87RATS0*/12VG'\#YP<6ZB6*G["(M[7%QPSZ :ET(UC9F("G;>$:(8PZN>V!M=2]G*E;#Z1\)>Z M+ \%HE_HNJRW"*W% 8!/M$.?8S]B]GJ<7))+D7DHP/5"E^6A^-(+718M04^/ MKKS497DHN+':Z_+4350+<7&>/W5]O/<*2IAVCK1SI$7HY3I'9X%CP;L=3_M' MVC_2_E$.ED5+D/:/M'^D_2/M'^5!PK1_I/TC+4(OUS^J6UCTI)VCA;#';FE[ MM;CC A[BM&&&7J191*-_C?XU^M?H/W>CE@MLC6!6: MH48O&MI.A+8M>,4M-HO4'*+Q[20.:7K^%![1 %<#W#Q)5K5462WEN\\LZGW/ MSQVJ50KR "*MB36:FU2H@*<-AIH]-)2;B/7I3 W-'1K&3>>.20;F63!NV3UL MM Y]^M358^ZS1]ZWYH3%ELTE,UR\:KE:U5PS9Z[AB&R-N.8U'7'%%ZSR1O// M?/F'0[8U99^J9I]YJQ_"=&O*/K4WLT!]RSR>:WSR>,2?P=(S_M;@#++Q2<[N M4&I*!B]A=O>=KG6_G[?(;'#>%R:K_#2C/W2B2-[IN7A&YR=ZY'U=-)\_K>=$ MWNFY##Y?!?G7?/ZTO6%YI^=2@$ME!13 9$9?H>*!2I7><>Q[;&CT:+N T8NC MV'2--JSZC-R.W!1&K%%EZGUSGLF1Q@LO))UV/+$Z,^.?[&'T1NPYT3EK__NJ M"1^N+B+3L\W OFI>[%_]:'RUS7?6P4XY_GYS&G?>-ZO'7SNO##K_]X[?50^O M3MM7E>I5K7*%8?"K."QV3+-_A=W_J?G_NR&E5?9<,PSK=TZ87$$RPW?8'*"H M'%.]P]6'SXWP76/7?G]]\>GBV_L?;J]QTOG\RK"9Y?1,-_SW5;'V"G?D],SH MWU?.7?36BWNV'XG?7QF>V8-%%6]YBW& NF?C_QII-" 9W;X36JZ/AQ.\,D(@ M+MP)3W?L?U]=6E<-Z\O)5NNX'39O?D7QI^KW5O_GUN>K2OFJ]NJ_[9_P@.3C>X<%9F!UAQ2LS#PMN88G MK^F"BGBD<_CIX/;FV]E%HWC*C5 @2JU*=D2/ZTMAR$:U+%@!E%]QIY'E\ MN=IY*^%*-DL7)>,0#^3S\+PL(V16'#B1 V]XC64":Q@-6I:+J9SYL_!5:6"/FVEL+M;GA,>U<*VK-1#OI8A MEYG&]5,Y;'P\^V]ONU^_!V_ MV[ZUZC=QN8-:;$MKL04XVB]^&7*91YZ[\_[BR;ZT='/.EB&7V>7YQ0B62=V+ MKA]$Q8@%/N7;INAMRY[)R=YLZUR]K-KCYV^:F[1[*G M3MYI)_PWDW?+WIZ9LV6:FMQ;]CJ]K$C\C)-_=>GW'_C!!7C]Z?OVP?U/_YH0 M-=]C!^[=]WW[?>.TLKW3"S?OKG:W.U>5&N7^=@N;F]LZ;+[@Y-^R97&!'EP. M9_^R-%'^X;/%> M8 @A[/7J<+E!Q%RR!:+C#ODM/QK9]NQU2L=M(I1LE M]B]9T#M*T_J/JW[[PMX=_JPZ%:MY^.O]L=]]OW?]N090=P/]^-WM0G5G4V\J MFYW3OFRY6,S&U:5/,V_B/P=O^7W8_7%NG7P/FNSBO?]AZZO?.;@;Y$"CE!N= MN\_M7N^X6=R[Z_^T/W[Y7FQV4*-L:8TR>T]YV:*VF'VL2Y^FWNBZ:&]WV11? MT$[8I<]S-D[L7Q&&6O_[QW9N?W]4I73]Y<+0-_!GEW>>K90JNZSW=]\/'30@ M;P/FFI%SRY*U+?^)*Z2,)@T?%"W?]8.W= MG="<>_]6-R2W)_3&=O3]S(S^[_]YU+HJTQ)+7"46[K!B*V#F==%LPYO?FN[ M'(92V5=*FXE,O$UX'Q?"V"F5=_\TZ"-P2&WSSW2AE>'TS+NBLF1"8HHN:T=O MQ6WR.^+VM_38"91_-?)8(@RR0Q7T4Y89-RJE[;_ M+D_W7DTXN(0^ ^L! G3Y8T7;9O'5J_\N468-OVWL(7BESL9"B9O_*52?QJO9 ME9ZT@L#ZB(L=+Z:,$H>(K:NO'Z./N[>!]:-AENO]S49[\\NG7_4KO+0"=Y$J M2?B+ZT?@+=?LA^RM_/#W#)8UHUQ2"I.(4#F\:P[].'K;=NZ8K4K-SSB,G/90 MI;CD64Z;;$Q/7+;#?QLQ&[\UCQ&;0T.$*=QC=7;&[ A5$V7'-&)HQECKN<-] M)%_60V3*"]:/U'/+R@4#G*F:.+T,7#)C[& SO*!:,*(N,\P>.##P8NS8'D;X M//QVS^_!7(9DP[;_#C/;(!S/:)8NII1(!!0,'C >\,Z-KWC*CQ9AG>+X!/AV^W \,JVMZ'4;C ML)S BGLA^)T6?!%US<@8^+%K\UN[IFV81N@D!X(;K-UF%DS2HTDJ ^/3#IDZ M%8=?U0<*^79H] /X'<3?+AD', K\*0+%PFC GN,QHP)3+ LV,O^:MC.A[-&OS($)>'.?@ &!QH&\>.3=<=XL]B ML&:G$[ ./+.4J*C[H(U,O^CLMT_O=O[[MTT]T[W_+Z_<] \/O@\MC/5[_4+7+JJ1=] M":]\Y_K6]2NI(3]_;WYX__[SM\/RWDZE^RM\W]F\^5GG4088.[/KT3W7"4UJ M,'#.^S"8*(C9S"R2*K%T ,"(B<(%%R:J4BD9>Z?'QT>7QXV3RPNC?K(/?Y]< M'IT<-D[VCAH79&1FCFFD=J:O@*%@\;G>FS[2:=;3B>"1UOB<7_UW$0%WL [P MS)D91!X+PJ[3-P; Q4;=O@6A!+TB>%46J1)N!@%BQHD?,7%:"ZBK?YSI;Y[V MHCK( R,EE7TE2>TYFF 0,KQA:%P&IA?R0 L8>.<_H4#;0MAM8,,X#-$\FRVP M=A/UI)6RL4%GE=)583*T_M0U**TPC4]!1YHHL,8G9H*6FDA/T!6X'#X1U=AX MB)SR24 'XTDD-U^"+R>L[&6Z"@;H3* %&@6PPV @T"0; M S, W@86A]5W@#-A$0'. 1MRDXE?A7X[@LO ,#FNBS8/(Z)&&+?0N$8./1%L MC&E9@-_0W'+VM7VPOV05C;#/K'2@1C3L(^""VY!ZIC"C:&B?;TK"@(+,$0GT M!;AD)CR3(L$8GKT:72Q9+V5^BV\^;AY_NV:-G^>?JNUOEZ<7@TS,MPAF_ZT= MP\R&F8 O!G9/VV>!;\=6]%6L(C<^)_#7E;-1+>[N-LYNFSW_U_>#3KMU4S^O MO_HO[84@W5D#'AW"*UW7'Z"@.)Z#J\H):3,7'(%@B*N#Q.CS%X:E#&E--_31 M[O,Y F$M +4FHJ"$G.W [P%-G< N]DFG6:[I] @E.K#*K@OH!_LDPPN 'A&2 MM!V@H24-R3T2&!R':$8AKX3 M#*@= YYD,*XP=B.:OL]5%'#%*JN#LS@ ] M3/FW!2Q^I$N &HR]O]-,;N01+ M)@KC?M]UB(F$MDWO:1L='R$PVDP\>]Q!M$T!$2 Z,)8OX2?H!@>$$OC.CP-^ M9RL. 1N'P#GW>RM =YBV 5H=-0YZ55,&C<#YC[DDHAZM:"09%"H(7;-9W0@O MOF[6B\VMXNFQW?RY>W7V(9N_WGQ";>;XBY)$TI:BA@;OR_N5TX_-02/>MG_L M;O0CZ^CGYU?_53=*6V,Y)+[NP.\N_%40(O831#HB_0,>L=5%<41?#3E$D-:# MM9J?ZIZ^HJ?1F5,[NSG[V.BYT:#5[FW_V(HF:V_RO[+Z&QPT<#-=^\PW[]\UM^K=\M&7_:;U\:@#>'US3+USWV^5 M=.&W#7Z@2*(C@!& ]_&"RP@'A!@T+D OM0&M(++,/9H$PA0 EP"]) MT;0!/Q54_$9JRO$L-T;OV>3PA:">PW4Z*BH^.FZ5//5I:#1_!.US%Y)D::,E^=E"TG15H/B,@B5%^VV3,QQ(!?8A 6) )!#-C/#DY/?-.6 M 0[PPRV'[HMY$$1Y"]R7O*1@^.2\ ^JB:5D(NT0.\ MZWMH>//#6$< FV;0IB;Z+_!6B6W?69A]00$'G* M2#B/Q@$W?*@ /<8M$!E3F+7%&!HON)1"-S3Y'C$2UZSP)YY:,<2AIF#.+HV9 M[!'[FIVW*=U:8<7O&3(J:1@)&50I4P+XHVRBZ0?PB%@) #P\IA7XIBV9E+Q7 M >S'!J$\3KR$K\IC9)_/]YYI"2)E:/=8?I%++V7?D<%!7'

8!%9@G(P<9]^@R#&25GT1/A\7F[#XN"3C^TR [&Z?T*Z'D4]64%F1 MCR9AR(3?3'3E.*2EAW I$_R693>3^%AA.(OD),MR0C9\@%>$ )/9"5>:?I;S ME]_!.\#0XS =&(+<.H*XFR\GA_!@"<)QCN;O8?;CWI0J;N6='L:K8^0/"Q\< M2(^!TX.^\QPVJHV2V J07J9X-+Q,+<-&C$8EHP+!]]G)MY'"D%'-1TH%'1O M@%Y@6)T('%YD)#;U'5)?!M*PW2,$.%1RR&T&W&"G@6M+_#@A ,[Y&Z,C@DF$ M,\1=0:ZS,70/UBR9'5]4.3,5;H.GQIVWE+[#Q#^S\V.6GHYW/K$.J*6S5&-/ MQ#4'Y%'#P,FYA?\71HD?QJV?F%2 WV\1U((*$5XW$LBEMZAV02'28[RF3 3 MLH)8P!*>#U!=;]0_@D7)5IJ*RXQ7XV!A("V4F=0NTB] Y6DDGA3U.:A?O),* MFH?81IT[(Y/O2"8P,+FP\. $ZCQOF*9 QMIZVTB!?'1WLTMTMF=3W?]3M#XQP(AL6DQO\S>_V_ :W<,M?O4Q3L M]07F%[NF\\90-GD:KU$C5,M_X]/H8^7O-S*?*;\C_=X&FXCZ%K[OPY2)F&G> M,YDUSPZ8B#6$P4(V1"=]1.A#QJ[)G(/-1+W-0W->WW1L>CB(,H877%,,E,LE M+AI-7!U&FI%(WB5UD# 2KRE6Z\8]X!.,N7&WF=PKH2_DG6^X"N$!0#,,?8O3 MD"C%BR)6O*"GI@MZ=$'/; MZ[DU#SU$Y3\=-+=04%//'ZH&)RK?$%0EH=E14 M*2Q'\1_1V%U8)%+78(R[S"7P<,!:08SH!N$ F&8'U?4@P$@11IU;X!J%:627 MOE"#2 @5R*WBYI50<-NHQQV8&L .BJSR,%%(/I.%]R; !^Q@$L-T$.>X#"/# MQA &6DJTU$(K'432F7+.:LKYOC*'WE'0WK[HAG>-X^ 2W[-,-WPVX_^2BOG=Y='J2GT*'(\_X$+M#CIS&, O_.A.A08 *NI7* MF1Z3[\^ BZ@+AJ3#PSB#K@]L6_0'Z"EC M:Q'8IDI;?6B35-4:!PY%DE_NDU M%OUA/ K0#.+2-@M$F MKCA#(AX: ,FLH0*>'3X(*'BM),1C+XD08@T\3^W5#] M)7T.%D2Q $"5FY2P? 4&2F8N$TXGP;OVV5&YT;SX>M)GYY^/=\YN/S\YX439 MDN39R1S.^?I/3#H=[Q:#[KOS'Q?-7G1V=A>Y/W:;!YATFI!S,D2ZB6S&O,E5 M5Y;O=O?VS&C>\WS=/-:J?VX\O6Q[CU]/S@,\CUP1]N-\)=?[=YN',6 MVOUO^XWK 9%K_#3$A%QV'$ALP&L=)Y&OP-UY=]K[[D>=5_]M ME:I+$M-*_L7TY/.PYE[<=#\WJF?!5?'JZT>G_G&P"'*=F>_O^L-OK>NRL]5K M]#=O/OG#"Q#3G5+E46)Z3R'R0U(*:-JR>' =["US;LE)FF!O,8*7!.W,*8$_ M[AY0;(Y#D/G4;$S8/#PGGFB<7'V_WFA6Z^73KQ_O]J[#;_&OH\ZS2SM.,6-Q MGJQS.)$;=D\Z=U>G;/_GM>.?_]CHG7S]]'D P@O^_#W"2Q21-?^&+/?.R>-1O'C\,M-\_#'QW+Y,SE2]\CW/-3QF/CDBD"'9S\N;B]^='<;A^>_ M/NQ=;CN=C?HS[>63"/2E:YYU*HV+UO76\- UC\U/NQ^WZJ_^V[Z7/E.3'^KN M&R/=>)-1NQ.#I7,.0KP3^24@1\OA0?3[X@_GYOY^^'W?&Y0_?HW>USZX/UH, MO8S1;1:3K\O--HM:R7C7O#@Z:5Q:33V3=P6P?WV3%RB\)A( @;E]DS/M,V"<;9_P$,'%[X;D^#R/\7O M_(]/D5T"5K9$UO#-?N,B_/3.ORZ^_[IS]GZO M]3W+ M;J,]/"]?].K[M8]75Y\^FF@=RN-GZ_TIL_68[J$B"?X*I.XGDW)CQK%I=6%P M0/)$?1<,#!=AH-:^B4$UBP!6PA!8> >() +%5*0(KBCD"JB:((Y\D13&^CC0 M;O#4T.&9[C:C4A9,EDK.,'G%'M5L4_FY@UNZV%\]/B[C%62G!P3/%L2IG+ M^F:&H3+4KK>LZU@N4ZH_+C%8G-T2P;RNK,X9*^EHW#$O='R^'A2XZH/MHQT4 M.!!1/(\5+BS@-0"^X8%.P1\9\#05W9FC(JO"!7:VV?UUL7OI-JLUJ]KV:K=?-TX'(+'W1%4* M0'NJM2$Z2K7*=SEA48ZLPE$JX86,PR\/BW9NK-D2,$QXYKN.-4QP"_M>O6G^ M\O?>-V^^-&^JO?;PJM@:I93+UBSWCTN_# M NR4-Q_:]":G9*ASPCUP0B6!"NSZMBR]D;5$V*TZ3.TSE1VI!8EA""3@A3R3 MQ][*1-AYILT)%)2JE .EFZ9%G3,QZR@ZX>J*W:'*Q6N2K1Q9M974,V2W8J-\ M .MW'%G6XB"_@2FAB 28DN2WD:FCQL.9!#:OE\1M*ZB]^7#D7^DE+>:R-H$JMX<"=<9;3A_DF6Z^8,A@_N 8FLIC0\[B6J;:&OTV*S^ Q M@K!&_;X?1*B<'5Z$W/9#+&)IQP&5-B8#Z03^(.J",Y^6E/ :4DF**/7".#9, MICU:I9&,5LQ;5#+"H,!:T?J2#)AW2+Z^#TJQ-+;O87K=EZP=Z9DVFRA,T_3@ M/*,2VGQES)?_V=[GP[V>?;&Y5V[]JM]OOGA1JHF;[+Q$AM)*8")F MMD1VLH>[:N5 &[H<2)<#/;,SU?K7>[\2Q=]7Z#"!H M\Q5_6W)EWSYN=KYWFM^NG7VV^W.PU]L\:-2OJE?5T2L_G@Z*']JUZ$=S&%[M M;50'\=#^/H KQYYYN+7Q;<]L5+>;7W]LGW2^#>O%@^/.5>VJ/'KEZ;?BCN,? M_/S:Z+4._%_?MDX^7?MXV[UL9I5'6>&CCEWY MJ]S>W-_K?3ILWCB-LQ][[/Q+]*V.NG?T2O"G;K9VOQ0O&]5:+?BU?WU3NS$' M5UL3QOFA?Q,<'GXWR_$F"W>\V_?;>V<=T.AC5W[<,9WVMV&E4S8/KJL[._Y1 M>!W4KW;&K_QTW?FYW=IT*HWB;=LY^5ROW@6G'8"G8U>&U5/GRJS?W#18)6A7 M3H.=RG5Q %>.K3R+SKH_@K,#J_FU>@L8]6/]^,.[SE6E//[05K,S_+K?K1TV MJ[L;N[X5M+=/[3I>.KY.NY_=\K!W-;AFCQ*8>C=4 M_AH/5A]AO'&T=;UT>?ZY_JRQ[4( M?4*/-SXHM,EB0&B9+&[1L@! Z9$IK/\XPHH"^5:E\>.KQY[ L%TK52KW-615 M;*GR?/0'V\"0[7VYX-:PRGV/ MYX),G\SY=C-O1RG?*QR9'$'2(O8,\P-O M9RPC+<=Z[6%*K/C/;KS-9"U2^5H(_0[I,INH)H M]UX5376*ZX%?9JQX7Z*677.5NA[Y/\]QM[NV]&["S MX4_7_([UQK57_VULCN^374N]H[W$%?42LRAG;"?;V]4'X,LRB6LACMH]7!5* M:?=P483;HE>(#NVX*S3IXKZ6IEV[%/-0J=JOF+=?(1]P@,_;' MO02YG' V)S;<'Y7#Z4-JAJP=NY^<-DM$Z>27'71.3C]ME$^_US\UBX/MH-W MG;Z;K_[;&6\NL(HN(DZ+EDSB.&2C9=?KAZD-O[1BNM&.H(4OFI5)*SU4A M%<]]YW9ZGZ-!NU%F'T^^;K.KGS?;VX,5@"NMG=UOY:/FAW*3F>W]T\WM[>O> MUN>K'8(K$WH0KKY26N]XP)K D.?(VCP@B%6M'MYN;_PZO+XYN'L7GY<_O/.: M'1 /@"!;LX8@N8'P')4>73+"6[R_O:LQN[&&?L82=$@>'9)G M+\-:^"S)2<=]J'CZWWG:LZ'M$!%GY[_!CQM51Z MVI5=45?V$2FX"4<=ZC3,SGG(%UK:VM;V&_K3.VZVH#_P(VSIRV%AZ&IG.Y2W:/:Z!S;']&&,5 M>3#$6?\&..UU%K:OTW-\E]T9.)_8_LQ5N.\QX4?/"H/'%5/'CT+?"[M M1L#"V(WH-%&_S_C)GJ'1-6\9'17?8LP#;,!"1@>VMYAEQH 6\+!1X!EF11.. M'J6SP_%FJ9CD,?;BM'!CFO? M":TX#.'Q 'GKGND.0P"HFQOBIMDL]11UE:R]8LEP?!PE5$M&.L[$QJ3CI0RP M'#$N]4%B?F#1;6ZZ\)KSU"2>)B9QAKKO";,[\(,!^!7%3[Y_C:V1P=&(.!V6 MHXLG#!$/,>>'C., [72Y$5'$@6+DK:/9-Q\-SR_G,73'S,)FY,7"B M+IUFSHP>,SW\%1YRP;AG5MVN2TP"7\4!SQO4.5*I[-9J]/;DZDICPM6-.ZMK M>AVFW+91,NJNJP[#Q_ZE<"?)>OIMV^@Z8>0'B,F--O@D (.& )SNF5').()G M^#V&K:]96#"&?@P?\2A[R2'[I!^GT"5BFST?:>ZQ#FE(% MM;"HH>$ZUX1V ?/"(SC)0P?DS RPB@28&'D=*'A)URATX?W,6<%HQ9%A!AQ. MNW KXNC(+ZC7PI@L%B GOS7XT@IQ,%L^W)VB;1@B^MU2MEK"#R>63MOFP:-! MGE@'6/GO[/,"F&= 3=8[KM\"!@6OW?-[CF5$ ?/LD*^& S"=+T( 0"J]V/': M?'\^O<]!N +4,O!=P+137A0P!#9T1SN.XB#C*L ++9[R-D(&PP -$5L@//!P M&U11,$S&E7DZC$R2T39,V^]'BL*A V'I,A -#[0@OIK=@5!2*7C> M &K"-'Q82*2Q#49SR%<4U!(Y24 'G,.[W7?ZCS7I$ M210&N$[,%!937 -Z$U0S6($@[@L"T^MBRQ)\.\D1E/QJ&8!?!U$7WM_W@PB# M;)3T15J80>0!V; SQ-\3'\(#2D-<.?&Z=NS"D)!/._C\9!-G(C=L1')(8 9= M)C1[\@Y2QIF'PMIAX,5 S TWXDM\8'40SYC]G3*9&)Q<)Z3C+; GVF> Z? 2 M2LPO^]CM UM$NC+D"L706QEX?P66E\#83D.%BT8-]_(7,C< MS&:V5';W&"74=[X'ZR2T-M>1!_??T +C9R.#2I60587(!%QB%=4H5 HN?,2O MP2/L(4R$Y/6_F2\96) M\@XPE<") $CY\''0?1IL/X9O+5)% ND\ *H8=N(V2?%'(P::HRP.;XP0&,UI MHWAPV0X=%$YD%Q_6"U$<+$#!2,\HP?7#B7S-%SD6^%<2'QZIZ'?'K.4,,B*X!4PF#+QD?2ZC@Q[*,#.@29 M;!^L-V80C%JE8%3+U6H!V05^0! ^"IMQ" ET!M79<_CP7XM)7C3VQ&#>X(N/ MS0 HR)];XWP?8%D[\] , M7%;8,Q+!B'H]_ S$:_.ML_F/"5<2'AP3@T'+$J M^",-",>2N;4 O&65$!L#2 IAAM0%)^:$]:)+S> 99$#>#8#BK@<)8K M]P1G^O06(18;Y(9N7U'](G])&)4%@C8+X<'D+1BLU_<'<*4?=,#C_25M(H"\ M,)P Z CRNJ!\ 04X5H@P/QP"R7HD5W"=A^X;GD3LTH<>J1].?A,5S2\R#Z:P MLGPD /$!/Q&L6YV>N7C%/$KKBD M,"ATJS ]2;"[CX;?!&@4^NT(+ ;,%;YM<_<-U&&RZ#$Y/#0!SP YZ/JV0(9" M=ARP-@A&P4ZX?FP7P9J3?0'G-T+S1Z&+Y#5%,RR:1?'T5!&:YH74A 5!*,)F M/6:&@&?(G /\LP)GFT3O$\6 MRW("*W:B],I4(W,B'](Z%1#P ]+UWC\.4\JW<7!A."*\%ID@ J-MC.8']!'D ML,B%P1X5=G!D>BWAH)$0RK>=7M0OE==99M_!HI]$C$<&29,D-6$ + IGJZA_ M6U6B*'29:8,B";CQ 41S :#2-/9<,S#!^L'C@>,\]-)1D2%C<$^6&0,_<.T! M^E:$7("3B0WA$7N@\&R\NPNHJF '2],9F-Z2C-F1=-DO*4!"@Q Q_O?N=:6ZN[-5J=6V9AJ6?QH)$9AP>"^" M.!0(-46 C9"HU.A"[6=@."D&5+2.!6YM4)"QCC:(-WH88$>2-=@HE8W73@GD M-Z)H=,QQ./W*T\NW0G8+AL"XX-WXO3281<:.2>P*0\[8MTR$0'JB%@40WG"M MAZ: !#*(F8BO#!'6L'T:O 9N95+AX(:#[0<,2M98"? 93,I!"C, M-4DPAG_A-2"MP1L#O(.53&QNZ<2F3FP^,[$Y-]4V7?>"1::XF^-9P&4A62+/ MOS5%O.0!+)[5+ GB1D58P,S- ( =_E^DN%3$SX\42P,[2@@Y 1B7": #X 96 M[UKB,JEMS-%8^^@ $_RA^A>)!U$R#IP@C+@^CEL.8 FNSP:@H@C-"/<"UBB2 MH6TO1+6;CI9YA'PHCI-=#TM$7#%>%W=(Q:'[R,,L4OO>.B%Z$X!*\3?,_P1, MC;&Z@/JE_0!;PEQI/0 ;]=&?!TS0&O+H5T;==LU0QM,)@=I,4IAB(C H_#\% M0(5WD="%QY?099'6CIF>")KU #3P%SFA=+H8=XOPS>CB81H1K& L!+H"Z,_ MX'&XPC1PR$-LD6!%7"[AM_&!P*.&AHLY,#%#1K%#L#6F6XQ %O"6GGD-/A>@ M0ILJ07E8F(^8'!$34:5TY[)T8@B@'+#$0]6[F[#H&"&0P>0^U6ARXPV&$:29 M9=:_0(%<\AJZH$8P?(MQ";)Y>%V!U@]M- R!4T$)7B-YBTF>S)6\9P&XQ2?A M0A?D*A5$#AK6C]'ZTI0"91@^#E:W -S&NV/?[L9LP#IINA/H!P'(>L^8Q9*YAC Y0 M#/A59%XH>)OH"^1Y\#IZX3T<"2_"VR4 P^1EXZ& M"A II+YIR"."PT(*9^")DUT048J:+5" M+(QUPBYZB#$]G?-0.S!A<#&Y>04)7R?XY#PTU'8Z.'0UO4>Z@K%H/+$EG'5B M=LP.YX!J*:O,( 8!=A5F9W, -C(W?):I)MKU2@.8)LIA M#BA[#T2B^<-GX43YMR*)V@?N2X5*#(2_+!F*I U/G/D]% $F!RAB,Y>8[2)Z M+!2S):7!4XY@L&'(ZF(Y?&0\&<95%EA>(@BOQG!M M'L>E-/?(ZE5WO!XM7&4#EQ##N7<\2*8D6OF9L6:8)"!YE#21.#YG*JNFX*J? MZ@9ZG6'S)6 .Y_O$8T65W#(#F$(@HO>(&K@C*2L$*#F;S),RT>1Y4X(2&432 M*V4.4N1\N7B(.D.'9)VP'B+C/%Y>!P.!NY2C5( MQH9WF,<"\AO,4-1$AF]Y1(:VK"3Q#+[[#1T!LQ^RM_+#WS-PXS-U\$I(@98, M!U%TS:$?1V_;SAVS)ZVBXG#+( D/!F2WPXK+=OAO(YN2?FLB(SN::(@PA7OV M-.V,[5GZ?__;W=K>_7MT7",;FYS916UY) 3#ZXXU.1)RG)9D#0LD2!YW:0M* M9=4_?SD3PBPS&-E],1INDM,(N1@DAQT^:BL+C3EJ8ZK5\@FW@ZR [V]=8Y4/ M>EY[IU^.]O$*:12DCV5QI D0P RXV< J+^'>4.I';CJ>J+2,$.1(CB&[&8NNR5HQ".ZZ&Q@'8K%! P)4<@[E ]0G9#L,Q,4C.M!)40V MAETQ"RZBQ[+@+V0=;D8.?"P/!2#F N!6'GQXUDP?Y\C%))CGLLP(0'3!"'>I M*M%!\V9>@W5":X"><681N,)M1^+^T8A!VVP)AY3C("K7)#)0@@07EWLLF3## M6*J(5($*7R4*G6)HN/HL* "&UU)1D(=JB^(PJ2(!H ,(VA,A$62)9&.Z-;1< M,5Z7:,4\&3?CJCNY,@UAI&^B:DYDQ323 /Q*KPTHTT@9:XJ3(// BF!)#M]T M*.*48_L.M2Y_\;I\3X(Z@><$M!2R" I&[!E9FC(GL-E!C6LOQ"T&]\ZDP$7&!"7Z$U4*1X>BC! K]KTT%G/&?%!["7(^9[QJCW( B*F3 M4/59Z;RT5TK3T^=8[0:+=PJAJZZ3@(CZ71XP2;5\R+JBH(]'^(IW!B5X@YT%)[HH-QQZ6 M7E,206RN8+;<'!&*XE4>MTRK_WE44:1!Q]D>JSN3/2*B&CS XG1A=I3X,47# ML917\$C"&GZ@N#=I1,;)%J[P+ N^3TR5UR87QB,W0FPF5M)G2\#XM$*FKNN1 M9YR"C<:B3"S(I!N4+VJ%B2OAA&',Q*8-IRA GX^!D'3BC+O/GC8*+P#(P&P2-XG07.,MUH .Q*1;U4M(NKF$0\QEZ? MRA ZIJ(\F>R)Q ]^*.\?FSXTKPRY57C$"WE&,YQ6%6R)(9]]WW MQ&SYOA11\L##&\;17LBKICAFI-)-(X<84&\ 4 M/>8-8N\:N,BC.'TV@XOXS?<<"GA0R'F80(7Q"19$Z$#9,H=Q'A_=B=AO!F\RK239@%$%^,AD& '-4_+(7\4$+6QAP4: M>-5[YO91?Q]Y**24Z\6M8.2JL6R6G[>8>(U/$H[^WONCLPO900+'ET8Z!*K_ M)7<2[C-\M[0BN',. Q:%D>_QS!?0+-S3S/Y$?4$H=&HV;A\FF1W2X [E3V$\=%A8Y2?;J^)YJKEC3TJAS>$??D=TY) ?P M:RD;G3"#Z-2!E5BT3QQM/? 1K6R("XZK/&HII;VV.-E07YNR^G$DZ#&@K&.2 M;17F6YI96,%V-H@B]KI@V*.=;A(.:0ZJ$9$3(.M/2R<"8]31=<3T"?,"GK:$ M!-S:)RT2Y'@*HA;1("^+YVNHSG"H;%L'^?)ASI&R)32S^#FR+&5M6/)E6 XG MM27XB_9X +0J:6JF(8HTT/TU.!5\9H=W0+BI!<1SG5RQK>F=ZUR)[(E8=5;MOB'S" MK6/SJ*8,RX\X/%*]\[HH7C++RS5'JFAH,.)N)MFI0S77V&I)1,11QU,Z).([ M:&6YCEJ21<]5N]\4U'8>==#H#%OOFJHO@25?O(V%0BWTF425/4F!R,0(+$"> M5B'U:/M4?!C)%"U9<&D:D8;I: A2C,7)T2RIJX=UZUC;'V;74:[>Z]&\+E*, M$ZA((I%(\!L<'<]&<:]H[%8$+D7A)$DE\&:DX87L]8'^K>"FL><(QDX>\7!Z M>7+@CMRB)&:X^$9TR:3?8V$^E6CGII@K'5PW&5Q2TAUU$<#UX'W=4#2UN&#] M2'2U*!=$SH3J(=*JK>44;2T&H=2V5AFA+!H0\',2DL8$ T3P?VQ42QO8-\P5 M2>K450&U]D>UM)G^"&RX]6>!>SW"IW@L6U9+$_;(8G/E/VJ[ZBM&W[]5VLJ\ MOUI^_@ P?I4\')')Q 'ACCA&65AYK0B&\4O(R=X_..+M1;Z(3>89=" 4<3$: M]JDZG$_%Y'=A%WG9G"(SFLP+1!.3U/"*Y@2AJ/[A/07:;6S5 R,UD]U=RI-$ M0"!I@3+V+%EFG;U;%$>AS@EBC[97R1M*#^P<2+>8_;%1JF3HMKG[7+H5E X. M$P>K":]Q3M"*-T; M[HDZ/L8&KFMD4JOGIZCG/?"%0AX+$@**+VS5%^299FDJ*1D\8I[T#.XO]8M4JJ2W((PFM:_C!&M40]#W\P#T_+IT8 MWU#?!9OW9NWR0)3QX_LK 5K^F% MHMXN:96"_#)ML*_--Z/:,LJ@::!$:^R2I*^PH"@-R'HSAM="1OT#^=Z)-$8@ MU^\WT<6J%3KMZ$(G7>B4MQ8JLXKA>!@%7XT0CG82<@AL)L9P*M4-U3T8#:)4 MMM1?@1$KFQ.\\4=PYO0H3J524S'6V AV1N)($^,XCQN!#N,L+HQ3*>UF&6?C MF61;]2B.5KY:^3X0HBB&\N@ #]_($[?29#*)SCSB M/FW3$OV >*>:R^PU6D*UA#X8]U&"+B"4U?LB/Q0B0H!22PW=4Z#Z!#CRZ+ / M1GH>"BDXX]>,Q!1D!.B)(84T-I*]<3ST- 6K9(-6YN385"MWD:EYA)D>H7B3 M79 CPU$V1J1GSCY-.1<>TIF%).STE#!8GC2M#K#G3]'NF6$7V["'76JL<0MB M[DE>PWKM2&S540KN ;!/BG4(%[:V.0T_P6^[J1K'N A5D(^=YJ)H,J[2=]+G MC2&KOCE,3CDT+2O '<4MWXN%PA,_PH6@S&Q?;##G71VEAJ0K1<<._AS:.<22 MNT6A,S_0@+I_I8=.9"Z:I 8*H"LR3Z; M]C7!6C_1!PWKRSFE^#7\Y#O!0:.!W*W0MVBW=%H M?QKB#,G\E*A= %E/_(CQXC^0OI%*ZTRQ]*O_WIGBI*:Z(?N/:,(1PETV" MDE9 9LXEX\>1?>;',X!L9(^8$C,O%S\7^'XV;!QB!4YR=J,\*#(=)XB,Y^/F M.66W7?JKV*BI7LO_$ICY'U$-5'! IFJ02:]BBKRVOA*6#'N2NRL=/6FRF M\!=XBI0C&/,B6=*1I[X03FIVL&M9*W M8>V10ZN1J-2P7>UI.XUZ_(2HE/X A69^(,S4C30/6,9#[B$N;?VQ!S,6\&F0_:5LF3:(.(! X21XPQ?<29OJT/\76B@V* M(?5#$HV+4CU"JXP':8I-&WPW/M\.3N=6DF2CBNKAI+B-#$.YP<=UE/;BU*F( MZS1J"BX/7N[(O@/BII4\=F97UTSHFHF\U4Q,U^>*8,J>[0G&I7YCDU2%;"8Q M2>B3A QW+OLR,RIQD;B)M!X,'^P, GE;04Y!U=4,2<6P)TX@P5Z6UT?-^FS=;"^<:6D#A8?J%X&OGIXCA" MVD?OA>FI8WR-35R5?*UH'[E_4P[1U8YX<_2GKBODQQXC0Y M_K2S/5T)OH+\ J&[DU7Q \7VY@:^G L*G:<4R@V43$XLY43.U"\\^=32O"QX M.E:Q]+E9[O%J%3SWG A@IQT\4FS/ Y?#]+S2M]E\0))9H%;+U'\3!!W\69D] M>"W/=_< J49J0@I$5!:H4!6,K#"1_1O?%.A8T\<]0;F)>GJ,E=88KU-ULS?M M0(LW7'_:/G4GE:U#U=/8G;1_28*7QXYR$4?U6EU4P=3&.C?T/U?E2Z%7DNVA M1H>D)G[1":RR7PC,<]!EO M4-TD*X>6P/'U&"A3=61@[U]$EXRSYX36\@A^5 MA6>)=-B;Y/XI[Q5&F6X1-AE7OJ\ ??!9 @P_4& 9AN8E?2XIK=1FO $C6;K, M7FUJA#Z2W"(IH*8=>-ZN%(.$N96^DS&U05$6D3JV)V?UR@W4V>DD![@DUU&L M&&T7-BXW4:<4<3LV,I5#[4*HNQ4=RIO9"H]96_D.GD.%+V)/')K#['1FU!.4 M8PF3UJ<(UQ?"\(I'XC!X1]I/:HX]T90#J$ L) A:(3G93UK 'OBZM U&XG5E9WA,U;?G"/6+J I,YJRJMTQ-O M+RA=VM/.!@G'3EYKT9J>.]Q,]N/GO7?P;*4)8Z$S8\ CG_9$<4PTI[4\E"[) MX5*[B-$Y/\00Q)_2'Q LR8\.)Q%45!1S76&2U / +](3NF6)PX-K'BJ]E2QSRDG('Z1P"5'.&:$FDIQ4:B<1Q\DKT(4 M\)5R!U%R2M!#2BNK8B2W8,F4B^T_J8*0'Q.9#)SWX )-()I.)V' W*HV&.L3 MM-78&B)5,988@ Q/GT\:0D Q4_"^6L"DBN9D$HHAFR.]_]$>NHSFR4/W"B/Q M6JS 'GS@R*O?G:\?IQH-#J?U0E%A@!$U.QCI4+@T%EU=&)JLMK4 8WW3J6B M ?7-8_85D8%PU<7O#XW:D0^\DW6FLCDM'7/#CS=#=B.1$O'B3)#D9VQW9HWR M?\O]G.@<<_\Z;_[H_5L!1GU3C))QI13@94KM/*>.U'1I-3]"2'ZVS0H[<8IU M&.G+B*Q* Z[\+0-C0NDET(':9I'6E(Z(F9RQ.6KYHV&?JPM15Y#L4U#0;]]T M;&&SL<0'9-F.70X'UDZ;+-1V\1#KX@Q0R;AP@'OY8=P9=Y>[FTG^SA-U6&1& M[T$F2:]J&AX=K\+/TQX+.A5D&1S5.9N10A_<)+.2.;!:6>? = YL=7)@J49V MY.&]6=N!2'RC%:1^ 0 MT*%(-TI?5AAJ?A"@:CP> UR24%X&3*6SX8>G#1;Z3GU:9E'F@1T^M39/NDLGF, QM MB/,(1+1"@1*>/TT").$OA#TXV&V:486\.$-%@)3(7( M,;5#58JIQ:N<2+)":/82.CF>@%\\7D,/LZQXMO&&W_01J++Y$NNV3(136IEGAOFY:ICZI?[@ M:I:\RZ/%P\2[%B>B\_1Y.W;)5Z;T,@7.>3=O423KB (D'F\'[ FDD($F<48W MI;'Q>D^R.RP*)2Y&!B$/9\59IN,@7-F#]42%#(]VPBYI&)E>I_@@"H1RK G* M4!KS8@CH/.R$CS;)X$;HEF6ZQ8X>_&?2Q">]AK:6\1-)5*@M3V"C5O5M.GN0 MI_2IBH*V!.#J9[9#)/OD39#"7BR@*FV, Z0=!XG7@HM6J19O>%&THA"G]; 0 M50&T@D[7]^V$)S#!CXO+SW+EV\V2:$RH4'?(RVBV3R<2Q)"WJ"RTR&6R<.2#:6%KNI1"T?N,44P,5>T/(0$QE'3?PL M4'&'"U=/6!W]#FI.?$W+7AAPT92MD=UR7 M$^=<,R[34DYRED_XRE)ND=J.=V$0VHNW_99G5- A!5,5@J(UE%;K<: 6)Z6E M4HI=+LC8A&Q,+E@.%IVTD=P[FAR_ P).QQWA!B%Y>(*\&"2G[],94;+FAI)? M1$#7Y"D VK#).K*6F%)J@&:'Z'1)+4@SIR-.Y%FG(L=TOT3Q(@&Q8;8P)3->C)H]3TM( M/4],<_;%S6;3)1U7D4[9\@..6#TZ+%,TPI>:@A.3)0>K\C*V!(7Q[20$D42U M<DI,6R."!!L(2+H@@O=Z.TU_M%V,"6+N09_@$)<&#O@ M#?<_R0/ 1#-W7$LRN>F)G"7:5!6@@A%H)XDE\I@Q-3X M"Y0% R$57E#/_N);%DGS \;#@!25"8Q4^]UGJ%HXU9 [A-B:*#V>+,.;PN'G MK\);6TP-E3IM1+5XN@*)!KX V':S_*<*76!R_!AVY867&20IZU;=L07CD4M9 MKDC/)U:0Y:MT/+,LOL>=J 4I7F)'NQ\H'30RXLB/A!C9LH_7M\#3:Z>^T6]+ MFU&?"J0\/U/JR<+,3@01R?21.,FQSUAU8@9H.<(TL9 ]@ $=5,=VS("X\RNC MG_D6-9 %VN3)5U\^1V .[ G$CVI2'L"7@<[654^F)B_:X<48]9 XKY"<:82, MD@P_.8A/""*&8KO@X D[R9(CQ-7A)$?;JB.9!DA%ZFQD-I,?D3& ?)<&SEB& M1&@C$SP(I32I-C[DIS<>DP9N4?P)";.2Z/EP4/3@$KUN(..W*[:P".]TPD% MHV6[2J2GCXV>(';_,7)@#<#H >Y)F_5,;\[!3][J4]@>%7F$>(0L)P5!G Z' M@AC:! SEL: S%,>-F,"L> *+[_J=86*CI0>HG%B9G _&"[V3-%SBX7FPY'C$ M!W%1.+8ZW(O VT&3WR)6L$PY?$ M=>1&<2EPTUXB6EX,23&@.(P@RO2 'J$'2:#2>? ]PNEQ98MCXPFA)D+528EBEF-" %:,!HBY M'9DV+/D8%7PHJ4@Q%JR3$;&,] 1";$01@KLOD H9UY7,TE5TEDYGZ58G2T=G MA E[E#9<@+_:S$'?G%>\R3^X+4HN&ZFB)T4D5 UXRXCSZ>@R#$28 4$$-2\C M$S=8,LZ=>^6UF0U2'-HF/E.^4%E6YZ+9E8=XD@."O5]BS^%9NP0Q4"4)-0S+ MWJHVPH3C. M&])2*R=,2DK2\;8>( ADG&37@=).)3/>22LZ,F*Z3AWKO9M'226PH)>SM*..)JB#5V673=EY=.7\[!,"U$)_'49$%(:BN0P*QB8T M<>)Y29]^4;>V?DJWMM9'M[8>JEM;%>^77Y@;,4YSY\E>7(J&D3_+%8WI!!D"3G?VHA3BP*1#-K+G5\0I5/VJO"D]8!0WAJ1!Z9!U MDK-!L[^@BJ>[1-R:AL[;LV!_(-Q.J^;)X.*<@\LO!) M61 R&>L'HYUD&"Q7A$)Y4RB+-E.(L QJ)).. K>!/3";PH"M*-:'*3D*F<-O MCJ@^Q&I:^35-1F;$,7R(L2F.3";0VE0VN^.R8X+;'QAH8BDG0^6?%'M4TTIR ML2EC.&TQD@T-ZC ?,0)43],'06GYA-@B\:Z"(>21DSB\X8!^([:D?1 MY +>US5=X4O>SLG$F:HO5GD^>_K08WLYY0>78(9BK.4 8H%1ABO(G<54X28B M006U5^+$I@12F8!!%R73"*IA5SQ<-3)5.VL2$B::,L*R[B4C+(CB O1' M@GU0)2DW@AR(^ CME^6=-)V0&XP)\I<6Q CC+Y*.%*Z7V\N45D7);$9>JL8J M.)2.& DBEW^EKH4G3L=&S95:,M6)4BF*W ,[K0 4LX"IIA5?$Q9Z=,235<&] MLCF9JYXAI+-L)/:D-A2$@M7VB>-M"95?10HY-RIEM/.D.'Y:MY]<_?:3I96, M959U+%/',I<:RWR2]I_00S,O[OQ^IF]EV@9TWXS,Q,I>)E;V!*WL\?U6EB[$ M%.]2YBCG-F&'.2C*Y""9]"L<[6& &.>8GO#4,]_X(%'\A.@A$UJ<>;.R7NY' M(X(^KDRC0+Y5/*W"!2OM/S_2VI[K9?$4@#BUZI]J-G"D6[TB-LKS$?DAQGS; M=6PP',G?16R0_Y9KQ@$LPH,J23DW(+G4;($%BB.V"%54+I4W[\OITGWP(Y;, M<1POIXSM_G>JY=K?:OY6/<9SY!2 *528>KQ J;*EZ9(_NFS#P#1=\D>7:FEK M6],E?W0!/:;E)8=T 3VF[4L.Z:+U6#[I4M%$R1]1MB@4HNF2-[IHCS*'1*F5 M=C8T7?)'EXJV^+FDBU9B.22*AF$Y),IV:5O3)8=TT;YD/NFBA26'1-%*+)]T MT4HLGW31PI)#HFQI)99+NFA?,H=$T0&Q?-)%!\3F2I>_H@"KQF96(;:,15#+ M^!Z[#H(G+=_%+_]]M?GJN?RY6[K7R,ZYO'GR$K6FK@]N/,9J3%&$V: BS'_^ M:F6793[@?,&\\416F /P70KM%[X$#^5=7\8J+$ KYGT)'H)0+V,5'@(L+V,5 MUDH*3=MVK 7#:!V[1OCU/D*_WL<&$X$\/",.3<\.WXP1 M/I&1ZG-E9*=472^=BNU'UD9_9H*J9X*GELI@"7",F^&-6'+ " MY/^=.-X:D?S/-89&,Z-Z[KS*A5FY[;6S,2ED%A9^KB^FBM M-C,KG3/:SVQVO+M@SF:W%,Y>CH!KSIX;9^=N:LO:9O#2V#IWA)\UJGY9]*SD M44TMI3@E9VN@5?5,$ MH;>W]-SP,C;XW7_2S]/,C(&W"EN5 MG97:#K9 <+N*!*V65VW[^'T$_7/U>5(KU&?'P%91_BJ5:F%W4\-:S<&KRL&[ M&X4-+-C5#/RB&7CAK91FIX)W"INU30UJ-:C-/:A=\;)A'I0]\B+6"_9/2_X^2G=<;A4IUYXVN.UV; MJH_'D7US=X8TSV5ER(S"YSF;E;8#"T514\KVECW[^03O"]O:#]'BH\7G>>)3 M*VR5-[3X:/&9G1>R@N+S3#A:*>QL5K07\M*\D,K&"_)"5JGBG+_BTH],UPA$ M9Y2U*#M?5A>4580T&]5";7.&V<<760RQ]"+U975'646.K^T6=K8TQZ]R^<\+ M.)QUAIGGC=U9XL2)7^'K%2_'Y*_;\, H- MOSW[@'4.)3V*[-LG="[D1GO4M@GH\[7DX)S!HQL[8#NI)X3D4(.X7-30VCM/AH M\7F6^&P5*I699QFT^.22@70A_AQJ@FJS;.J:.]'17L@DLL_0\M*DMJ?3P?2+*=AVG.0X!WM@J5V@F_#FN_/_'R;R"/K]U(AB_E43/^?W__.7,*'8X MN:QW+<1T:MG_*DKNUKJ7 OPY\V.>IQ3LKPMO+T=RY\+;,S]]-6=DGSEOYVZ& M\R^57R9C3YGNS":=/RBRWM4E>7"-\ZBG%K\,^>/\O)0DKH7T3ZW8U3 EA^*O M8R9'W6<,[)KQO[](O%[7OC[]VC5S+YW0+[!YY"):L^=KSGG")PN9\&*J2O(UY^77 MD&C&UNIZ-7M;YVO.&H>\@ EKQGX9X09A3*7N^&&1JFT6>!Q;S([#!L Q^-G%ZZOI7?]R^63(G-9/YK51N^.\O- M\WG,B^G:\!=;&[[V1QGHVA1=&ZYK4UX./=>K\&2-V%H7?NOZV"GXNJ(QB&;L M-63L'5WXK1E;%WZO)3TUN,X+2=>GJGOWB0';: MQKG9ZR\I$OZBPMZK"%5FCE36"I8LO=I[QL'K5>30REHULI\#^N%J\&0?.5M&PS[SMA[;KFCUGB#MG7OVC^3-_ M_+F8"F6-.S7N7&O<22'5OR*SY;)9C7,\:$??#!B2!=;2M>54*E4Q%_DA4P)\ M+@*?--B9,\G/.(R<]I!_Y7BP2M';RL[X,D\L'[%>BP5&K5PPJN5JK6!8?J]O!O!C MY#_ZMFK)N.RF X /QOCP!F9HV($#?QBM87)MB!?+2]J!WS/V#XX,T[.-O2]& M. SA16$!KW9C9&+#-$+396$Q&O:9X=+;_#9\2W>%(8L*=#/PGSJ:S L:=\P+ M'=\(_78T@*D:P!7P#8/WP,PCQW3=(3RT#0_#D9J&S<:>%/)'[0&!H\"Y&W^6 M8*P.XH T5F=T L?1M6FW@]\_2N'P.'#?S@ M&IZ(4W;NX$.;,1QQQ^PP>F1^U-BCZ5@I[2Y0HVDJ/HF*IW%@W$_)GCD$0H#. M\_AJMMW8BF*XFJ]?'P;E$X7$I['E1\KA P*G%4?(!*#W$R(4# #:5M=P0/&R M/J,QX[K!S(=&V[0B'Y8SZ@()D&)^'(6.C?\/^"-]-V-C@#%3X2KX(/CP=IX0&::",PTI$_P6)Q*\K+EL8K@CA00 MX#3NY960F,5T0Y5+0"B0 ]IQ% ,%X1G<$T-R9BAN&EY,D@PD$H17:8O/"%G/ M@35"6OJX@#9,(ABBMU/9_CM4"&Y:%B@&T[,(9" U! O (V%I;L%T\^F$ODL\ M"=^3G7!Z^"ZXIQ\'5I=@#I"3W3FP6LA@< N1+*6MA6]Q79.>DKEXA %P%";W MU$@I143T[./H0NZOV<[M?__ /Y+P%JB? )W3KB!1ZP8@N4 MZG71;,.;WYKNP!R&8IH[E=)FTF/_[ONA@W1^&S D^"W#AV<>2X2)_/[;:J6T MA=($?XIY;51*VYMS(M6(?J^EA/G'- #[M/]]];_+T[V)C2<);7I^T#/=#-H4 M7[WZ[Q+C!2@3>_ K:K@DKF#^]PA>S:[TI!6Q'!V-#6NGAU0NP/P[^(0K%JX))]F IWV_!!6 M"M;D/*E[RPEP2D:6V#Z@00CD4 0_&K194 %9!$.DP I((8A\P/\Y@<1I[BP M2P5Q3\ L'WC@%]R%S.A['N,09N!$7>%]DK'">X476S".+CFS)EBF2)*&\):> M2HBU!^]T?B4L;%HWL4.C8U;7 _7<&98 6=-PT@D &R$8!&WL$).%R%Z 4&QR MG_EEKU-VPR_PX2X'U^3BAP88 (36(Y& -P4$CR%.T1T9;^:)/9"]D(8-=[!> MW_6'X-:U0"C:#HZFY7NQL.N1;UT76QS7*_>!=<;/!.%:4FC\0$X',%S0!9@O M_X:?;YDK;Q*&'+2";]$0IZTRK-Y(6$',1K)(PABP++[ET)U$UJCK!'81HQF@ MA5P_MHLV7AQ@H& '[,X&"Z3 MF$AU6 P?F5#DP 5KY<7%&(US6F.3"9_!2MQ<<;<"XVIBS]-IY M TCXCVJIG(Q&'?N(O"$+O';X+64E7*+>,A[APKMZ8.' F!-$%CP+ZQ0R);XW M8$C."8&UU_*%U>2%J@L\393%#%T?'CQ%*">&\4:F\Z!D3UL4=8SWR!E?C17C MWFII8Z$QEOMYM_8(WBTH-)I\_9CRA1O&.2]SQP-4Q4?SN9X<:!# (]\CYN.%,I*9XIN;)/\Y $@SL+H$D/9!Z;D^I2EI@%3:E4@9201*F&OV0_96?E#' M@UPI.!)I8W&:9D5 J7$3_#^N8Z) OE4\K<+Y[9%[=ZNEZKU5@PHW*<_':$T; M3+I4G?)O*@Y^RQ4&(%G[04D5NI->+"\U6Q0'88N0T,><#843?I*U$/_.KRI5 M$V4Y1*F4:EI8UHNN2/+J#':IHN^:,+Z#%-EQS2Y:'M M:9HN2])CFBCY(\I#G2HT799#EW)I6RNQ'-)EJU361C^'='EHMZFFBXZ,::)H M))9?HCS4NT'31;N3FBY:B>6:*%J)Y9,N6HGEDRY:6')(%!T3RR==RJ5-K<1R M2)>M4EDG]'-(%QT3FRM=GGKPQD/%>\M8A.?46.>]?^/4"NR'U^2)2V#Y+G[Y M[ZO-5\\5T9W2SKWYA*4L26LJC^ ^.]SZ<"B[^C)683&=<_.^"AHIC"*%_!F+^X#""6Y8U#A! MXP2-$V:*$^Z/@;V,57@HXO0R5F&M<(*.IFB,-*-HBMC0*^*/E3YV+W<=VY"[ MYW.V9/>!J*3' V\&6RL7Y/D<&DJE#+/Q;(;9H#-1UXAA]JA=Y8S88ZT,C%:R MLW1$UTADM(Z=KXZME7:WUHIAM(Y=(Q!_'Z%?[V,KF$ T?_;CT/3L\,VL]$+> MJ*Z>_S;U++A$'U2?JP]V2N6=M5('V'EM=K;BWA8,BSK@?:XP85^E\WURB(GZR^!IQ^VQ1 MT4LQB.O'!!H5:50T*U2TB-1W_E'1QO]O[UN?V\:MOK]WIO\#)IM]QGE&YHJB MKLXV,UXG:=UVDVWB;?N\7S00"5K X WZVJ;DB *'S8K2[P M./>#@_-K%'>E]"O6Z?7M:BV@:(S+TD];^Q=7@K+Z*UEFO)T$8J03_C5 M.V):+=.T:MREY*E#+3Z\6:J*3+0'\5%TYCL1GV[+:M,REX,S7RVMY*Q9GOPL>RAJUN9ZA]+"T[6G:>*CM=LS7H][7L:-G1\$=25_VT/>+*.NQQ#TE=5LB47RWTW@0GJ*Z/:)EU;_\<5'6MK(EYR4Y.0VST M>J0XA5FT]A"F42S:&/[<;FTRL(_8]><+XAX1. M?+8#2OR6QHGG/HBOO "&DER8PV(N9D=.)ONPYJ@ 8?=S%L0P%#L,8B].R#SR MX#DP1DP+SUD4AT' _'..+,'P5%6<8!<.VT^1&/#W#!] $5.B1=AL[H^,DM'\_G]"8/Z>X+QM$BX1I$GL.JXP0UN.;9S-X1A)1 M^#H?,GPQ]2+G?$ZCY('8?I@ZY]G%I#+>%KF^X2-PJ8TD]/A\8;+4]T.;CR$F M24CB=#X/(UR#T$GMI#(,:B?>-WZKP0E])&1UF!TQON*O3:-#8)0^KK@;1K!Z M#/Y##(%9R'L#,]X;.&_"1*QVB^#AT1:G%HW@1UBD;6_KM$J\Y*2,G'EO\'Z* M(S'SD60#Q,XNJ]AM!O_"0R(6IWZ"7.=&X8SXX1V\;1DC <&1*3P@+[*Q&[.$ M3![(71CYSAWR5TQ]&CT@&_-WQWS]BK]@*%-&'3M,@T2P[ID'@X>1MTMK6!YY MG$Y @(!![016UF7PD&+RV61@\N\_7I/X(8:5B@UR,P7R$9@$6SI<_KIBH;+A M\18X54DX5HZT#&N!(P-L5OUDAMSBK@5^A%O/!%6[*ZCZ-'ZDDB/+:@Y7(80! M[I]/K:4S*BE O/SZ9J5B=QA$ +97&>]&ECW+WMY?RK95*]^8W92Z_HM;FLNG&U=HZ^^,B!V<-LB?P:/):*^ MX(=+!V8!WE#$T;3X8+DWEPU85G38N%3SF%UD'\ICZ\/S)9C7C-Z?(^/#$F1> M[+G/W*3LUIYS!YM_4T7D2J+LK25HL%=;%R.8QFBDH<>6./2E^^:'P('51%&/ M*)MVNC5=#@9FK7%@%:3+IEH739>#Z3%M7Q2DRZ8*.4V7@^DQC<^K(%W6;JUI MHAR&*#U#RXJ"9#$-[2(K2):>,=):3$&Z;-I>UG31>3%-%.V'J4N43?6$FBXZ MF-1TT4I,::)H):8F7;024Y,N6E@4)(I68FK2I6WT=3BI(%UT3DQ-NNB,8]=UM1R];Y_#^0V$:T\")W]2E%U1H7+GX[W+I[SQ7^H=&>]@HX<=V9?59A@,# MB^R/"?I-8X).8]R#/3&!!*EL#A.\KLT#V,/.K^*)+)'0;1!S?-]@]["VCM"G MX0(-FJ;XZG6!3L/Z-9$)M MTZDQ0EPNTGUUM[0-I'VA7/M#S,E^*023GO9-O MR[V3Z6+OY!>[?8I-_!"U&]B85D5L\77K]+J>.JZ>FC/?!=*6V6OUS=K!B+7X M\'ZH*C+1'L2GJ^;,=R(^G5:[W:L;K$Z+CYH-5)SX3C >6_UVC1#C M/$NMF.#4EHB4H=>I<$:[[AIDQ?CB>QVD:#/QTI,F*LY\%]J@VV_Q5*YVL;3L M:-EYHB7M0'3?U;*C94?+SI-#>ZO5;0_K/AFIF.SH".5Y/DF-&5/5(Y0CK)GV M*J_@GS.HSE?O+A%0=,XBW$2CMXR#BH;P(XG8-Q:D+/[Q!Z\!]=-+VHF5UV&/ MFTCJLD*F_6JA]R;(0'6UF36H>__GH*IK98',2[9R&F&D-Z'!*I\ M:LNN^5-[GIH_CXX_=^W.'/X(@_8]3\'WY.GB'Q(Z\=D.*/%;&B>>^R"^\@(8 M2G)A#HNYF!TYF>S#EJ<&"+N?LR"&8=EA$,/79!YY\$P8+R:(YRR*PR!@_CE' MDF!XV"I.L.^&[:=(&/A[A@^@B"'1(FPV]\,'QL@$7NEZ2=PBDS!(X7]PWVDLB)P942_X8NO;\0P76HCYWA\:6%=J>^'\OD&YYHCY!$@>\0XS5Y;1I_ MB'VD&=(JF3+X#P$(9B%O+G5$O@(=$+$Y]3GPW"F?YG;RG3)D[<3U"&&:T ME$];55&0++XH"!F73!EU."?RY]Z%D>^ YF/(ZC1Z*(T"?S[SQ S;1F?I# 7+ MY>0QR,V4P2]W+ )1 );U@.=0C-V8)63R(!YEY8]R6/$H+B[$926^EM2AT<3C MC !WS*/09HQ/%K%GX(&.%\]3OK; ?.&,KU( E]N)48)F*4'/V#ZC$=J!J63+ M?(<4&7(7V#,KSX]UNID!R,7!ZCT&E/GC'RK .?ENY;D=^F%TD6WFEJ8E 7LZ MW'K=LG.!RT-=>/,%]>_H0YQU7S&-7MY^Y2+?$,:%($.C/?J>\(\FT*S'UV-A M,6?T_KRT9-)8GOO,!75-8]#; M$:D>&6:K(,R/E("6K-_F",)I1_VWYS*/\ZM6[&S3-:-2NX%=@ MA#@WX?3=%KQ:7>EE*[AWA=ZN49^;EM%=4.@!MHI_LC[?XJXUZMPT5VB[H];G MK5R9@] OG5[]&IB_,[,@_6TL"-[Q[35X(2O;U8ZA@Z;1\SV'JWN MV;>U%FV2QL \,3S<_D_J"1G+EII;Q&_9?,SE\]G27=O.5':7FLHXG60K#&*2 M&]_#^'1+5,"_@&/ T[6].OE*A#T\!6O(7"<:!N^)T/@^CI*2$Y#@)G-5U4 MHPM8?&U9%*1+S^CJR$5!NFPJ8M%TT9Z8)DHN+!VMQ!2D2U\;?27IHI68@D0Q M.9*>IHMJ=.GK/1 MVJML0^'>2< Z[>%4Z)[0O>QBJH"/C7R&911^4X# SSN!R' M3WA 4?L-VF_0?H/V&[3?H/V&IS?ZT;F6TS6,M>5:&@0IGG=X$*W K'8KZPFF M':N5_--]-O]TC%&CV.=J2H-;UF!8>AVE'EKEBBBU03*C5:Y6N5KE:@=_ YW/ MWLNF/;R;3IC&-'#B-TU5$N5^M"M[T^;:H/-<;3 TVL-&:0/LY%873VQHW-!L MMFB6C]'A",1:5;R )_J&V2B6>%V;RZ!X?O@PF3*1,&X0OWS?8!>SMK[WIZH< M!T:O65%5G7[4Z?+$H&D\H9TH[41I)TH[4=J)VNQ$/2O]IAB,_.,6T31K$>T5 M+:)IT2+ZQ49!L>D?I-K(6KH,525@@1)PPA27?U]:8-TZO:X-?EW%F>\$E; S MK!.6$#.56G9X1U<5.6@/LK/<=AQ\YCN1';-.V=&"<[%<>1R<=W8M-:*^6<69 M[T)JS!IQ<$6XIICU0ML=?.:[ MT >CP4A[5S4+CJ+LLP?!4329L1/!Z?:UX.BP1(/PDOV ;G>0'F^4FW=PRB#'[K-6Y)LEA -G_F M4- ?!/BMT#EGUP',E;UIP8B26B%<-3YKDYKNZ?;'32**QF=5DRX:GU5-NFA\ M5C7IHO%9U:2+QF=5DRY:6!0DBK8L"A*E9[1U#W<%Z:(C%S7ITC.ZVN(K2!>- M1:$F7;0GIB!1-#ZKFG3I&];:IMN:+EJ)::)H?%:EZ0)*3!L7!>FBE9B"1-$Y M,06)TC-T**D@6=K&0*?$%*2+AF=5DRXZ):;A617KX:-"&J8H:$81T(E@>U6L0 M>YP28)!6AD^<]\#H-PM.3:,N:B1.[33MP&D:-$M/U.4TZ=USC;)XY$Y3$U 6 M*XU<0][(E8E&KN3,RWJX!K*'J^XK7T^HJ&(C[77K=+H8B^M99E4#\;-.JVT. MWVB418VR6)_T* KDL@/I,5L]TZQ3>K3HG#"@R7+\A8//?!? %;WV8 ^NRB%Y MHDY$DR-4J,]&-.F>#J2)-A,::?%9'A8V U-QYCOPL+HM&+CVL#368EVBHZC2 MV$EH/S0[6G1T<%*'#WI"L8G9,H?#N@]?*B8Y&F_Q6:S1[9Q.=*(>X.*V.T"M M%7B+7G:_N)@_Q@TC!N,A=AI%++ ?2!+1(*8VQV1D]S:OV">WU MB(3-XDQ_& M,8N-&C$.][0R./.(T9@YY'7;Z!$8K(\3K8)$;L"&;*T A]R "5FFBI,RO)>2 M*4@F7/.8,@+O$CB?N%$X6[@JH@F+X7D4!([Z\+S0=6.8W>2!3S(-7/HMC#B, MH^NG=I)*>$PO6*1W3F/^4 +B:D_E^SF4)PS2#^_@[?CDU7AZ,*5^)&WJ?P9?6BE4JWBR@2FF:A-D7 JJ4 M?Z/A3)O4I$YW"VX2430HD)ITT7"F:M)%PYFJ21<-9ZHF732FBP4S5I(M68@H2 M18.9JDD7#6:J)EVT$E.0*#HCIB!1>D9[I.FB'EU,P](67T&Z:#13->FB8AB[0WHM(BV=QJ1>+FGI.$Q-2*QQL=4 MRI8V4V8T(K%6N0=2NULC#-4J/HK!F.Y">H=G3 MT%X:VDM#>SU);'HM#A2!5GOHN8OE:D>[%-I)C@G#CN M\'-]D6ZM?*%V<*(([G![S49/"35U*7(N@JXZ[/$ES\-2%0_&)VZ'JAJQ>,YL M;%3F/RS!6!7HIK(.G.7XI_C\4O^O4G\SVV= M)$P2SB\Z(-[(S?"GG%?7- :]'9'JD4A;!6%^I 08U_W3J^]N/E\M.WW,/X-F MBF;4KR#ARJ]>O;OAV+:A2ZY"#E(;YSJ0OMN"5ZLKO6P%=Z9<'BU+"<8W3FC" M50D36N(!!@QT.W?PZXC9X6W QXG3O@LCWX$Y,(+& -6/A$,^0_SQ-RC"8C9P MN5 67L0%VJ8Q8E?3&?!]$G/]XZ:^SU]V*-3R)6MQ&3R0&.[U7+!>02)5$TXK M3''$21HQ H9):#.N?P5&MQVF/DS/ <,7@Y8C'FA,.^%W(=P[%H!07 #7"VA@ M>]0G&?E;$DJ:P\&'-$$ M/I,@Y9H8'NS":$)^UL;V4Q3FW%[@Y*0-B4D0)F EG!2FQZ&IT4S R^9I!,-% M0.L " %?\G7!I^"O/KOU8DETJ<-_!99!8Y#P4>)4RL#6R .1QY'-&4SG#B8 M_XO3R6\P=LXW\-3?TLB+'8^CWL.+\:FW++P%IV'JV=PDR07DZP:+4^5(<8?@ MM^57$!J321J#!8MAB$A0>!P,*L/CAD?@353$43BL-!9K3Q,8_B3%J<6I/<4' M 0V!D_$SM[-@Z<+Y#!B.7P\+[7B)6 =$_\ZI3%!JF)P=-^:G!4TN&E=I\U9%D8'^! ^<^ M_'#+ A@)PI/#[VBXG>4$A.%.%:PHJ]W=< M3EN,OP76F\9,I\KJJY=9'J$?1@#&Q+A8;D*S0RS&)]X#FOA\:P M(%[9O3;(OQA8!-]C:)ZF5)@@=N_%B6 B&$"420!_%I@Y#]2!L$[@E(("C,)9 MV1+=P8M(#'_$KABI? K,(V)\;9$B>"__5=X);RN4:BMC7V%J0"C!CL&WX!:A M?9J Z,B7H;M2N4X3SAV/T[*=HF2M'QW'K.+[$-Y NCP2V>(1S8VAO>YP?&SGLE_>;=-J&U:SVCHL8D'H!IP:(V+G2[#)UAW5*ARA95G; M6O-:M]2LK>>+:?$C=8XHFSM+8UX']>:BD>>$:CONP/<"%9O< 2(!OO5V M@&5XTIF.E5KOV69?,<+7R-5#S=;Y9LR)\763M;5R4SM4RN(X>?KX,A2?E]2! M'D=TH1;7;JBY.HY#TYLJE-3MPF-V6KU!C0V:]I R48U_U]?;' T#KZ].49># MARV>\#NB#47%&/CXN7?OFS6U,6^WU>L.:]JO4OVQ M4^/A0Z>[ZO:TCI"+.]V6.:P5R>7DV+@A/'R\F2]SV.JW1\U,?7W@W:-XFZM[ MV6,-FT7E':O"8'73'!TD[31%=NCZQ<.FT X]^QW8PD'?TOFU_>37#LT]!\Z_ M'7KZN\A/M\QNG>&0MCS;X08T5'96IN\./?M=.+#6<#&O?7RY/7Y2(&\#O&.O M],04@;%P$KN!>"'2USST-'0_[Y\$_!$]\-M'@]--K/>3.B"\"5K[NE@9=!2\K=RTL=ZZOOG[#DCK&@ MTML<_ 6E$D8I#$'N#'(IT+4N7[ME"!3GJ]> M*570*326(!CQ MDX$L7B:$>2JW4WR%"H$O*0[BW*%"Y/(_WXWZ@]';Q^-Z%-XL:*,:8H1UJNQ2H&$A M;)?-O&^<)PIP3##"K\U"G)5H<:IP-@Z.&>3-\%F@+O($_%IZ6^;@E^+XB9%^(S[10:*%X]>Z7B,VI MY^2 LLA' I_I$J7?.P##X+;U%J>:M5Q\+:7CEO_RJ:JI.AZ<5D]*ZE" MNBK?6I$]8"6 \-(-E6XM&;]\0Z6\E;+TK7PKQ2HA)1]G1O#CTY9J(S$*HA<[ M7:,ERJ T+D3=??_Q6@"2_Y/$#S'NI+8R1XX_OX1)#P\7>?)6YLZ)^D.Y%=KB M+S7+6-!+=Y2BT&8L W:>T22-Q-)QL&SJ;URESM 85E;I*+DI ^+>*&C+.>JE MBVA:_4JF9!FAMN3:;J],T$Q!&IU?+)O[KSC-MU]&:D6"K)5Y1RO)Z9)@5]9=7'U1$+*'W+"[+ M#;XTGL*B$Y#OQ&>9Q*'XH23>T<@!W0^26I9>#,/#0$;4^/;V)OW^NEO*$V"L M7E%5*+UKX_2%6%^^>L[W-XZ2XIV74APXO;<@( 6AA'X&RG**X0I7J(8+^KJD MH^OEEQ4L8.Z8!8ZM$F6H*U%T)X+M\D5K@%XH^VDT$,DG%_K(RZO<+ M9NM037T*$R;,H0EZ]D=O"?&D\_;JW=<$C_7?>C:?6<"B>.K-R>5MQ(1VN_.2 M*;ETOE&@8YQP-;1N*;QW$LE0>J5I0%/'@ZO%MZ##'=RZ=+@VQ_-S_$E2\U,? M1@I?" WL84V@%Y-_I/ >%H$V_<+FX'%CZP&P-#,YP_;Y/UJY 7"\V$YYAIS0 M29@FN?*>\[$FI;%6"@]E'1&?7C'9,RQ#9# XU/Y3%C$O>%.[,[T=^WUVW?.? M*%@"FY&O4P8V)2>1.@SX+R &,DP(5/Z#;>$N0$\G\AQQWS<-(JPG(B/O%4) MG(#@\9QQ-@#C!V+/P'M(9&H%60FIZX<\KQ=&47C'LX'PB\,FB: +)9[SIU?C M@6U9S.VQ<;L]HN.N/;3&P\YH-*96W[2[K-_IVO254$;BCFM@.@L8#5_'=0PP M OSIR[_>BQ>GD;QI[^3'\4FH4(.4Q\DYMC12D@\5 U\N C_3Z'=8]R]>_+LR MG()%9Z+J"]T]*;5(9O2#[N=\_*C)9F+L$8R][(=E34AXQ@ET PHKJC'A)H$R M@$4-9%&$_5#M8!(;I.!363>!GMI=P!E6NG(EO@1/%7DL)'>BG-U.>,@MK_>$ M L%WQHQQL^>F"0P?:Z-!>Y4T$A974"_@OB5ZBN=^&/Z.\R\IO61*441 6-+) M;_)5./NL\%$6^O,*=XR4L5X)WISZ6$P?IKY#OM'H ;,?0#7N@H(.H_(2GGH@ M0 M[T?6N )?EPOH'8:V!J,89'66=P:BP*5XZ*Q4(9K/39(*@QT8 ]IMD'C<' :<>Z"XO3./*01%9'E39]',91''\52!$ M*>;,?&_F)4((^$?^8DD>E$>XQDLJI@69O" $"J.7I)P60&:&'"%&@ \2M]\! M$T]%XE^PRO+[8^$S2Z;(N(FO4I',EDL$&@%' ^(#DK+B>0<]R;1>(W^4EO8J ML[0XR0^9M)^B^1><$+N!H(N!C @H CB95CWXW+OC;BWC M$UQRHW0.2H??T 5@3FH+A57FX?6>#NCW%#T$P93H@$@*+-Q67E"T40GZ$"O. MU96\)]2A6XP?"8J.?2K"=]1U\ LGCO3SQ5-QISURI Y>? PX1H6R%B?/N&Y@ MD0SNPN+634/RT"E:+OW< P,:39CO 1_@I27Q?Q#J+BFXIW1IH2J$Q\ISQ:41 MXNE,X"87LR08$,&C<1E+ED).*S>GRZQ3919BS80<@)H->$C$73[<3@!2"OTG MJH1EY>Z9K!]^(W*PG,EYGC(6,UCQ]I=P34NJ0UQW/PXKPUXS-O 6-GEU >89 M$O"@ \Y0"Z2NQ(5.?V39;- 9]=O]O02$RTY+%Q%AUR#9"/FR%V,\3*KB@[2=0I\6 M\>@>1ODR#^=NNTWSK%PMKE MA9WG"\LO--^24A8+Q"TWSQ ]DB^IC]?Q1)I%S\W>&7LC_L1'F3VG\M5*610G M!P)QX*98-]?S96'5EHD\@_S$R[8R-06$WP- M=&N+HX\5.I8L04L,"]0P?(S3&>Z>876M5$.,X=[U&>M=+[WH=RZ[759%HO1;A MF)^9<8)9*/(Q5Z="IP,C',:>+_.1>(PG5'-021HO.SKN9?.SR_,KS$64S:_< MPP7">+9%<0M7YC+[421F9<:MA>I=F 0:0ZP[X?G"WU$1\@SXHQM:+QM]Q1^F M'=?L6:/AV.Y:[KC;,=TQO,0<=[N=D<6LCN-0N^(/_W+YY>;Z^O/-7SY\N?[T M\?.7GR]OKC]_&G>&W8$Y.-3F" Y*F*CKZPR:&9:E\Y;P@9+22$N31P?:_#O8 M%_\748J!H=-XU.OD(< !=WE,@_"AD=+8E/&3*_O,Q#0W;3%?X;&EI$ATHP*! M"4$,R6O\O'>9AU#G[C I-H;+WE?A4. +?;[&\V*-J[N(W4Z;C:S>N.<.+(@6 M66\\,2>CL=4=N(..Y0X<-EJ(%LU+3'M]%#LKX][(LGH*L-.EP;-Q1(Y+'15] MF7N32.N-H8*D*D^_"(4ZP2W\H-"3N9K/MPAX*D9N=9%B"]D3.Q.709#FUJO\ MFK_E1068OY;*_3VSI6XWLS(V=-"=(N9!IQB>\C.-["D1%UD&O.6!%VVE\&4V M%+%=)W?F\)1?9<\EC(HI40>4>5SLO 0R2YGMZ17;!7A;(2XH3Y[81B"7COB( MMJ"\()B FN/>)=^F^#W ?4T0QY0_*@M"BFU2A[%9>0=D1A]$1@P^SJYF5!5;L#( C2O4J8@XFP#_ M.*X];@]ZPW'7Z5CC4=>UQOT^V,7.B-&)N9@0ZOP:@!K!/3F(1[YB87GH?N#; MQN.>V>]90P620AV#E$=)OF;U[V*@X*78Y?+X7T51H;0V>]0/[?7J8947OJKV M'(U3N03T:UX"FE7X+,R_W!A1"97X.2"7$!C[W+(*'8.L^U.(>4V>48-0G[,_ M=<(YC[AE-6BI_!5LVFU$9^0,;Y49(WP6DAA_D+FA-V)S(;\MG?/JWB/@$?=R7M@RH(>#&K'RDJRGF' MJR*O4Z82;]H7X<).V)3Z[B-:\, !_B?I"ZX[Z#M1[B:?'F4Y0"QEXP$++R^H M) 0Q!P@&;W)N#L_HFS/KS8HDTYNEE=1/#8:,IS9Y$L3"%(%,#V"@;(L NYJ/ M:!<'664R8C'ADT396^733'D\=ZMF]]VA8:YM_UL*[4O/1T;&6HNL1V_V-V_2 M>B&R-W>P"!O3)J73R?FE= *>.MZR#W&1]=IE$V9-A3U1 MP32-M=@/FA!:'$Z("J;1[FM"*$"(P0945$T(K9=.B IFQS"U/*A "2T/*E#! M-"QMIY4@1-MHZP"B1DH\$;QO8SYCU[/>"WY1\V>X*0[?<9F3)NSNX.?61Y2- MF.2F:$US[X[,37GG;#_LO"D0T:3>$:FSQU[!@">1!X_Y"_._\3.8^$@:Q.?R MN4]<$#OT\J\.FKC-5DI&:_>76*M\KV'10\__C!YC*&GW2V%F+U![I8F MHW:NM'-UC-Q[TL[5.D-Z$R;4)Y]X Y*J)3T:0HORNI-S@=YC34ZDO1_E^%%[ M/YJ,VOO1WH\ZW*N]GQ4V-*]'UZ[/,;D^_Y0-4+3SHQQ':N='DU$[/]KY48=[ MM?.SPHK^(D\D.=KY.2;G1QZ@Q(/ VO\Y!J9L*B/RU/&1Z@X5+(1V>+3#TR!V M5M_AH3$'2%E('!P-F4_4X_F9/I#_8PGY2=?Z' 5/-I4//V4P'4>J/E2P$MKI MT4Y/@]A9?:?GEW3B>[;_<*0ZZT1=GA6Y.>WQJ,F2367#H]X_G*QCKF_)YP' >2H1CM M5T;7SII#7AT/IVZ@< 9\\OC?VMR'0U-VP_S/."!(F")*8_SF=$A:E[.@.'DW MB;(X6:&E>6LW0G%Z:W%^F;]QI.1]IM.18R9>?&?;C+GN?OV,OZ;^0X;UDR.[ M\R\E3)!5#P,?>IZ'.FYS@'F7^)=#291>2"RC5X'TK"Q+>2KSB/&6E' -D9!T MM6:CE.*'RF-K;S/UD@*00R_3Z]JJ/+0@'($@[#,9I!E"38:HSUOGK:H//9TZ M-)CL]=P$CC6'+:L]6(]@TNTQOTSA9\%7EU_5ZJTW7P/O.Z];#NQWS>#=$ MC\3?/#K5O/<2XGI8V>H:PZ9PS^Y;\(/K7:+0DBK3.7]6(7=3W-0R^3SFR>E" < M.+.I-><1,(S.?#8Z\UFG0[Q70LK^04<7.A[,Y0\)!='=T&?D4)HST6N1'KSH?_'SA@=?K MV7AE$MJ_DR]L+D]:$GGJY\K#J^"+&8PQ)KR6UXO)/U(:)2SR'_ U(;:^"\C',)H1LTW^0=PP(K,P M8G Y?)Q1!-O&*Y(IPVQT)QN0L;_5?0I7B.ORY$-G>T81\-PEU'';9S1"^9T^ M>JJ%H\BDMT[8\975V)UN87 D2W7;I5'S?__XAPIF>A[&GMNA'T87F>4L34MB MM7>XTKEEYP*2G;KPY@OJW]&'.#M[8AJ]?F:5+W+KBPM!AD9[]#WA'T&763V^ M'@N+.:/WYZ4EDSKNW&=NCMB%0E=X"[!"5O@))IQ-P_O?KNYO/54E[E$A^@\Z=78]MQK/Y@U!FS-F7C[H#:8VJ. M1N.)V;:[G7ZWUQ^-7HEQB#NN0;M8[YE+4S^)?YV'P5<6>&'TE=EI!.]E\=BT MNMUN7]Y4S^(OG"UZ1(V2YL7QR>TR@V3C)#A0(D9*BJ$>QEZ(<7X* Z:,2GV^ M$LW8J-.Q[<[ &8\PK]1ER<-[ M+[;],$XCX)]^;]2WVH?GGZY!<(!$C)"4AJCYIBZ^,8==VZ&./1Y9P]ZXVQM9 M8]J=P#]]TQT.7?BWO:A^>I_!-XFN"W=EW!VU.R,%5$[/('QLI#2X0S++VM.9 MUT'L@74GETXX%TY?1&Y8!-9"^H NN8DH6FAR&44TN!5N97Z6\U!SJH+F)V$48QD"EW7LUD4 M2Y\=;D]CO! ?2TOD3*KDI#PIT6F__9*"NV&V)[USDR22QK2@,;_*?(M/D#? M2,XWW-3*[J((2Q%")(-OC^$21AP& 0J,$B*2+^PV]<6(OI[_K450>$BW/31* M:N'ZT_L/_ZZ(_=@>C?JT,YB,!VZG.^[VN^WQ:.3TQ\.)VV/MD>UV^V[EC@__ M_LOU3]ZO=.S0";2%\Y@%+]S5IFD29E\(/YM_4W''2SD(>[S Z/?&4DF-;>GP(CW3]\"Z3X^QOGF*[$+'+'2S3QJ A M_YU.(&1.$_86XX?%299BJRV3/"(Q9ZQHZK.O^4GUQ]^],-5:IC@<&>;P>">Y M>1_T,;L^IZ8A7XE]MTR16H1;YG77_3B)R _O-E[V+!SP0A)6+1W8C #L;U2H MJ/TM7PU]&\IR<%3<\9[%=N3-A2]:ING3I6+O\ZH].U_,:+/6/K();:.C59J2 M9+_'-J-CC.IT+78P8\LTVF;-O*8ZD6GVS/.8V><0XD343BZ8,#QORR_ZG_^D M8?)VX^O$96]?R=SIW''CXVA!1 MY8$2QE%S"-1L;TY]PNZ9G:)'DL5=9)Y&<4J#!/=G/MS;4XR!R*6=$(R18F%: M3(N>F]TS^D;\20.'F#U'?-7"((D':A 4E1_V%6(\&$-6[]_)!O.51A,:L/C\ M\[W/'OBKX)=.N]TQ>-C5?;N0,3X.#?]$8]P@D5H^<_4IAMJODN+M" M!5'LDH@=_NO Q[*I?__TY>\7Y,R3(=]57KA\52Y<_HGZ,&A0*E/&DK@%UV^X MX6LQ-UXO.9M'; K787KN.K##&2-G?P_C^ U_UI,>QDNQIZ'OL"B6ZT0^_"?U MD@=\UKH]P &X2^ 8-U/>46&PQ+J^7 A7!\7\?#Q"/:)*.%-LGV,&KG;>*I5)GR% MM0SD%WK+!+&NL8(?W$E41>]I0D&0?=!&A7($V2TI1RZX6+-#L]HHN8^?J6#S MS0KYS<[?E*HCGCTKB 'R>9V7:BS*1>.&.6*S)04:U:J+;PS&WU MLUJ%),79!_&F_UTF;X<:S,TR+5@B K0##N M)DQ9Q.Z\9+J*3/4,IWK\9[C<_I4K9\^/H?!WQS7RJA1K'-DY.5.?D]/GY);R MZH9S6K8[[H[89#SLL-'88J9#W?:P#<%AI:;\Z_6?/UW> M_/KEP]=QM],?]G=<7KX.Q6?A*'(^M .>&OJEE%?$E$+$(*Z.BGB9YQ7S.#'\* M>/":"9M2WR63!_Z@%,&5Y05X9(>E =S$GP?.Y32,8*[.C@Y:29KMPX:H=:: MC^;WQPT0GKI$Q6A'"[VYZ:Z'\ MWG\D7S___=>;Z\^?OK;(]:,NGVCLW+I[).X=N3EN9Q@_Q#^2O MG__RB?S-('^[_NGRR_7EIZ-B(*W!7L2%&(X?F 7_&DX#SG[>A$8>#33[G0#[ M[75*OT0,&TL$8F?Z:NHQ%P+Z[ C-9U$UKME.LUV]4SI;P1ZJ43P'R_T/]2 MS7@GP'A[G5(1A_X3X@*2AZHM673-BIA5,Y]FOGJG5-3UZR2(9K%=)T$V]6UX MG!/9%ZB#VOU9=X(TH$"G9CT55&5X,S%D,#$N:'1M M[5MK<]NX%?TKJ#.[L6QB)A_YB\_I4E*JX+45H6 M:\$M6N?29FRBJHJ7[+706N8Y>ZEE,A6,C8:#_<%H># 8]OLGQYCKM!FDRI"- M1L&S8'>XNX>G\. @'!VRR]=L^_WD=,=1G[T]G?SG\MPO>_G^Y:\7IVRK'P3_ MWCL-@K/)F>_8'PQ';*)Y::25JN1Y$)R_V6);F;55& 3S^7PPWQLH/0TF[X+, M%OE^D"MEQ""QR=;),;7@4_#DY+@0EK,XX]H(^WSK_>15_P@45MI3_!*:&>%9KB],7DXNV;W[XP"!\>YOY;&RO3Q2IG%SWV3Y65[)]E@L M-%$RFW$;?D-F'I2:7),LL; -1T>W+3H:L N6\9E@6LRDF"/NVDP:]GO--5"8 M+]!>*6T1C=DKI0N$Z_Z_F$K9Y=DK]IO*:XH=IL,Y2'J-),U4@ EGEZ>X0E"(6QG"]()*"7PFLVYG3H"T!,U@R)Z]":Q!!+#6R M.) AKS/@)!&:S3,99\S4]'$S?BZT:"8A 0IID&U0BN+S/BU,)6+'(,U;@365 M0,P9AB4L6G35L('06@CM?01"@J6RA)'(WC=&Z0$_($>W[O3+,L4>YK1G\1SG M=8(Y8?B.!7H C:1]7\%N!#F"(M+U):8:T11YR D!2L[98S MCI^8FXREN9J;%F5:3*6Q2,TMX]3H^0:7O0Y83,O,'6XW>%F+E_T!FZPHEU@; M/1N;!A%-8*0MJM)4XG7;[#C-7S"NA;,Q;":C7) MF "PHER:C$8060$/15Z* MWA-IXER9&N/(=VF5>V-76J$B1+-AV[!M(@ 6;\#S:U10)8J_%W +[^H<%*,] MWA\=; O/Q>@@\6_^55)"5'J0T?R,?$<'>QX+Q,N]%TI7%DJQ$,EY&Y&@H-CX MP^8.*YQM\QUV)@SZH5P7 SYM^1Z%IYC7YOY#*$Y$ E9L5O*11]4:$\ =D$K( MR8!*E&X>RNYNW%/7Q?F2%K!H0L^-:7N-^Z-."5<%7HS*9>(.'DP=&9E())$D M@/0!TCG=DF:J#04MMY&,BW#.)2DCP)"%"Z1!%;(G&=(H$$<+98;Q(?ECGM@J[Z#;L[NT.[J#O_H[DWB $<&2K)FU4,:BG),5%3QK/M#PQ)@3EXB%O4#>/(UH6K.*D8+>LE7SN> MJXR;9=@EW^(P*A+G=)T^&H>X0%UY)?*F_+Q%W_O3*OJANW$+Y*6Z2+OQ$(25SXC-=Y*R)7<*_Y0:MAM(_%Y+L.XV2UW&KDC=V63Z;:;_ C4_)3\2 MN*!:B*JJ6 I8L0ECRXQ[+O@5Q26??+C(Y-(F=S+5UO^?A8TF.?:5Z!HOPA,, M-&+I1#Z(HR;9PA CE1SP='@\AHZ@(R0R5.F,9YKSTI^:$=S)U4_ 7B6ZJQ M(7NPDG!N!'9VYWX-('H^/,ARIO*9H!A1\FES?*D;SR.**E<+@=YYIKROX2MP M SR^2 =; SW!SES%]/6%33-P @[2.A^K/*<5T:$[4.7FT.LE_G;*;IH)O/ M\ TW_A:;UU:U#?X.V[6LW'03VZOWW-32N;;>8D[^"GZ5RF=^8GV-%Y9JO)]KT_ MU[P*(WBOJ_X<:OOD!?VRGT>&;E7$F+XE<%OH]OL"S:=-[B7>[N#9X5]7NOUG M@\/=1RI>8#4!]XN!]"M<^?[\9'0X'/M/YQ>^(.J^C?-[N0@_B_$&4(VWBY2U MJ@!>KID[(61/AN[O(4CFK1*8X,[=]XW &XA]9W8]@-9BB[S$=P'6BCP;[#P" M=N\3Y;[&%W[DRISN.906W,7HO=0H].CLP=50IYD4*3N_%G%-,9*]]4<*QX$\ MV4#J ;+[("&UW5Q'H(832R0UAU,[CPY*?Z3N>MAH^YH2?2] WOD6Z HF/T?( M1P#),VY%R-Z@UBDBH=E1C]'7ZS?(^RL@+W#'-6V%^5!LT"EZL^493<3CJZE6 M=9G0>9+289O]=GZIL-K1%.Z[8"27I>@W[VV^W/V%Q,KATDK3\J<7%9^*OB_Q M>6J%#OE,R:2!P]'18'=_F:7[MJ$KX/U/.MQO1$[^#U!+ P04 " !A@6A7 MP8R]<+\( "L. &0 '!D9G,M,C R,S Y,S!X97@S,60P,BYH=&WM6VMS MV[82_2NXSK2Q9R11DA]Q*<:"E&P%BOV]GI]+J[G6Z[?7B 8QW7G501LEXO>!7T MN_UM_!;N[H:]/7;QEFU^&!YO.>F3]\?#/R]._;07'][\=G[,-MI!\+_MXR X M&9[X&SN=;H\--2^,M%(5/ N"TW<;;".UM@R#8#*9=";;':5'P? R2&V>[029 M4@8ZPHJ-PP-JP4_@XO @!\M9G')MP+[>^# \:^^CA)4V@\.#8/;?RT9*3 \/ MA!PS8Z<9O-[(N1[)HFU5&6YW2SO G@'>7I*Y;D^DL&G8ZW9_&I1<"%F,VADD M-MSM[._?-&DY2N=MRIL6:LBXE6.@L1NCQAEP'4;*IH/E"5;U+&?]$E78=L)S MF4W#ET.9@V'O8,(N5F&<"SJ)(96(PED9&,I-V&J92""BPQ\\O]OO=[<%!0-+HNO*!%(T^ MJ>7&X>EUBGI:MMWK=/L'0?2 :C7]]V^Y*\:G'/13".P3U_1S&#P^O1R>GYT? M'PW/W[_[_?N!\(LN_+<\]E=EK$RFBYJ=M]B1*##A7/*_>8O%H$F&V93;\ '5 M>%0.)6+^QWVAAM7W+!\RJX*-L(;020MN?@1"P1"+EQ13OFZ"T$#\HCK=UX[XL$GR&.3VS^#W.*H%C8N ; M$6@A:"0]]R7&C2!'4,32?8ZI.IQF:6J$K7!%98LDJ@P%$$@*H^VF,TZ?F)N4 M)9F:F!G*-(RDL5BF6\:IT>N-6K8:8#$S96YIN\;+2KSL=-APP;FD6N_5P-2( MJ!,C/:(J221>;IHMY_ESQC6X&&/,9)0!Q8(! BO*I$FI!XGER%#$4G0MI(DS M92KL1]RE5>:#76J%JT-L-FP38RL P>(#>'J-JZD"%X)'2 N75882O6W>[NUN M@M>BMRO\E;^45(,4'F0T/B/N:&#/8X%TN?-$R<)$"4Y$=BXC$B4H-S[;VF%! MLTV^Q4[ X'UTKLL!7XY\B])3S"MS]RZ4)R+ *-8S^I)QE7%B4C3+*7&3_+"'3Z7-"@"_ M14""2';8'\2S);=%V$7+L+LS'=Q"W]V)Y,X@1.".I2!L<:,*3HS)#>*2RB8" M'-=B%GR$H^3>KY3^5DU+CX+#B8. 1_&":*/L$4 M< 78" K,PADB$>] 21 G$2PN/=KP49 EZSA\U(4YQ77D%6;W\7))O_6,7/6M3IT#3ADGDMKP8%R1;=(8;*E>T*B M;FZ 3<0BTITA.L7_5!K.'B#X6$E4W3TL51&[1>K6NM*?5?I'N.:GXD^5.R;,FF%NE^!'FMT3C ]G" M*(&C$8RSV_>K ='RZ4$68Y6-@7)$P4?U]J6NF0?R,E-3P+N35'FNX0MP0WA\ MDP3:60?N*S5SA]36+6CJCA$^0:#;LI/;BF3>U-(ZP-Y@S]_6&/Z"B\W@]T[.>O^=-MV)N M.*4[K'-J3UE5UB/N_-+9Z_W4=%D]=]CM]'=+R^;_=N872X?MC3D)BK3'.?/N M[+H]T;P,(V2TJ_8$7?G% _SY?1X9.FF! ?V*8-D1L]\3U)]6W,GD?N?5WO.R M>.=59Z__ YD<6$V@_ZX _S;LM$!%/[_H[74'_M/QS'=&[,,0[)MI>"]C:C#6 MC!HI:U6.N+IF;A>2O>BZO\=J;6""QCG[C>'?$I)/#'Z/0UT/I)48(U:Y!\"^ MDSUKU#R$N@=R84SW/906E8MO&2,/OX:X'I=%I]<05Y1;V1\R!G:AH'I[SG0'#U(<+6&GMK[#WJ"N() M0/*$6PC9.S6&/ +-]EN,7HE:(^]'0%[@MM5GNWF/)0:-#<9TOI<>\?AJI+&H M$+3OKW0XVSEHO%VV>*/>).VC(IDLH%U?S_8:FF^U+1P"+#3-7YT M<4U6M@4 "TE 9 <&1F#,R9# Q+FAT;>U:>W/: M.!#_*GMDVB8S^ 4DI88R0X!,3*(H3[]+?R@T+::YN[ MTD*;3 ;CE;3/G]:[PMW?#&/$8\(#&L(+[_4K"$4PGU&N()"4**0NF(K!$VE* M.+RF4K(D@5/)PBD%<&RS93KVL6D;1J^+O ;E(L%=_*BM4L:5F)$!DU0Q76>EU-P4]*PEYW M1A6!("8RH^IY[=H[,]HX0S&5T%[7JJ[%7%^$RUXW9#>0J65"G]=F1$X9-Y1( MW::=J@ZNM'#XSIQ;8\%"%;N.;3_JI"0,&9\:"8V4>VRVVQ](DDWC%4T4IKF2 M)D2Q&ZIYKW$-$DJDZPL5=^X*^-3*M%H7":Z,B,Q8LG2?>&Q&,[B@"[@2,\*? MU L*7C,J6?2DD\_.V-\46:-YBMXJ@R1LBLRUKIW"?KD+.@N46^2,+. M#CZ]+OI*C_KUK6>J/;&/54T&P@QKJ6 M_QW56O??CW)7@+N3:[[%QYXX^WA M\=XZ.FVX-B?FP(3):)#KZ32/[?H.:=B?0'\XOO1&PQUU8>6X9_8)C,_ >S&" M2?_JM'\QFACC/U^-WD)_X.F1AFTWMJ?W7_-,L6A9D!C'?:%I ,HA84M5->LV$!G.)SVGT!.$AC&ZQ!.%8/:' &FO"2^40RPNMP*6G&M+-R68.8T0@EH@:Z/(!Q M%+$ 9: [-./2Y#H@33N[#NE<9G."JY6 M6U?^C??]MI"$HI4EWGKTZM)&N(E M_PF1/N$T,\:W"5U"/\@#H2%>QW&BZGK=; GON%B@RZ;4W2Z6]A7EA\X1>.C/ M$LS1/$%D!QB\1(-J!31)W\^9I+IZS[2CLU78#@GB68)S?!@>K8+S 98K2)81 M#W%SL _.B0W>LLM*SE.\4IJMP9;C.YP%) M2D]ATUIR;#TS3YQ'ZRXK9;NVV3A.%:PNK=7-G79T328^LF24B$7EW>K>6$B2 MNKZDY)VQ0%=^L<5=C1,_TX]HVM%]]EU'5!UW^:G"KS*Y83X]^;4L;CTU3QH_ MDQE3@K',J+Y02LP05[> M&& A'-CYWZY:VV4;8O+O+E.X(L!1*[.Z%NM]5(9_<-"WA.Z>P70WU"T ]TDL MZNQS#R!NR9X'[.R!NE]ZHFY)W\]GG\^V^CHO[164_DOAOMMHVZ9%.PG(\G1I M[Z#WD,5^(&@.4\EXP%*2 %V=4XH"24=[!Z6'++8/@/SHI\,-3-['R#V Y) H MZG[T\\(#\GX&Y%GYJ65U6+(K,5@[OXE71Y4^"=Y-I9CS4!^K"NE6#=?:ZRV; M ^495 ,521BG1GE?M6CKK]5LG+%ND%;OZZ1D2HWBM(I$BDJ7W @6EG!HM\U& M:]48%C0[/XLJW@/*7RSJ_0-02P,$% @ 88%H5[SSVF[-!0 7"< !D M !P9&9S+3(P,C,P.3,P>&5X,S)D,#(N:'1M[5KK<]HX$/]7]NBT)3/X!7E0 M0YDA0*:9:4,:G+OK1V'+6%2!+"X1V5DL4QG$H6S"B M8YN'IF,?F;9A]+K(:U L$MP%Q[%.K*;=;.&3>W3D.B=P^0[JU][@(*,>C@?> MA\M1ONWE]>G;\P'4#,OZHS6PK*$WS"<.3=L!3Q*>,L4$)[%EC2YJ4(N42ES+ M6BZ7YK)E"CFSO"LK4O/XT(J%2*D9J*#6Z^H1_*0DZ'7G5!'P(R)3JE[7KKTS MHXT4BJF8]KI6^9W33D6PZG4#=@.I6L7T=6U.Y(QQ0XG$;=F)ZN!*"Z?OT=P: M2Q:HR'5L^WDG(4' ^,R(::C<([/=OAN2;!:MQT2NFBMI3!2[H9IWA:L?4R+= MJ5!1Y_X&7UJ9E.M"P941DCF+5^Y+C\UI"A=T"5=B3OC+1CZ"WRF5+'S9R:A3 M]IDB:U1/T5MED)C-D+F6M9/K[Q:J:^J-?98TTV@JXJ!SPU(V93%3*S=B04 Y MKGCQK-VT6YVNI:G1=,DO$G3ZKU+6>J/;".54T&J:=K-K37^A6%7[/96Y?#SE M5.Z"8W='G]81J<-U^;$')@P M&0TR.9W6D=W8(@G[$^@/QY?>:+BE)BP-]\H^AO$9>&]&,.E?G?8O1A-C_.?; MT0?H#SP]T[0?/!1M4^1A''=1KM.^+]^"75-K$5OVIV!F&.NLLI^.9T#S$7@3,@Y)BO& M>PB%S!A_RAD#18$"F-!$T?D4?[?L!NB4FDT5OPGQ Y)9RFQO@VIBOH M^YEK-'H;.$]06%PW7\%'+I9HQ!EU'^&J_ BK6F%KC3-)/"R:ISL)3;=5T[:,Z03A+<([JP<':$W>H7".R<(?SJG78T6C9 MV[Y7;^:V9QQ#P)QD!L6(HPCCB';&,UN6CB%,AYP$3Y[V04-/$RQ[6+*L]E)D&M-R MX53(@$K#%W%,DI2ZY4-5FF/<+\IO9EU+:0"@APMI\D*-+)0H!_(R+1O9*.:T MV)NEG!ZI5&8UR-3%XBW+%'29*4LYB_V=7'45K!77D=HG<6$IK#0+CH>OS&/G M>=5DQ=ZN;3:/K'"'V\A&<9B65JR_&TL)4G<*1;K'XTEFNV;->AZGDQ3 M??72CBZ$[RO]^!G+,F**&FE"?.KB\!$P;^NQ1L]7B M?L^=]ACY"-O@F3V[3*%T?M93_D;QWK58;Z?@]#/)^78C[C$UVDI0?J5?M'-P MW$>W)P12/9$,X9,@?NZ:'AI=Q/?%@BL4;^< M8]O.P]+D<>R@SWV]MA[9)7^ M";\?47('(#DDBKIP__]7>^3]%Y!G9?WRLKFV+3ZH]/NB=9-\2OR/,XDY1: ; M^D*Z91.@\C;4YD31LVRB(#'CU"A^EVV#ZEM8&]W]C:'UZUT)F5$C[VZ24%'I MDAO!@@(.[;;9/%PW*_(Q.^M=YJ^-9>^A]?X&4$L! A0#% @ 88%H5UZ[ M_*DH$P >+X !$ ( ! '!D9G,M,C R,S Y,S N>'-D M4$L! A0#% @ 88%H5P@,CED0$@ UP,! !4 ( !5Q, M '!D9G,M,C R,S Y,S!?8V%L+GAM;%!+ 0(4 Q0 ( &&!:%>?+/HQA#$ M )8T P 5 " 9HE !P9&9S+3(P,C,P.3,P7V1E9BYX;6Q0 M2P$"% ,4 " !A@6A7$3XIY!5R #9"@< %0 @ %15P M<&1F&UL4$L! A0#% @ 88%H5QM3!KZ&30 M/GT% !4 ( !F=WNL1>I " (KS( 5 " 5(7 0!P M9&9S+3(P,C,P.3,P>#$P<2YH=&U02P$"% ,4 " !A@6A70#,Q9# Q+FAT M;5!+ 0(4 Q0 ( &&!:%?!C+UPOP@ *PX 9 " <6P M P!P9&9S+3(P,C,P.3,P>&5X,S%D,#(N:'1M4$L! A0#% @ 88%H5[1Q M35:V!0 +24 !D ( !N[D# '!D9G,M,C R,S Y,S!X97@S M,F0P,2YH=&U02P$"% ,4 " !A@6A7O//:;LT% !<)P &0 M @ &HOP, <&1F#,R9# R+FAT;5!+!08 "@ * + *H" "LQ0, ! end